Interpreter: Unterschied zwischen den Versionen
(→$ICP()) |
|||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 11: | Zeile 11: | ||
'''Parameter''' | '''Parameter''' | ||
− | *ie ( | + | *cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt |
+ | *ie (if empty) - Wenn der Wert von z leer ist, dann wird ersatzweise der Wert von ie verwendet; ähnlich NVL bei Oracle; Funktionen werden ersetzt | ||
*n - Nummer des Values | *n - Nummer des Values | ||
+ | *r (rights) - Der Value wird nur dann gesetzt, wenn das Recht vorliegt; default ist ''frm'' | ||
+ | *rf (replace functions) - Wenn Y, dann werden nach der Zuweisung auf den Value nochmals die Funktionen ersetzt. Wird zum Beispiel benötigt, wenn Code mit Funktionen mittels $DATA() aus der Datenbank geladen wird; Funktionen werden ersetzt, default N; siehe Beispiel | ||
*z - Wert der Variablen, Funktionen werden ersetzt, default ist ein leerer String | *z - Wert der Variablen, Funktionen werden ersetzt, default ist ein leerer String | ||
+ | |||
+ | '''Beispiele''' | ||
+ | |||
+ | #val_set n=7 z=$GUID() | ||
+ | #val_set n=1 z=$GUID() r=admin | ||
+ | |||
+ | -- Zum Parameter rf: $NOW() in die Zwischenablage kopieren und dann ausführen | ||
+ | #val_set n=1 z=$CLIPBOARD() rf=N | ||
+ | #message c=$VAL(1) | ||
+ | #val_set n=1 z=$CLIPBOARD() rf=Y | ||
+ | #message c=$VAL(1) | ||
+ | |||
+ | ==#val_add== | ||
+ | |||
+ | <nowiki>#val_add fügt einem Value einen Wert hinzu.</nowiki> | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | *cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt | ||
+ | *n - Nummer des Values; zwingend erforderlich | ||
+ | *r (rights) - Der Value wird nur dann gesetzt, wenn das Recht ''write'' vorliegt; default ist ''frm''. | ||
+ | * y -Typ der Operation; default ''text'' | ||
+ | ** curr - Es wird eine Fixkomma-Addition vorgenommen | ||
+ | ** date - Es wird dem Datum eine Anzahl von Tagen hinzugefügt | ||
+ | ** datetime - Es wird dem Datum eine Anzahl von Tagen hinzugefügt, Ergebnis als datetime | ||
+ | ** int - Es wird eine Ganzzahl-Addition vorgenommen | ||
+ | ** text - Der Wert wird als Text hinzugefügt | ||
+ | *z - Wert, welcher dem Value hinzugefügt wird, Funktionen werden ersetzt, default ist ein leerer String oder eine 0 | ||
+ | |||
'''Beispiel''' | '''Beispiel''' | ||
− | #val_set n= | + | #val_set n=1 z=$NOW() |
+ | #val_add n=1 z=1 y=datetime | ||
+ | #cout c=$VAL(1) | ||
==#val_clearall== | ==#val_clearall== | ||
Zeile 44: | Zeile 78: | ||
=Log= | =Log= | ||
+ | |||
+ | ==#exception_info== | ||
+ | |||
+ | Tritt eine Exception auf, dann wird die entsprechende Fehlermeldung in das Log geschrieben. Mit #exception_info kann eine Information ergänzt werden, die vor diese Fehlermeldung gesetzt wird. Üblicherweise wird das dazu verwendet, um eine ID zu schreiben, damit der fehlerhafte Datensatz gefunden wird. | ||
+ | |||
+ | '''Parameter''' | ||
+ | |||
+ | * z - Wert, welcher vor die Fehlermeldung geschrieben wird. | ||
+ | |||
+ | '''Beispiel''' | ||
+ | |||
+ | #exception_info z=$DATA(dat,knd_nr) | ||
+ | |||
==#log== | ==#log== | ||
Zeile 72: | Zeile 119: | ||
#logi Berechnung beendet | #logi Berechnung beendet | ||
− | |||
− | |||
− | |||
=Kommandos= | =Kommandos= | ||
Zeile 89: | Zeile 133: | ||
'''Beispiel''' | '''Beispiel''' | ||
− | #tab_new c=xuser cmd=xuser($PAGE(link)) | + | #tab_new c=xuser cmd=xuser($PAGE(link)) |
==$CP()== | ==$CP()== | ||
Zeile 119: | Zeile 163: | ||
~ $ICP(0,ex,im,new) | ~ $ICP(0,ex,im,new) | ||
− | ==== | + | ==$INCP()== |
+ | |||
+ | ("is not command parameter") - Vergleicht den Parameter des Kommandos mit dem im zweiten oder weiteren Parameter angegebenen Wert; Unterschiede in Groß- und Kleinschreibung werden dabei nicht berücksichtigt. Gibt Y zurück, wenn der Parameter mit keinem der Vergleichswerte übereinstimmt. | ||
+ | |||
+ | Wird fast immer in Verbindung mit Verzweigungsbedingungen verwendet. | ||
'''Parameter''' | '''Parameter''' | ||
− | ( | + | # Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0. |
+ | # und Folgende: Vergleichswerte | ||
+ | |||
+ | '''Beispiele''' | ||
+ | |||
+ | ~ $INCP(0,ex) | ||
+ | ~ $INCP(0,ex,im,new) | ||
+ | |||
+ | =Internes= | ||
+ | |||
+ | Die folgenden Funktionen werden für interne Zwecke verwendet: | ||
− | + | * $INTER() - Name des Interpreters | |
+ | * $HISTSQL() - SQL-Statement für den History-Dialog | ||
+ | * $HISTTABLE() - Tabellenname der History-Tabelle | ||
+ | * $HISTMEMOFIELD() - Feldname des Memo-Feldes für den History-Dialog |
Aktuelle Version vom 2. Februar 2024, 17:18 Uhr
Im Interpreter sind nur wenige Prozeduren und Funktionen direkt implementiert. Die meisten Routinen finden sich in den Modulen.
Inhaltsverzeichnis
Values
Im Gegensatz zu Variablen ist der Gültigkeitsbereich von Values auf das jeweilige (Primär- oder Sub-) Kommando beschränkt. Values haben Nummern, während Variable Namen haben.
#val_set
Setzt der Wert für einen Value.
Parameter
- cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt
- ie (if empty) - Wenn der Wert von z leer ist, dann wird ersatzweise der Wert von ie verwendet; ähnlich NVL bei Oracle; Funktionen werden ersetzt
- n - Nummer des Values
- r (rights) - Der Value wird nur dann gesetzt, wenn das Recht vorliegt; default ist frm
- rf (replace functions) - Wenn Y, dann werden nach der Zuweisung auf den Value nochmals die Funktionen ersetzt. Wird zum Beispiel benötigt, wenn Code mit Funktionen mittels $DATA() aus der Datenbank geladen wird; Funktionen werden ersetzt, default N; siehe Beispiel
- z - Wert der Variablen, Funktionen werden ersetzt, default ist ein leerer String
Beispiele
#val_set n=7 z=$GUID() #val_set n=1 z=$GUID() r=admin
-- Zum Parameter rf: $NOW() in die Zwischenablage kopieren und dann ausführen #val_set n=1 z=$CLIPBOARD() rf=N #message c=$VAL(1) #val_set n=1 z=$CLIPBOARD() rf=Y #message c=$VAL(1)
#val_add
#val_add fügt einem Value einen Wert hinzu.
Parameter
- cnd (condition) - Der Value wird nur dann gesetzt, wenn cnd=Y ist; Funktionen werden ersetzt
- n - Nummer des Values; zwingend erforderlich
- r (rights) - Der Value wird nur dann gesetzt, wenn das Recht write vorliegt; default ist frm.
- y -Typ der Operation; default text
- curr - Es wird eine Fixkomma-Addition vorgenommen
- date - Es wird dem Datum eine Anzahl von Tagen hinzugefügt
- datetime - Es wird dem Datum eine Anzahl von Tagen hinzugefügt, Ergebnis als datetime
- int - Es wird eine Ganzzahl-Addition vorgenommen
- text - Der Wert wird als Text hinzugefügt
- z - Wert, welcher dem Value hinzugefügt wird, Funktionen werden ersetzt, default ist ein leerer String oder eine 0
Beispiel
#val_set n=1 z=$NOW() #val_add n=1 z=1 y=datetime #cout c=$VAL(1)
#val_clearall
Löscht alle Values. Wird selten benötigt, da die Values mit Ende des (Primär- oder Sub-) Kommandos ohnehin ihre Gültigkeit verlieren.
Parameter
(keine)
Beispiel
#val_clearall
$VAL()
Gibt den Inhalt eines Values zurück
Parameter
- Nummer des Values
Beispiel
#cout c=$VAL(3)
Log
#exception_info
Tritt eine Exception auf, dann wird die entsprechende Fehlermeldung in das Log geschrieben. Mit #exception_info kann eine Information ergänzt werden, die vor diese Fehlermeldung gesetzt wird. Üblicherweise wird das dazu verwendet, um eine ID zu schreiben, damit der fehlerhafte Datensatz gefunden wird.
Parameter
- z - Wert, welcher vor die Fehlermeldung geschrieben wird.
Beispiel
#exception_info z=$DATA(dat,knd_nr)
#log
Schreibt einen Text in das Log.
Parameter
- c ("caption") - Text, der in das Log geschrieben wird; Funktionen werden ersetzt; default ist #log, Parameter c nicht gesetzt
- y - Typ des Log-Eintrags; default I. Vorgesehen sind die folgenden Typen:
- E - Error
- I - Info
- W - Warning
Beispiel
#log y=W c="Ermittelte Summe untypisch gering"
#logi
Schreibt einen Text als Info in das Log.
Parameter
Die Prozedur #logi hat keine benannten Parameter. Der komplette Text nach dem #logi und dem folgenden Leerzeichen wird in das Log geschrieben; Funktionen werden ersetzt.
Beispiel
#logi Berechnung beendet
Kommandos
#tab_new
Öffnet einen neuen Tab im BAF-Client und führt dort ein Kommando aus.
Parameter
- c ("caption") - Beschriftung des neuen Tabs
- cmd ("command") - Kommando, das im neuen Tab ausgeführt wird
Beispiel
#tab_new c=xuser cmd=xuser($PAGE(link))
$CP()
("command parameter") - Greift auf einen Parameter des Kommandos zu.
Parameter
- Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
Beispiel
#page_fill d=$CP(1)
$ICP()
("is command parameter") - Vergleicht den Parameter des Kommandos mit dem im zweiten oder weiteren Parameter angegebenen Wert; Unterschiede in Groß- und Kleinschreibung werden dabei nicht berücksichtigt. Gibt Y zurück, wenn der Parameter mit einem der Vergleichswerte übereinstimmt.
Wird fast immer in Verbindung mit Verzweigungsbedingungen verwendet.
Parameter
- Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
- und Folgende: Vergleichswerte
Beispiele
~ $ICP(0,ex) ~ $ICP(0,ex,im,new)
$INCP()
("is not command parameter") - Vergleicht den Parameter des Kommandos mit dem im zweiten oder weiteren Parameter angegebenen Wert; Unterschiede in Groß- und Kleinschreibung werden dabei nicht berücksichtigt. Gibt Y zurück, wenn der Parameter mit keinem der Vergleichswerte übereinstimmt.
Wird fast immer in Verbindung mit Verzweigungsbedingungen verwendet.
Parameter
- Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
- und Folgende: Vergleichswerte
Beispiele
~ $INCP(0,ex) ~ $INCP(0,ex,im,new)
Internes
Die folgenden Funktionen werden für interne Zwecke verwendet:
- $INTER() - Name des Interpreters
- $HISTSQL() - SQL-Statement für den History-Dialog
- $HISTTABLE() - Tabellenname der History-Tabelle
- $HISTMEMOFIELD() - Feldname des Memo-Feldes für den History-Dialog