4D v16.3Makros erstellen und einsetzen |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Makros erstellen und einsetzen
Makros erstellen und einsetzen
Sie können in Ihren Methoden Makro-Befehle verwenden. Über solche Befehle sparen Sie viel Zeit beim Schreiben einer Methode. Ein Makro-Befehl ist der Teil eines 4D Codes, der ständig verfügbar und überall in Ihrer Methode einsetzbar ist – unabhängig von der Art der geöffneten Datenbank. Makros können alle Arten von 4D Text, Befehlen und Konstanten enthalten, ebenso wie spezielle Marker, die beim Einsetzen durch Werte ersetzt werden, die sich aus dem Makro Methodenkontext ergeben. Makros werden als Text in einer oder mehreren (Text)dateien im XML Format gespeichert. Sie können in einer Liste des Methodeneditors liegen; sie lassen sich aber auch über das Kontextmenü oder die Funktion type-ahead aufrufen. 4D Makros werden im XML Format geschrieben. Sie können entweder die Standard-Makros von 4D verwenden oder diese an Ihre eigenen Bedürfnisse anpassen. 4D lädt Makros aus einem Ordner mit Namen “Macros v2.” Makros müssen die Form von einer oder mehreren XML Dateien haben, die in diesem Ordner liegen. Der Ordner „Macros v2“ kann an folgende Stellen gesetzt werden:
Sie können diese drei Speicherorte auch gleichzeitig benutzen: Sie können an den drei Speicherorten einen Ordner “Macros v2” installieren. Makros werden dann in folgender Reihenfolge geladen: 4D Ordner, Strukturdatei, Komponente 1... Komponente X. 4D bietet eine Reihe Standard-Makros, sie entsprechen den Schlüsselwörtern in den früheren Versionen von 4D. Sie liegen in der Datei “Macros.xml” im Ordner „Macros v2“, der beim ersten Start von 4D im aktiven 4D Ordner des Rechners angelegt wird. Sie können diese Datei oder den Inhalt des Ordners später nach Belieben ändern. Bei Problemen können Sie den Ordner auch löschen. 4D erstellt ihn beim nächsten Starten wieder neu. Sie können über einen standardmäßigen Texteditor oder per Programmierung eigene Makros in die Datei “Macros.xml” einfügen. Sie können auch XML Dateien von eigenen Makros in diesem Ordner ablegen. Im lokalen Modus lässt sich die Makro Datei beim Einsatz von 4D öffnen. Die Liste der verfügbaren Makros wird bei jedem Ereignis aktualisiert, das 4D aktiviert. Sie können z.B. den Texteditor in den Vordergrund holen, die Makro Datei ändern, dann in die 4D Methode zurückkehren: Das neue Makro ist im Methodeneditor verfügbar. Leere oder fehlerhafte Makros werden nicht angezeigt. Die Dateien mit Makro-Befehlen müssen konform zum XML Standard sein. Das bedeutet insbesondere, dass am Anfang einer Makro-Datei Anweisungen mit der XML Deklaration <?xml version="1.0" ...?> und der Dokument Deklaration <þ!DOCTYPE macros SYSTEM "http://www.4d.com/dtd/2007/macros.dtd"> Die verschiedenen Arten von XML Codierung werden unterstützt. Es empfiehlt sich jedoch, eine Codierung zu verwenden, die kompatibel ist zu Mac/PC (UTF-8). 4D bietet eine DTD Datei, mit der sich die Makro-Dateien bestätigen lassen. Diese Datei finden Sie an folgender Stelle:
Enthält eine Makro-Datei nicht die Anweisungen zur Deklaration oder lässt sie sich nicht bestätigen, wird sie nicht geladen. 4D Makros werden mit individuell angepassten XML Tags, auch “Elemente” genannt, erstellt. Bestimmte Marker definieren Anfang und Ende. Das sind doppelte Marker vom Typ <tag> </tag>), andere werden durch eingefügte Werte ersetzt (<tag/>). In Anlehnung an XML Spezifikationen können Marker von Elementen auch Attribute enthalten. Sie sind optional, wenn nichts anderes angegeben ist. Es wird ein Standardwert angegeben. Die Syntax für Elemente mit Attributen lautet:
Lässt ein Element mehrere Attribute zu, können Sie diese, getrennt durch Leerzeichen, in einer Befehlszeile gruppieren: Es folgt die Liste der Marker mit ihrer Verwendung:
* Makros lassen sich über das Kontextmenü des Methodeneditors oder die type-ahead Funktion aufrufen (siehe folgende Absätze). Beispiel:
Das Tag <method> ermöglicht, Makro-Befehle zu erstellen und einzusetzen, die 4D Projektmethoden ausführen. Über Makro-Befehle, gekoppelt mit Komponenten, können Entwickler komplexe Funktionsabläufe erstellen. Das folgende Makro löst zum Beispiel die Ausführung der Methode MyMethod aus, wobei der Name der aktuellen Methode als Parameter dient: <method>MyMethod("<method_name/>")</method> Der Code einer aufgerufenen Methode wird in einem neuen Prozess ausgeführt. Dieser wird beendet, sobald die Methode ausgeführt ist. Hinweis: Der Strukturprozess bleibt eingefroren, bis die Ausführung der aufgerufenen Methode abgeschlossen ist. Sie müssen sicherstellen, dass die Ausführung rasch ist und kein Risiko besteht, das Programm zu blockieren. Tritt dieser Fall ein, verwenden Sie die Tastenkombination Strg+F8 unter Windows, Befehlstaste+F8 auf Mac OS), um den Prozess zu „killen“. Makros lassen sich über das Kontextmenü oder die Werkzeugleiste des Methodeneditors, über die Funktion type-ahead oder eine spezifische Liste im unteren Fensterteil des Methodeneditors aufrufen. Alle Makros werden standardmäßig mit dem hierarchischen Befehl Makro einfügen über das Kontextmenü des Methodeneditors oder das Symbol für Makros in der Werkzeugleiste aufgerufen. Das Attribut in_menu des Tag <macro> bestimmt, ob das Makro im Menü erscheint oder nicht. Im Kontextmenü erscheinen Makros in der Reihenfolge in der Datei “Macros.xml”. Sie können die Reihenfolge durch Ändern dieser Datei umstellen. Alle Makros sind standardmäßig über die Funktion type-ahead verfügbar. Weitere Informationen dazu finden Sie im Abschnitt Methode schreiben. Über das Attribut type_ahead des Tag <macro> können Sie ein Makro von dieser Funktionsweise ausschließen. Hinweis: Ein Makro mit dem Tag <selection/> erscheint nicht im PopUp-Menü von type-ahead. Sie können Ihre Makros in einer Liste des Methodeneditors anzeigen. Weitere Informationen dazu finden Sie im Abschnitt Methode schreiben. Sie rufen das Makro durch Doppelklick auf einen Eintrag in der Liste auf. Es ist nicht möglich, ein bestimmtes Makro aus der Liste auszuschließen. Die Unterstützung von Makros kann sich von einer 4D Version zur nächsten ändern. Damit die verschiedenen Versionen kompatibel und Ihre eigenen Anpassungen erhalten bleiben, entfernt 4D keine früheren Versionen. Wollen Sie die neuesten verfügbaren Funktionalitäten nutzen, müssen Sie Ihre Version entsprechend anpassen. In 4D Versionen vor v11 hat 4D automatisch eine Reihe von Prozessvariablen verwendet, um Text in Methoden mit dem Tag <method>: Eingabevariablen (_textSel, _blobSel, _selLen, _textMethod, _blobMethod, _methodLen), um Text zu finden, Ausgabevariablen (_textReplace, _blobReplace, _action) um Text einzufügen. Diese Funktionsweise wird zur Wahrung der Kompatibilität in 4D v11 weiter unterstützt, sie ist jedoch aus folgenden Gründen jetzt überholt:
Von daher empfiehlt es sich, über die 4D Befehle GET MACRO PARAMETER und SET MACRO PARAMETER den neuen Modus zur Unterstützung von Textauswahlen zu verwenden. Damit können Sie die aufgeteilten Ausführungsbereiche der Host Datenbank bzw. Komponente übergehen und so Komponenten für die Verwaltung der Makros erstellen. Um diesen neuen Modus für ein Makro zu aktivieren, müssen Sie das Attribut Version im Makro-Element mit dem Wert 2 deklarieren. Dann verwaltet 4D nicht mehr die vordefinierten Variablen _textSel, _textReplace, etc. sondern verwendet die 4D Befehle GET MACRO PARAMETER und SET MACRO PARAMETER. Die Anweisung dazu lautet: <macro name="MyMacro" version="2"> Übergeben Sie dieses Attribut nicht, wird der vorige Modus beibehalten. Ab 4D v11 gelten für Makro-Dateien strikte Syntaxregeln, um den XML Standard zu berücksichtigen. Das kann zu Inkompatibilität mit dem Code in Makros aus früheren Versionen führen und das Laden von XML Dateien verhindern. Die Hauptursachen dafür sind:
In 4D Version 12 gibt es neue Makro-Befehle, die den Einsatz der SQL Befehle erleichtern. Da die Datei "Macros.xml" individuell anpassbar ist, wird beim Installieren einer neuen Version von 4D die vorhandene Datei nicht automatisch ersetzt. Um die neuen SQL Makro-Befehle von 4D v12 zu nutzen, müssen Sie folgendes ausführen:
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Designmodus ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||