Über die Anweisung openUI können Benutzer mit einem Programm interagieren, dessen Schnittstelle auf der Konsol-UI basiert. Die Anweisung definiert Benutzer- und Programmereignisse und gibt an, wie auf diese reagiert werden soll.
Sie können eine openUI-Anweisung beenden, indem Sie eine Anweisung exit openUI ausgeben.

Weitere Details zur Bindung finden Sie in der Beschreibung des Parameters OnEventBlock sowie im Thema 'Konsol-UI-Abschnitte und zugehörige Variablen'.
onEvent(eventKind: eventQualifiers)
Die EGL-Anweisungen, die auf ein bestimmtes Ereignis reagieren, befinden sich zwischen einem 'onEvent'-Header und dem darauffolgenden 'onEvent'-Header (falls vorhanden), wie weiter unten in einem Beispiel gezeigt. Sie können jedoch keine Referenzvariable in den 'onEvent'-Block einfügen, es sei denn, diese Variable wurde als Programmglobale deklariert.
Für ein Fenster ist kein Ereignisblock verfügbar.
ON_KEY:("a", "ESC")
Dieses Ereignis ist in einem Feldgruppenverzeichnis, einem Konsolenfeld, einem Menü oder einer Eingabeaufforderung verfügbar.
BEFORE_FIELD:("field01", "field02")
AFTER_FIELD:("field01", "field02")
Der Benutzer kann die Zeile bearbeiten, bevor Änderungen in einer Datenbank festgeschrieben werden, wie dies typischerweise im Handler AFTER_INSERT geschieht.
MENU_ACTION:("item01", "item02")
Sie ordnen ein Konsolenfeld einer SQL-Tabellenspalte zu, indem Sie die Konsolenfeldeigenschaft SQLColumnName festlegen. Außerdem müssen Sie die Konsolenfeldeigenschaft dataType wie unter dataType beschrieben festlegen.
> 28
= 'Sarasota'
AGE > 28 AND CITY = 'Sarasota'
Wie hier gezeigt, platziert EGL den Operator AND zwischen die einzelnen Klauseln, die der Benutzer bereitstellt.
In der nächsten Tabelle sind gültige Benutzereingaben und die resultierenden Klauseln aufgeführt. Die Phrase 'Einfache SQL-Typen' bezieht sich auf SQL-Typen, die weder strukturiert, noch LOB-ähnlich sind.
| Symbol | Definition | Unterstützte Datentypen | Beispiel | Resultierende Klausel (für eine Zeichenspalte namens C) | Resultierende Klausel (für eine numerische Spalte namens C) |
|---|---|---|---|---|---|
| = | Gleich | Einfache SQL-Typen | =x, ==x | C = 'x' | C = x |
| > | Größer als | Einfache SQL-Typen | >x | C > 'x' | C > x |
| < | Kleiner als | Einfache SQL-Typen | <x | C < 'x' | C < x |
| >= | Nicht kleiner als | Einfache SQL-Typen | >=x | C >= 'x' | C >= x |
| <= | Nicht größer als | Einfache SQL-Typen | <=x | C <= 'x' | C <= x |
| <> oder != | Ungleich | Einfache SQL-Typen | <>x oder !=x | C != 'x' | C != x |
| .. | Bereich | Einfache SQL-Typen | x.y oder x..y | C BETWEEN 'x' AND 'y' | C BETWEEN x AND y |
| * | Platzhalter für Zeichenfolge (wie in der folgenden Tabelle beschrieben) | CHAR | *x oder x* oder *x* | C MATCHES '*x' | Nicht zutreffend |
| ? | Platzhalter für ein einzelnes Zeichen (wie in der folgenden Tabelle beschrieben) | CHAR | ?x, x?, ?x?, x?? | C MATCHES '?x' | Nicht zutreffend |
| | | Logisches ODER | Einfache SQL-Typen | x|y | C IN ('x', 'y') | C IN (x, y) |
Das Gleichheitszeichen (=) kann bedeuten, dass etwas einen Nullwert hat, und das Ungleichheitszeichen (!= oder <>) kann bedeuten, dass etwas keinen Nullwert hat.
Eine Klausel MATCHES resultiert aus der Angabe des Benutzers eines der Platzhalterzeichen, die in der nächsten Tabelle beschrieben sind.
| Symbol | Effekt |
| * | Stimmt mit null oder mehr Zeichen überein. |
| ? | Stimmt mit allen einzelnen Zeichen überein. |
| [ ] | Stimmt mit allen in Klammern enthaltenen Zeichen überein. |
| - (Bindestrich) | Wenn ein Bindestrich zwischen Zeichen innerhalb von Klammern verwendet wird, stimmt er mit jedem Zeichen im Bereich zwischen den beiden Zeichen (einschließlich) überein. Beispiel: [a-z] stimmt mit jedem kleingeschriebenen Buchstaben oder jedem kleingeschriebenen Sonderzeichen überein. |
| ^ | Wenn dieses Zeichen in Klammern verwendet wird, stimmt ein erstes Winkelzeichen mit allen Zeichen überein, die nicht in den Klammern enthalten sind. Beispiel: [^abc] stimmt mit allen Zeichen außer a, b oder c überein. |
| \ | Dies ist das Standard-Escapezeichen. Das folgende Zeichen ist ein Literal. Damit können alle Platzhalterzeichen in die Zeichenfolge eingefügt werden, ohne dass sie tatsächlich als Platzhalter verstanden werden. |
| Alle anderen Zeichen außerhalb von Klammern | Müssen exakt übereinstimmen. |
openUI {bindingByName=yes}
activeForm
bind firstName, lastName, ID
OnEvent(AFTER_FIELD:"ID")
if (employeeID == 700)
firstName = "Angela";
lastName = "Smith";
end
end