Interpreter

Aus bafbal.de
Zur Navigation springen Zur Suche springen

Im Interpreter sind nur wenige Prozeduren und Funktionen direkt implementiert. Die meisten Routinen finden sich in den Modulen.

Values[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

#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[Bearbeiten]

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()[Bearbeiten]

Gibt den Inhalt eines Values zurück

Parameter

  1. Nummer des Values

Beispiel

#cout c=$VAL(3)

Log[Bearbeiten]

#exception_info[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

#tab_new[Bearbeiten]

Ö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

  1. tab_new c=xuser cmd=xuser($PAGE(link))

$CP()[Bearbeiten]

("command parameter") - Greift auf einen Parameter des Kommandos zu.

Parameter

  1. Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.

Beispiel

#page_fill  d=$CP(1)

$ICP()[Bearbeiten]

("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

  1. Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
  2. und Folgende: Vergleichswerte

Beispiele

~ $ICP(0,ex)
~ $ICP(0,ex,im,new)

Internes[Bearbeiten]

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