Programmieren mit dBASE PLUS: dataLink
Diese Eigenschaft legt das mit einer Komponente verbundene Field-Objekt fest.
Eigenschaft von
BearbeitenDiese Eigenschaft haben viele Formularkomponenten.
Beschreibung
BearbeitenSie verbinden Formularkomponenten mit einem Tabellenfeld, indem Sie der Komponenteneigenschaft dataLink eine Referenz zuweisen. Dabei muß es sich um eine Referenz auf ein Field-Objekt handeln, das ein Feld in einer offenen Abfrage repräsentiert.
Eine Ausnahme bilden Grid-Objekte. Die Eigenschaft dataLink stellt bei diesen Objekten keine Verbindung zu einem Feld, sondern zu einem Datensatzbereich her.
Aus Gründen der Kompatibilität mit älteren Versionen von dBASE Plus ist es auch möglich, den Feldnamen mit Hilfe eines Strings zuzuweisen. Diese Technik kann aber nur bei der formularorientierten Datenverwaltung von Tabellen in Arbeitsbereichen eingesetzt werden.
Sowohl Feld- als auch Komponentenobjekte verfügen über die Eigenschaft value. (Felder einer Tabelle, die in einem Arbeitsbereich geöffnet ist, haben keine Eigenschaften, sondern Werte. Das zugrundeliegende Konzept ist aber dasselbe.) Wenn sie durch die Eigenschaft dataLink miteinander verbunden sind, wird bei einer Änderung der Eigenschaft value des einen Objekts die Eigenschaft des anderen Objekts entsprechend aktualisiert. Die Eigenschaft value einer Formularkomponente entspricht immer dem angezeigten Wert. Wenn sich der Wert der Komponente ändert, wird er in das Feld kopiert, sobald die Komponente den Fokus abgibt.
Die Eigenschaft value aller Felder eines Datensatzbereichs wird beim erstmaligen Öffnen einer Abfrage zugewiesen und dann entsprechend aktualisiert, sobald Sie zu einem anderen Datensatz wechseln. Die value-Eigenschaft der mit diesen Feldern verbundenen Komponenten wird zur selben Zeit aktualisiert, sofern nicht die Eigenschaft notifyControls des Datensatzbereichs auf False gesetzt ist. Sie können das Aktualisieren der Komponenten auch mit Hilfe der Methode refreshControls( ) des Datensatzbereichs veranlassen. Diese Vorgehensweise ist sinnvoll, wenn Sie der Eigenschaft eines Feldes im Programmcode einen Wert zugewiesen haben.
Daten-Events auf Formularebene (wie z.B. onNavigate) werden nur ausgelöst, wenn Steuerelemente des Formulars über dataLink mit Feldern verbunden sind. Wenn Sie beispielsweise mit USE auf eine Tabelle zugreifen, ein leeres Formular erstellen und öffnen, einen Event-Handler für onNavigate definieren und den Befehl SKIP ausführen, führt dies nicht zwangsläufig zur Auslösung von onNavigate.
Die Eigenschaft dataLink ähnelt der für Image-Objekte verwendeten dataSource-Eigenschaft. Jedoch können die durch dataLink angezeigten Daten geändert werden, während die mit der Eigenschaft dataSource angezeigten Daten nur gelesen werden können.
Der Eigenschaft dataLink einer Komponente wird automatisch ein Wert zugewiesen, wenn Sie den Formular-Experten verwenden oder ein Feld aus der Feldpalette hinzufügen.