Version 2003 (Geändert)
Damit Befehle, Operatoren sowie andere Teile der Programmiersprache arbeiten, setzen Sie diese in Methoden. Es gibt verschiedene Arten: Objektmethoden, Formularmethoden, Tabellenmethoden (Trigger), Projektmethoden und Datenbankmethoden. Dieser Abschnitt beschreibt die Features, die für alle Methodenarten gelten.
Eine Methode besteht aus Statements, jedes Statement ist eine Zeile in der Methode. Die Zeile kann bis zu 32.000 Zeichen enthalten. Ein Statement führt eine Aktion aus, die einfach oder komplex sein kann.
Folgende Zeile ist ein Statement, das der Tabelle [People] einen neuen Datensatz hinzufügt:
ADD RECORD([People])
Eine Methode enthält auch Abfragen und Schleifen die den Ablauf der Ausführung steuern. Weitere Informationen dazu finden Sie im Abschnitt Ablaufsteuerung.
Hinweis: Eine Methode kann bis zu 2 GB groß sein oder 32.000 Code-Zeilen enthalten. Bei Überschreiten dieser Grenzen erscheint eine Meldung, dass die zusätzlichen Zeilen nicht angezeigt werden.
Methodenarten
In 4D gibt es folgende Methodenarten:
Objektmethoden: Eine Objektmethode ist normalerweise eine kurze Methode, die einem aktiven Formularobjekt zugeordnet ist. Sie wird automatisch ausgeführt, wenn der Anwender das Objekt ändert, beispielsweise mit einem Klick auf eine Schaltfläche. Objektmethoden in definierten Eingabe- und Ausgabeformularen können auch ausgeführt werden beim Öffnen von Formularen, beim Druck, beim Import und Export von Daten.
Formularmethoden: Eine Formularmethode ist einem Formular zugeordnet. Sie wird automatisch ausgeführt, wenn das Formular als Eingabe- oder Ausgabeformular genutzt wird. Eine Formularmethode ist dann sinnvoll, wenn sie für mehrere Formularobjekte gilt, beispielsweise das Errechnen der Gesamtsumme aus verschiedenen Datenfeldern oder wenn sich das Objekt nicht in diesem Formular befindet.
Weitere Informationen zu Objekt- und Formularmethoden finden Sie im Handbuch 4D Designmodus und im Abschnitt Form event.
Tabellenmethoden (Trigger): Ein Trigger ist einer Tabelle zugeordnet. Sie werden automatisch von der 4D Datenbank-Engine aufgerufen, wenn Sie die Datensätze einer Tabelle bearbeiten. (Hinzufügen, Löschen, Ändern und Laden). Trigger sind Methoden, die "illegale" Operationen mit Datensätzen in Ihrer Datenbank verhindern. Ein Trigger sorgt zum Beispiel in einem Rechnungssystem dafür, dass der Benutzer eine Rechnung nur hinzufügen kann, wenn er auch den Kunden einträgt, an den die Rechnung gestellt wird. Trigger sind ein leistungsstarkes Tool: Sie beschränken Operationen in einer Tabelle und verhindern, dass Daten versehentlich verloren gehen oder beschädigt werden. Sie können ganz einfache Trigger schreiben, und diese dann nach und nach erweitern.
Weitere Informationen dazu finden Sie im Abschnitt Einführung in Trigger.
Projektmethoden: Objektmethoden, Formularmethoden und Trigger sind einem bestimmten Objekt, Formular bzw. einer Tabelle zugeordnet. Im Gegensatz dazu gelten Projektmethoden für die gesamte Datenbank. Sie sind wiederverwendbar und stehen für den Einsatz in jeder anderen Methode zur Verfügung. Soll ein Task wiederholt werden, müssen Sie nicht für jeden Fall die gleiche Methode schreiben. Sie können Projektmethoden immer da aufrufen, wo sie gebraucht werdenaus anderen Projektmethoden oder aus Objekt- bzw. Formularmethoden. Rufen Sie eine Projektmethode auf, läuft sie ab, als ob Sie die Methode an der aufgerufenen Stelle geschrieben hätten. Projektmethoden, die von anderen Methoden aufgerufen werden, werden oft auch "Unterroutinen" genannt. Eine Projektmethode, die ein Ergebnis zurückgibt, kann auch Funktion heißen.
Sie können Projektmethoden auch Menübefehlen zuordnen. Die Methode wird dann ausgeführt, wenn das Menü aufgerufen wird. Der Menübefehl ruft sozusagen die Projektmethode auf.
Weitere Informationen dazu finden Sie im Abschnitt Projektmethoden.
Datenbankmethoden: Methoden, die der Datenbank zugeordnet sind, und abgerufen werden, wenn ein Sitzungsereignis eintritt, heißen Datenbankmethoden. Sie wollen zum Beispiel bei jedem Öffnen der Datenbank einige Variablen initialisieren, die während der ganzen Sitzung verwendet werden. Dafür setzen Sie die Datenbankmethode On Startup ein. 4D ruft diese Methode beim Öffnen der Datenbank automatisch auf.
Weitere Informationen dazu finden Sie im Abschnitt Datenbankmethoden.
Beispiel für eine Projektmethode
Alle Methoden funktionieren nach demselben Prinzipsie starten mit der ersten Zeile und arbeiten jedes Statement bis zur letzten Zeile ab. Beispiel:
QUERY ([People]) ` Zeige den Sucheditor If (OK=1) ` Der Benutzer hat auf OK, nicht auf Abbrechen geklickt If (Records in selection([People])=0) ` Wurde kein Datensatz gefunden ADD RECORD([People]) ` Soll der Benutzer einen neuen Datensatz hinzufügen End if End if ` Ende
Jede Zeile des Beispiels ist ein Statement oder eine Programmierzeile. Alles, was Sie mit Hilfe der Programmiersprache schreiben, wird im allgemeinen als Code bezeichnet. Code wird ausgeführt oder läuft ab; d.h. 4D führt das durch Code festgelegte Task aus.
Die erste Zeile wird ausführlich analysiert:
QUERY([People]) ` Zeige den Sucheditor
Das erste Element, QUERY, ist ein Befehl. Ein Befehl ist Teil der 4D Programmierspracheer führt ein Task aus. In diesem Fall zeigt QUERY den Sucheditor an. Dasselbe geschieht, wenn Sie in der Designumgebung im Menü Auswahl den Menübefehl Suchen aufrufen.
Das zweite Element in runden Klammern ist ein Argument für den Befehl QUERY. Der Befehl benötigt ein Argument bzw Parameter, um ein Task auszuführen. In diesem Fall ist [People] der Name einer Tabelle. Tabellennamen stehen immer in eckigen Klammern ([ ]). In unserem Beispiel ist die Tabelle People ein Argument für den Befehl QUERY. Ein Befehl kann auch mehrere Parameter haben.
Das dritte Element ist ein Kommentar. Ein Kommentar erläutert, was im Code passiert. Er ist durch Apostroph (`) gekennzeichnet. Alles, was nach dem Kommentarzeichen steht, wird vom Code ignoriert. Sie können einen Kommentar in eine eigene Zeile oder, wie im Beispiel, neben die Programmierzeile setzen. Verwenden Sie ausführliche Kommentare, denn das erleichert das Lesen und Verstehen von Code für Sie und andere.
Die nächste Zeile prüft, ob Datensätze gefunden wurden:
If (Records in selection([People]) = 0) ` Wurde kein Datensatz gefunden
Die If-Anweisung ist ein Ablaufsteuerungsstatementsie steuert die Ausführung Ihrer Methode Schritt für Schritt. Die If Anweisung fragt eine Bedingung ab. Trifft sie zu, d.h. ist sie wahr, werden die nachfolgenden Zeilen ausgeführt. Records in selection ist eine Funktionein Befehl, der einen Wert zurückgibt. Hier gibt Records in selection die Anzahl der Datensätze in der aktuellen Auswahl für die Tabelle zurück, die als Argument übergeben wurde.
Hinweis: Beachten Sie, dass nur der Anfangsbuchstabe der Funktion großgeschrieben ist. Das ist die Namenskonvention von 4D für Funktionen.
Sicher kennen Sie bereits eine aktuelle AuswahlEs ist eine Gruppe Datensätze, an der Sie gleichzeitig arbeiten. Ist die Anzahl der Datensätze gleich 0 (mit anderen Worten, wurde kein Datensatz gefunden), wird die folgende Zeile ausgeführt:
ADD RECORD([People]) ` Soll der Benutzer einen neuen Datensatz hinzufügen
Der Befehl ADD RECORD zeigt ein Formular an, so dass der Benutzer einen neuen Datensatz eingeben kann. 4D formatiert Ihren Code automatisch; beachten Sie, dass diese Zeile eingerückt ist. Damit wird angezeigt, dass sie zur If-Anweisung gehört.
End if ` Ende
Das Statement End if schließt die If-Anweisung. Für jede Anweisung benötigen Sie ein Statement, das der Programmiersprache angibt, wo die Steuerung aufhört.
Sie sollten mit den hier erläuterten Begriffen gut vertraut sein, bevor Sie weitergehen. Andernfalls lesen Sie den Abschnitt lieber noch ein zweites Mal.
Wie geht es weiter?
Weitere Informationen zu:
Objektmethoden und Formularmethoden finden Sie im Abschnitt Form event.
Triggern finden Sie im Abschnitt Einführung in Trigger.
Projektmethoden finden Sie im Abschnitt Projektmethoden.
Datenbankmethoden finden Sie im Abschnitt Datenbankmethoden.
Referenz
Ablaufsteuerung, Datenbankmethoden, Datentypen, Einführung in Arrays, Einführung in Trigger, Konstanten, Konventionen, Operatoren, Variablen, Zeiger.