Freigeben über


Erstellen von Formularen mit lokalen und Remotedaten

Sie können Formulare erstellen, die einen schnellen und einfachen Wechsel zwischen der Verwendung lokaler Daten und Remotedaten (z. B. auf einem Datenbankserver) ermöglichen. Sie haben dadurch die Möglichkeit, Prototypanwendungen zu erstellen, bei denen zunächst lokale Daten bzw. Testdaten verwendet werden. Danach können Sie ohne wesentliche Änderungen zur Verwendung der "echten" Daten - der Remotedaten - wechseln.

Wenn Ihre Visual FoxPro-Anwendung z. B. als Frontend für eine große Kundendatenbank dient, die sich auf einem Datenbankserver befindet, können Sie eine lokale DBF-Datei erstellen, die nur eine kleine, aber repräsentative Stichprobe der Daten enthält. Auf der Basis dieser kleinen Testdatenmenge können Sie dann Formulare erstellen, testen und debuggen. Wenn die Anwendung fertig gestellt ist, können Sie das Formular mit der großen Datenmenge verbinden.

Für den Wechsel zwischen lokalen Daten und Remotedaten ist es wichtig, dass Sie Ansichten verwenden, statt das Formular (und die entsprechenden Steuerelemente) direkt mit einer Tabelle zu verknüpfen. Beim Zugriff auf Remotedaten müssen Sie ohnehin immer eine Ansicht verwenden. Um das Umschalten zwischen lokalen und Remotedaten zu erleichtern, sollten Sie daher auch für die lokalen Daten eine Ansicht erstellen. Wenn Sie ein Formular erstellen, können Sie beide Ansichten zur Datenumgebung hinzufügen und je nach Bedarf zwischen diesen beiden Ansichten wechseln.

So erstellen Sie ein Formular, mit dem Sie zwischen lokalen und Remotedaten wechseln können

  1. Erstellen Sie zwei Ansichten für die Daten: eine Ansicht, die auf die Remotedaten verweist, und eine weitere Ansicht, die auf die lokalen Daten verweist.

  2. Erstellen Sie ein neues Formular

  3. Öffnen Sie den Datenumgebungs-Designer für das Formular, und fügen Sie beide Ansichten hinzu.

  4. Klicken Sie mit der rechten Maustaste auf den Datenumgebungs-Designer, und wählen Sie Eigenschaften.

  5. Stellen Sie im Eigenschaftenfenster die Alias-Eigenschaft für beide Cursor auf denselben Namen ein.

  6. Setzen Sie die OpenViews-Eigenschaft der Datenumgebung entweder auf 1 - Local only oder auf 2 - Remote only, je nachdem, welche Ansicht beim Ausführen des Formulars verwendet werden soll.

    Anmerkung   Da für beide Ansichten derselbe Name verwendet wird, darf die Standardeinstellung 0Local and Remote nicht verwendet werden.

  7. Fügen Sie zum Formular die benötigten Steuerelemente hinzu, und stellen Sie bei diesen die ControlSource-Eigenschaft jeweils auf das entsprechende Feld der Ansicht ein. Da beide Ansichten über denselben Aliasnamen verfügen, reagieren die Steuerelemente beim Ausführen des Formulars automatisch auf die jeweils aktive Ansicht.

Wenn Sie das Formular erstellt haben, können Sie zwischen den Alias der Ansicht wechseln, indem Sie in der Datenumgebung die OpenViews-Eigenschaft ändern. Dies ist in der Datenumgebung unter Verwendung des Formular-Designers möglich. Sie können auch Code schreiben und diesen mit einem Ereignis verbinden. Diese Alternative empfiehlt sich, wenn Sie auch während der Laufzeit zwischen den Ansichten wechseln möchten. Sie können z. B. den folgenden Code zum Activate-Ereignis des Formulars hinzufügen:

THISFORM.DataEnvironment.OpenViews = 2 && Use remote view

Wenn Sie ein Formular erstellen, mit dem Sie zwischen lokalen Daten und Remotedaten wechseln können, müssen Sie auch den Navigationscode so anpassen, dass beide Ansichten unterstützt werden. Dies gilt insbesondere für Formulare mit 1:n-Beziehungen. Wenn z. B. das Formular nur auf eine lokale Tabelle oder Ansicht zugreift, können Sie den folgenden Code für die Befehlsschaltfläche Nächster verwenden, um den Cursor zum nächsten Datensatz zu bewegen.

SKIP 1
THISFORM.Refresh()

Dieser Code ist allerdings für das Navigieren in einer Remoteansicht ungeeignet, da hierbei vorausgesetzt wird, dass der Cursor alle vom Formular benötigten Daten enthält. Normalerweise wird versucht, die Datenmenge, die von einer Remotedatenquelle geladen wird, auf ein Mindestmaß zu beschränken.

Die Lösung hierfür ist eine parametrisierte Ansicht. Die Definition für eine Ansicht zum Bearbeiten von Kundeninformationen könnte folgendermaßen aussehen:

SELECT * FROM CUSTOMERS WHERE ;
 CUSTOMERS.COMPANY_NAME = ?pCompanyName

Wenn das Formular ausgeführt wird, werden die Benutzer aufgefordert, den Kundennamen einzugeben; z. B. in einem Dialogfeld oder in einem Textfeld. Der Code für die Schaltfläche Anzeigen könnte dann folgendermaßen aussehen:

pCompanyName = THISFORM.txtCompanyName.Value
REQUERY("customers")
THISFORM.Refresh()

Weitere Informationen zu parametrisierten Ansichten finden Sie unter "Erstellen einer parametrisierten Ansicht" in Erstellen von Ansichten.

Siehe auch

Festlegen der Entwurfsfläche für ein Formular | Einstellen von Formularvorlagen | Erstellen von Formularen | Datenumgebungs-Designer | Eigenschaftenfenster | OpenViews-Eigenschaft