Interpreter: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
 
'''Parameter'''
 
'''Parameter'''
  
*ie ("if empty) - Wenn der Wert von z leer ist, dann wird ersatzweise der Wert von ie verwendet; ähnlich NVL bei SQL; Funktionen werden ersetzt
+
*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=7   z=$GUID()
+
  #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 73: Zeile 120:
 
  #logi  Berechnung beendet
 
  #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()==
  
=Verzweigungen=
+
("command parameter") - Greift auf einen Parameter des Kommandos zu.
  
 +
'''Parameter'''
  
  else if FLineF = '~' then SetFilterStatus                                    // Interpretiert die Filter-Bedingungen
+
# Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
  
  else if FLineF = '#newtabcmd' then NewTabCmd                                // Führt ein Kommando in einem neuen Tab aus
+
'''Beispiel'''
  else if FLineF = '#tab_new' then NewTabCmd   
 
  
 +
#page_fill  d=$CP(1)
  
=Sonstiges=
+
==$ICP()==
  
==#tab_new==
+
("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.
  
Öffnet einen neuen Tab im BAF-Client und führt dort ein Kommando aus.
+
Wird fast immer in Verbindung mit Verzweigungsbedingungen verwendet.
  
 
'''Parameter'''
 
'''Parameter'''
  
* c ("caption") - Beschriftung des neuen Tabs
+
# Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
* cmd ("command") - Kommando, das im neuen Tab ausgeführt wird
+
# und Folgende: Vergleichswerte
 +
 
 +
'''Beispiele'''
 +
 
 +
~ $ICP(0,ex)
 +
~ $ICP(0,ex,im,new)
  
'''Beispiel'''
+
==$INCP()==
  
#tab_new  c=xuser  cmd=xuser($PAGE(link))
+
("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'''
  
(keine)
+
# 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:
  
'''Beispiel'''
+
* $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.

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

  1. 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

  1. 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

  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)

$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

  1. Nummer des Parameters. 0-relativ, der erste Parameter hat somit die Nummer 0.
  2. 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