4D v16.3Interaktion zwischen Komponenten und Host Datenbanken |
||
|
4D v16.3
Interaktion zwischen Komponenten und Host Datenbanken
Interaktion zwischen Komponenten und Host Datenbanken
Ist eine Komponente in einer Host Datenbank installiert, erscheint ihr Name im Explorer der Host Datenbank auf der Seite Methoden im Bereich Komponent-Methoden. Zur Mitbenutzung freigegebene Projektmethoden sind als hierarchische Listen aufgeführt. Weitere Informationen dazu finden Sie im Abschnitt Projektmethoden gemeinsam nutzen. Komponenten haben ihren eindeutigen Namensbereich, d.h. in einer Komponente definierte Objekte sind namentlich in anderen Komponenten oder in der Host Datenbank nicht bekannt. So werden Namenskonflikte vermieden. Sie werden partitioniert genannt. So sind z.B. Variablen partitioniert, d.h. die von einer Komponente erstellte und verwendete Variable <>Meinevar vom Typ Lange Ganzzahl kann gleichzeitig existieren mit einer Variablen <>Meinevar vom Typ Text, die von einer Host Datenbank oder einer anderen Komponente erstellt und eingesetzt wird. Andere Objekte teilen sich denselben Namensraum zwischen Host Datenbank und Komponenten. Solche Objekte müssen mit größerer Sorgfalt verwendet werden, sie ermöglichen jedoch der Host Datenbank und den Komponenten, miteinander zu kommunizieren. Diese Objekte werden mit „gemeinsam genutzt“ oder „nicht-partitioniert“ genannt. CLEAR SET(mySet) Folgende Objekte werden von Komponenten und der Host-Datenbank nicht gemeinsam genutzt (partitioniert):
Folgende Objekte werden von Komponenten und der Host-Datenbank gemeinsam genutzt (nicht-partitioniert):
Hinweis: Die Host Datenbank ignoriert nicht-verwendbare Objekte aus der Matrix Datenbank. Weitere Informationen dazu finden Sie im Abschnitt Verwendbare und nicht-verwendbare Objekte. Per Definition werden alle Projektmethoden in die Komponente integriert (die Datenbank ist die Komponente), d.h. die Komponente kann sie aufrufen und ausführen. Andererseits sind diese Projektmethoden standardmäßig nicht sichtbar und lassen sich in der Host Datenbank auch nicht aufrufen. In der Matrix Datenbank müssen Sie die Methoden, die Sie mit der Host Datenbank teilen wollen, explizit freigeben. Diese Projektmethoden sind dann im Explorer auf der Seite Methoden sichtbar und lassen sich im Code der Host Datenbank aufrufen. Sie lassen sich jedoch im Methodeneditor der Host Datenbank nicht verändern. Diese Methoden sind die Schnittstelle zum Aufrufen der Komponente. Aus Sicherheitsgründen kann die Komponente dagegen standardmäßig keine Projektmethoden ausführen, die zur Host Datenbank gehören. In manchen Fällen müssen Sie jedoch zulassen, dass eine Komponente auf die Projektmethoden Ihrer Host Datenbank zugreifen kann. Diese Konfiguration wird im Dialogfenster Methodeneigenschaften über die Eigenschaft Gemeinsam von Komponenten und Host Datenbank benutzt festgelegt: Sie können diese Eigenschaft auch auf mehrere Methoden gleichzeitig anwenden. Rufen Sie dazu im Kontextmenü des Explorers den Eintrag „Methodenauswahl-Eigenschaften“ auf (siehe Methodeneigenschaften als Gruppe bearbeiten). Die Auswirkung dieser Option richtet sich nach der Verwendung der Datenbank: Wird sie als Komponente verwendet, ist die Methode in der Host Datenbank zugänglich und im Explorer sichtbar. Bei einer Host Datenbank ist die Methode für die Komponenten aufrufbar. Sie können die Formulare der Matrix Datenbank gemeinsam nutzen und als Unterformulare in der Host Datenbank verwenden. Auf der Seite der Komponenten (Matrix-Anwendung) lassen sich nur Projekt Unterformulare veröffentlichen. Damit ein Komponentenformular als Unterformular in einer Host-Anwendung ausgewählt wird, muss es explizit als "veröffentlichtes Formular" deklariert sein. Wählen Sie dazu im Fenster Formulareigenschaften die Option Als Unterformular für die Host-Anwendung veröffentlichen: Hinweis: Sie erhalten dieses Dialogfenster über den Befehl Formulareigenschaften des Kontextmenüs des Formulars oder im Explorer über das Menü Optionen am unteren Rand (siehe Formulareigenschaften (Explorer)). Sie müssen die Interaktionen zwischen Unterformular und Elternformular der Host Datenbank mit den Operationen und Werkzeugen verwalten, wie im Abschnitt Unterformulare als Seite beschrieben. Auf der Seite der Host Datenbank müssen Unterformulare aus Komponenten zwingend im Seitenmodus verwendet werden. Deaktivieren Sie dazu im Formulareditor, wenn das Unterformular im Elternformular ausgewählt ist, in der Eigenschaftenliste unter der Gruppe "Unterformular" die Option Ausgabeformular. Wählen Sie im DropDown-Menü "Quelle" die Option <Keine>. Jetzt erscheinen die von Komponenten veröffentlichten Formulare im DropDown-Menü Eingabeformular. Der Name der Komponente wird in Klammern an den Formularnamen angehängt. In dieser Liste können Sie einfach das Formular auswählen, das in der Liste Eingabeformular verwendet werden soll. Im Formular wird dann sofort eine neue Instanz des gewählten Objekts erstellt. Lokale, Prozess- und Interprozess Variablen werden nicht von Komponenten und Host Datenbanken gemeinsam genutzt, da sie nur im jeweiligen Namensraum existieren. Die einzige Möglichkeit, aus der Host Datenbank auf Variablen von Komponenten zuzugreifen und umgekehrt, sind Zeiger. Beispiel mit Array:
Beispiele mit Variablen: C_TEXT(myvariable) Über Zeiger können Komponenten und Host Datenbank miteinander kommunizieren. Dabei müssen Sie folgendes berücksichtigen:
Auch wenn Komponenten keine Tabellen verwenden können, lassen sich trotzdem folgende 4D Routinen aufrufen: DEFAULT TABLE Diese Befehle sind in der Regel hilfreich, wenn eine Komponente Tabellen in der Host Datenbank verwenden muss. In diesem Fall sorgen Zeiger dafür, dass die Host Datenbank und Komponenten miteinander kommunizieren können: C_LONGINT($1) //Nummer der Tabelle in Host Datenbank Eine Komponente kann jede Routine der 4D Programmiersprache verwenden, außer sie gehören zur Liste der nicht erlaubten Befehle. Weitere Informationen dazu finden Sie im Abschnitt Nicht verwendbare Befehle. Von einer Komponente aufgerufene Befehle laufen im Kontext dieser Komponente, außer für den 4D Befehl EXECUTE METHOD. Dieser verwendet den Kontext der durch den Befehl angegebenen Methode. Eine Komponente kann auch die Lesebefehle des Kapitels “Benutzer und Gruppen” verwenden. Die Befehle lesen jedoch die Benutzer und Gruppen der Host Datenbank, da eine Komponente keine eigenen Benutzer und Gruppen hat. Die 4D Routinen SET DATABASE PARAMETER und Get database parameter bilden hier eine Ausnahme. Sie gelten global für die Datenbank. Ruft eine Komponente diese Befehle auf, werden sie auf die Host Datenbank angewendet. Darüberhinaus wurden spezifische Maßnahmen für die 4D Funktionen Structure file und Get 4D folder definiert, wenn sie im Rahmen von Komponenten verwendet werden (siehe Handbuch 4D Programmiersprache). Der 4D Befehl COMPONENT LIST ruft die Liste der Komponenten auf, die von der Host Datenbank geladen wurden. Arbeiten Sie mit nicht-kompilierten Komponenten, erscheint ihr Code im Debugger der Host Datenbank. Der Debugger berücksichtigt den Ausführungsbereich partitionierter Objekte. Zeigen Sie z.B. im Fenster Individuelle Überprüfung den Wert der Variablen var1 an und führen dann den zur Komponente gehörenden Code aus, die ebenfalls eine Variable var1 enthält, wird der angezeigte Wert nicht aktualisiert. Sie müssen im Fenster Individuelle Überprüfung eine andere Instanz der Variablen anzeigen, um ihren Wert im aktuellen Kontext zu erhalten.
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Designmodus ( 4D v16) |