Methoden

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

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 4th Dimension 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 4th Dimension Designmodus und im Abschnitt Formularereignis.

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 werden—aus 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.

Kompatibilität mit früheren Versionen von 4D

Hinweis: Sie können diesen Abschnitt übergehen, wenn Sie mit Datenbanken arbeiten, die mit 4th Dimension Version 6 neu erstellt wurden.

1. Version 6 führt viele neue Objekte und Formularereignisse ein, wie z.B. On Double Clicked, On Getting Focus, die die Ausführungsphasen früherer Versionen ersetzen. Beim Konvertieren einer Datenbank von Version 3 in Version 6 wurden Ihre Formulare so konvertiert, dass das "erwartete Verhalten" Ihrer Formulare und Objekte so weit wie möglich erhalten bleibt. Wollen Sie die neuen Ereignisse für Formulare und Objekte nutzen, die mit früheren Versionen von 4D erstellt wurden, müssen Sie die neuen Ereignisse in den Dialogfenstern Formulareigenschaften und Objekteigenschaften verfügbar machen.

2. Tabellenmethoden, auch Trigger genannt, wurden in Version 6 neu eingeführt. In früheren Versionen von 4th Dimension hat 4D Tabellenmethoden (sie hießen Dateiprozeduren) nur ausgeführt, wenn ein Formular für eine Tabelle benutzt wurde, um Daten einzugeben, anzuzeigen oder zu drucken. Das kam nur selten vor. Trigger arbeiten bereits ab einer niedrigeren Ebene als die alten Dateiprozeduren. 4D ruft einen Trigger in einer Tabelle auf, egal, ob Sie einen Datensatz über eine Benutzeraktion, z.B. Dateneingabe oder über Code, z.B. Aufruf des Befehls SAVE RECORD beeinflussen. Trigger sind nicht mit den alten Dateiprozeduren vergleichbar. Haben Sie eine Datenbank von Version 3 in Version 6 konvertiert, und wollen Sie die Vorteile von Triggern nutzen, müssen Sie im Dialogfenster Einstellungen unter Kompatibilität die Option Dateiprozeduren wie Version 3 deaktivieren.

3. Auch Datenbankmethoden wurden in Version 6 neu eingeführt. In früheren Versionen von 4th Dimension gab es nur eine Methode (die Prozedur STARTUP), die 4D beim Öffnen der Datenbank automatisch ausgeführt hat. Haben Sie eine Datenbank von Version 3 in Version 6 konvertiert, und wollen Sie die Vorteile der neuen Datenbankmethode On Startup nutzen, müssen Sie im Dialogfenster Einstellungen der Datenbank unter Kompatibilität die Option Startup System wie Version 3 deaktivieren. Das gilt nur für die Alternative STARTUP/Datenbankmethode On Startup. 4D berücksichtigt alle anderen Datenbankmethoden von Version 6, z.B. die Datenbankmethode On Exit in jedem Fall.

Beispiel für eine Projektmethode


Alle Methoden funktionieren nach demselben Prinzip—sie 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. 4th Dimension 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 4th Dimension Programmiersprache—er führt ein Task aus. In diesem Fall zeigt QUERY den Sucheditor an. Dasselbe geschieht, wenn Sie in der Benutzerumgebung 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 Ablaufsteuerungsstatement—sie 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 Funktion—ein 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 4th Dimension für Funktionen.

Sicher kennen Sie bereits eine aktuelle Auswahl—Es 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. 4th Dimension 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 Formularereignisse.

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.


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next