Variablen, Funktionen, SetField - miebach/miclas-vic GitHub Wiki

Variablen

Allgemein auslesbare Variablen:

  • m_Benutzernummer integer (Gruppe läßt sich scheinbar nicht auslesen?)
  • m_strBenutzername string
  • m_bSuperuserJN boolean (0 oder 1)
  • m_lFunction integer
Nur in den Triggertypen "Vor SQL-Update" und "Nach SQL-Updates"
Hier kann der aktuelle Modus ausgelesen werden.
2 -> Ändern
3 -> Kopieren
9 -> Neu

Selbst deklarierte Funktionen

siehe https://github.com/miebach/miclas-vic/wiki/Eigene-Funktionen

Eingebaute Funktionen

abs

abs( x: Double : Double ) : Double

Ergibt den positiven Betrag von x.

round

round( x: Double) : Integer

Rundet auf oder ab zur naechsten ganzen Zahl.

sqr

sqr( x: Double [, y: Double ] ) : Double

Berechnet die y-ste Wurzel von x. Wird y nicht angegeben, so wird die Quadratwurzel berechnet.

pow

pow( x: Double [, y: Double ] ) : Double

Berechnet die y-ste Potenz von y. Wird y nicht angegeben, so wird standardmäßig das Quadrat von x berechnet.

log

log( x: Double [, y: Double ] ) : Double

Berechnet den Logarithmus zur Basis y von x. Wird y nicht explizit angegeben, so wird der natürliche Logarithmus zur Basis e = 2.718281828459 angenommen.

sin

sin( x: Double ) : Double

Berechnet den Sinus vom Radienten x.

cos

cos( x: Double : Double ) : Double

Berechnet den Cosinus vom Radienten x.

tan

tan( x: Double ) :Double

Berechnet den Tangens vom Radienten x.

hypot

hypot( x: Double, y: Double ) : Double

Berechnet die Länge der Hypothenuse eines rechtwinkligen Dreiecks mit den Schenkeln der Länge x und y.

sum

sum( x1, x2, ..., xn ) : Double

Berechnet die Summe der Zahlen x1... xn.

avr

avr( x1, x2, ..., xn ) : Double

Berechnet den Durchschnitt der Zahlen x1... xn.

val

val( s: String ) : Integer, Double oder Bool

Wandelt, falls möglich, einen String in einen numerischen oder boole'schen Wert um. Enthält der String keinen verwendbaren Inhalt, ist das Ergebnis Integer 0.

char

Erzeugt einen String der aus dem Zeichen mit dem übergebenen Zeichencode besteht. Beispiel:

s := char(34) + "Adresse" + chr(34);

str

str( x: beliebig [, size: Integer ] ): String

Wandelt x in einen String um. Die Größe des Strings kann mit size angegeben werden, wobei eventuell der Ergebnisstring rechts mit Leerzeichen ausgefüllt wird.

Alternativ kann format verwendet werden.

len

len( s: String ) : Integer

Gibt die Länge von s aus.

mid

mid( s: String, pos: Integer [, size: Integer ]) : String

Es werden size Zeichen ab der Position pos aus dem String s kopiert. Wird size nicht angegeben, so wird der von pos rechts stehende Teilstring übergeben.

Falls die mid Funktion nicht verfuegbar ist, kann diese einfache Ersatz-Funktion verwendet werden:

function substring(s, start, len)
  // Position fuer start ist 1-basiert.
  llen := start + len - 1;
  sl := left(s, llen);
  sr := right(sl, len);
  return sr;
end;

MessageBox(substring("abcdefg", 2, 4)); // Ergebnis ist "bcde" 

left

left( s: String, size: Integer ) : String

Gibt die ersten size Zeichen von s in einen neuen String aus.

right

right( s: String, size: Integer ) : String

Gibt die letzten size Zeichen von s in einen neuen String aus.

trimleft

trimleft

Schneidet führende Leerstellen ab.

Beispiel:

// Bei Firmenbezeichnung1 mit führenden Leerzeichen warnen
//
// Nach SQL Update - Adresse
//
v_text := "1" + TRIMLEFT(m_AdrFirmenbezeichnung1) + " 2" + m_AdrFirmenbezeichnung1;
messagebox(v_text);

trimright

trimright

Schneidet nachfolgende Leerstellen ab. (siehe oben)

getat

getat( s: String, pos: Integer ) : Integer

Gibt den ASCII-Wert des Zeichens an der Stelle pos aus.

setat

setat( pos: Integer, s: String, asc: Integer ) : String

Gibt eine Kopie des String s wieder. Die Kopie enthält jedoch an der Stelle pos das Zeichens asc.

setat

setat( pos: Integer, s: String, sub: String [, size: Integer ] ) : String

Gibt eine Kopie des String s wieder. Die Kopie enthält jedoch ab der Stelle pos die size -viele Zeichen aus sub. Wird size nicht angegeben, wird der komplette String sub hinein kopiert.

Beispiel:

setat( 3, "abcdef", "ghijk", 2 ) -> "abghef" 
setat( 3, "abcdef", "ghijk" ) -> "abghijk"

insert

insert( pos: Integer, s: String, sub: String [, size: Integer ] ) : String

Gibt eine Kopie des String s wieder. In der Kopie ist jedoch an der Stelle pos der String sub eingefügt. Wird size mit angegeben, so werden nur size-viele Zeichen eingefügt.

Beispiel:

insert( 3, "abcdef", "ghijk", 2 ) -> "abghcdef" 
insert( 3, "abcdef", "ghijk" ) -> "abghijkcdef"

format

Formatiert die Ausgabe nach Ihren Vorgaben. Analog dem format Befehl der Sprache C.

format( fs: String, x(1): beliebig, ... , x:(n): beliebig ) : String

Siehe auch http://www.cplusplus.com/reference/cstdio/printf/ - Beispiel:

format("%i", m_Benutzernummer);

upper

upper( s: String ) : String

Gibt eine Kopie des String s wieder, der jedoch alle Zeichen in Großbuchstaben enthält.

lower

lower( s: String ) : String

Gibt eine Kopie des String s wieder, der jedoch alle Zeichen in Kleinbuchstaben enthält.

find

find( sub: String, s: String [, pos: Integer ] ) : Integer

Der 3. Parameter pos ist nicht in allen Versionen verfügbar.

Falls sub in s enthalten ist, wird die Position des ersten Auftretens von sub nach der Stelle pos ausgegeben. Ansonsten ist das Ergebnis 0. Wird pos nicht mit angegeben, so wird vom Anfang von s gesucht. Groß- und Kleinschreibung werden dabei beachtet.

setField

Es kann in einem Trigger ein Feld in dem aktuellen Datensatz beschrieben werden. Es sind nicht alle Felder beschreibbar. ZB. ist in der Adressbearbeitung AdrFirmenbezeichnung1 oder AdrTelefon mit setField beschreibbar, aber nicht AdrEMail. Beispiel:

SetField("AdrFirmenbezeichnung1",eingabe [,InterneDatensatznummer]); 

Siehe mit SetField beschreibbare Felder in der Hilfe

Der 3. Parameter 'InterneDatensatznummer' muss weggelassen werden, wenn der 'Ändern-Modus' aktiviert ist.

Wenn die entsprechende Tabelle nicht im Ändern-Modus ist (z.B. bei Neuanlage), oder wenn die Funktion aus einer Variante aufgerufen wird, kann hier je nach Tabelle zB. m_InterneAdressnummer, m_InterneArtikelnummer, m_InterneVorgangsnummer oder m_InternePositionsnummer verwendet werden.

Funktionen, um einen Fehler zu erzeugen

variantinternerror

variantinternerror( ierror: Integer, msg: String ) : nichts

Erzeugt einen Fehler mit der Nummer ierror und der zusätzlichen Meldung msg. Die Programmausführung wird komplett abgebrochen und ein Hinweisfenster erscheint.

error

error( ierror: Integer, msg: String ) : beliebig

Standardmäßig wie variantinternerror, mit dem Unterschied, daß diese Funktion überschrieben werden kann. Somit kann eine Fehlerbehandlung durchgeführt werden. Alle MiCLAS.-implementierten Funktionen rufen bei einem Auftreten eines Fehlers oder bei einer Abbruch während einer Eingabe diese Funktion auf.

⚠️ **GitHub.com Fallback** ⚠️