Der Formeleditor vereinfacht das Schreiben von Formeln. Sie können beispielsweise auf Feldnamen, Operatoren und Routinen, sowie Projektmethoden klicken, um sie in Ihre Formel einzufügen. Klicken Sie auf ein Element, erscheint es automatisch im Eingabebereich, wo Sie es mit den Standardaktionen Ausschneiden/Kopieren/Einsetzen verändern können. Sie können Elemente auch direkt eingeben oder per Drag&Drop aus einer der Listen in den Eingabebereich setzen.
Der Formeleditor ist in folgende Bereiche gegliedert:
Liste der Tabellen und Felder: Dieser Bereich zeigt die Felder der Tabelle. Im darüberliegenden DropDown-Menü wählen Sie die Tabelle der Felder aus. Sie können Felder der aktuellen Tabelle, von verknüpften Tabellen oder aus allen Tabellen verwenden. Hinweis: Tabellen und Felder mit der Eigenschaft Unsichtbar erscheinen nicht in der Liste. Weitere Informationen dazu finden Sie in den Abschnitten Tabelleneigenschaften und Feldeigenschaften.
Liste der Operatoren: Hier wählen Sie die Operatoren für die Formel. Sie sind nach Themen geordnet, welche Sie im darüberliegenden Menü aufrufen können:
Jedes Thema enthält alle für den Datentyp bzw. die Operation verfügbaren Operatoren. So ist z.B. der Operator := für alle Datentypen verfügbar. Die ausführliche Beschreibung der einzelnen Operatoren finden Sie im nächsten Abschnitt.
Liste der Routinen: Dieser Bereich enthält die für Formeln verfügbaren Befehle, sowie Projektmethoden, die der Entwickler für Benutzer freigegeben hat. Im darüberliegenden Menü definieren Sie, ob die Befehle nach Gruppen oder alphabetisch geordnet werden. Die ausführliche Beschreibung der Befehle finden Sie im Handbuch 4D Programmiersprache. In der Regel müssen Projektmethoden, die in Formeln verwendbar sind, zuvor mit dem 4D Befehl SET ALLOWED METHODS deklariert sein. Designer und Administrator haben dagegen standardmäßig vollen Zugriff auf die 4D Befehle und Benutzermethoden im Formeleditor. Die Zugriffskontrolle lässt sich auch für alle Benutzer deaktivieren. Diese Option wird auf der Seite Sicherheit der Datenbank-Eigenschaften eingerichtet.
Nachfolgend sind die Operatoren aufgelistet, die im Formeleditor verfügbar sind. Eine ausführliche Beschreibung dazu finden Sie im Handbuch 4D Programmiersprache im Kapitel Operatoren.
String Operatoren A und B sind Zeichenketten; N ist die Anzahl.
Operator
Einsatz
Beschreibung
:= Zuweisung
A:=B
Weist A den Wert B zu
+ Verbindung
A+B
Gibt AB zurück
* Wiederholung
A*N
Wiederholt N-mal den Wert A
[[ ]] Indizes
[[A]]N
Gibt das N-te Zeichen von A zurück
"" Leerer String
""
Setzt ein Paar Anführungszeichen
Numerische Operatoren X und Y sind Zahlen.
Operator
Einsatz
Beschreibung
:= Zuweisung
X:=Y
Weist X den Wert Y zu
+ Addition
X+Y
Gibt X plus Y zurück
- Subtraktion
X-Y
Gibt X minus Y zurück
* Multiplikation
X*Y
Gibt X multipliziert mit Y zurück
/ Division
X/Y
Gibt X dividiert durch Y zurück
\ Ganzzahlige Division
X\Y
Gibt die ganzzahlige Division von X durch Y zurück (X und Y müssen Ganzzahlen sein)
% Modulo
X%Y
Dividiert X durch Y und gibt den Restwert zurück
^ Exponent
X^Y
Gibt Y als Hochzahl von X an
Hinweis: Der Operator Modulo % gibt signifikante Werte mit Zahlen aus dem Bereich Lange Ganzzahl zurück (von -2^31 bis +2^31 minus 1). Verwenden Sie bei Restwertberechnungen mit Zahlen außerhalb dieses Bereichs die 4D Funktion Mod.
Datumsoperatoren D1 und D2 sind Datumsangaben. N ist die Anzahl.
Operator
Einsatz
Beschreibung
:= Zuweisung
D1:=D2
Weist D1 den Wert D2 zu
+ Addition
D1+N
Gibt D1 plus N Tage zurück
- Differenz
D1-D2 oder
Gibt Anzahl der Tage zwischen D1 und D2 zurück
D1-N
Gibt D1 minus N Tage zurück
!//! Leeres Datum
!00/00/00!
Fügt ein leeres Datum ein
Zeitoperatoren H1 und H2 sind Zeitangaben; N ist eine Zahl.
Operator
Einsatz
Beschreibung
:= Zuweisung
H1:=H2
Weist H1 den Wert H2 zu
+ Addition
H1+H2 oder
Gibt H1 plus H2 zurück
H1+N
Gibt H1 plus N Sekunden zurück, ausgedrückt in Sekunden ab Mitternacht
- Subtraktion
H1-H2 oder
Gibt H1 minus H2 zurück
H1-N
Gibt H1 minus N Sekunden zurück, ausgedrückt in Sekunden ab Mitternacht
* Multiplikation
H1*N
Gibt H1 multipliziert mit N zurück, ausgedrückt in Sekunden ab Mitternacht
/ Division
H1/N
Gibt H1 dividiert durch N zurück, ausgedrückt in Sekunden ab Mitternacht
\ Integer Division
H1\N
Gibt die ganzzahlige Division von H1 durch N zurück, ausgedrückt in Sekunden ab Mitternacht
% Modulo
H1%N
Dividiert H1 durch N und gibt den Restwert zurück
?::? Leere Zeit
?00:00:00?
Fügt eine leere Zeit ein
Vergleichsoperatoren Z1 und Z2 können vom Typ String, Zahl, Datum oder Zeit sein.
Operator
Einsatz
Beschreibung
= gleich
Z1=Z2
Gibt wahr zurück, wenn Z1 gleich Z2 ist
# ungleich
Z1#Z2
Gibt wahr zurück, wenn Z1 ungleich Z2 ist
> Größer als
Z1>D
Gibt wahr zurück, wenn Z1 größer als Z2 ist
>= Größer als oder gleich
Z1>=Z2
Gibt wahr zurück, wenn Z1 größer oder gleich Z2 ist
< Kleiner als
Z1<Z2
Gibt wahr zurück, wenn Z1 kleiner als Z2 ist
<= Kleiner als oder gleich
Z1<=Z2
Gibt wahr zurück, wenn Z1 kleiner als oder gleich Z2 ist
Logische Operatoren B1 und B2 müssen Boolean sein (Ausdruck ist WAHR oder FALSCH)