Back to Sagegmbh

Ausdrücke

wiki-spaces-s1-pages-87982081-ausdr-plus-cke.md

latest8.5 KB
Original Source

Ausdrücke

By Andreas Langmaack (Unlicensed)

Apr 24, 2024

7 min

Add a reaction

Ausdrücke arbeiten mit folgenden Datentypen:

  • „Boolean“ (analog VB/VBA wird False durch 0 und True durch -1 repräsentiert, andere Werte werden als True ausgewertet)

  • „Int32“

  • „Decimal“

  • „Date“

  • „DateTime“

  • „Time“

  • „String“

Der Datentyp „Int16“ ist ebenfalls erlaubt, wird allerdings vor Berechnungen automatisch in „Int32“ konvertiert.

Datentypen werden bei Bedarf wie folgt konvertiert (recht restriktiv, um Fehler auszuschließen):

  • „Boolean“ wird

  • „Int32“ wird

  • „Decimal“ wird

  • „Date“ wird

  • „DateTime“ wird

  • „String“ wird nicht automatisch konvertiert

Ergebnisse werden wiederum entsprechend dem Ziel konvertiert, wobei anstelle von „Int32“-Konvertierungen bei Bedarf auch „Int16“-Konvertierungen vorgenommen werden.

Ausdrücke enthalten einen berechenbaren Ausdruck, der aus folgenden Elementen bestehen kann:

  • Feldreferenzen zum Referenzieren von Werten in den aktuell geladenen Daten (siehe Kapitel Feldreferenzen)

  • numerische Werte, bestehend aus Ziffern, optionalem Plus- oder Minus-Vorzeichen und optionalem Punkt als Dezimalzeichen

  • numerische Operatoren:

  • Vergleichsoperatoren („<“, „>“, „<=“, „>=“, „=“ und „<>“; diese liefern als Ergebnis False und True)

  • logische Operatoren („NOT“, „AND“, „OR“ und „XOR“)

  • Strings, eingeschlossen in Anführungszeichen ( “ )

  • String-Verkettung mit „&“

  • Datums-Konstanten im ISO-Format („yyyy-mm-dd“ bzw. „yyyy-mm-ddThh:mm:ss“) in Abgrenzungszeichen ( „#“ )

  • Beispiel: „#2014-12-24#“ bzw. „#2014-12-24T18:45:00#“

  • Zeit-Konstanten analog zu Datums-Konstanten („Thh:mm:ss“) in Abgrenzungszeichen ( „#“ )

  • Konstanten:

  • numerische Funktionen:

  • Datum-Zeit-Funktionen:

  • String-Funktionen:

Hinweise:

Funktionalität gleicht der der .NET-Funktion "Regex.IsMatch", siehe auch https://msdn.microsoft.com/de-de/library/sdx2bds0(v=vs.110).aspx)

Es wird der ECMAScript-Standard unterstützt, siehe https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-options , Abschnitt "ECMAScript Matching Behavior"

  • Verwendete Tools zur Erstellung eines RegEx-Musters sollten entsprechend konfiguriert werden. z.B. auf https://regex101.com/ "FLAVOR" = "ECMAScript (JavaScript)" verwenden

Ergänzende Funktionen mit eingeschränktem Einsatzbereich:

|

Funktion

|

Erläuterung

|

Daten-Edit-Element

|

Multi-Daten-Edit-Element

|

Selektions-Element

|

Listen-Element und Baum-Element

|

Datenklassen-Feld

|

Weitere Einsatzzwecke

| |

GetActiveNavigationPartName()

|

Gibt in Daten-Edit-Elementen mit Navigationselement den Namen des gerade aktiven Navigations-Elements zurück. Gibt es kein Navigations-Element oder ist es kein Daten-Edit-Element, wird stattdessen ein Leerstring zurück gegeben.

|

|

|

|

|

|

| |

GetDataRefValue(feldreferenz, spaltenname)

|

Gibt den Wert der angegebenen Spalte einer Datenreferenz eines Felds bzw. der Auswahl eines Listen-Sub-Elementes zurück.

|

|

|

|

|

|

| |

GetDropFormat()

Ab Version 9.0.3

|

Ruft im "OnDrop"-Ereignis den Formatnamen der Drag&Drop-Aktion ab.

Mögliche Formate analog zum Attribut "DropFormats" des Elementes.

|

|

|

|

|

|

| |

GetDropValue()

|

Ruft im "OnDrop"-Ereignis den Inhalt der Drag&Drop-Aktion ab.

Bei den Drop-Formaten "FileDrop", "FileDrop-Multi", "EMail" und "EMail-Multi" (siehe Attribut "DropFormats") sind dies ein oder mehrere Datei-Pfadnamen (dann mit Semikolon getrennt). Die Datei-Pfad-Namen sind in Anführungsstriche eingeschlossen.

|

|

|

|

|

|

| |

GetKeyFieldValue(schlüsselfeldnummer)

|

Liefert den Wert eines Schlüsselfeldes.

Diese Funktion wird verwendet, wenn kein anderer Datenkontext vorhanden ist und deshalb Feldreferenzen nicht aufgelöst werden können:

  • Im Kontextmenü-Eintrag im Makro eines Datenklassen-Feldes.
    Der Parameter ist die Schlüsselfeld-Nummer (1 bis 3), siehe Attribut "FieldNameKey", ...

  • Beim Löschen einer Datenstruktur im "BeforeDelete"/"AfterDelete"-Makro.
    Der Parameter ist die Schlüsselfeld-Nummer (1 bis 9), siehe Attribute "PrimaryKey1“, …

  • Im Kontextmenü-Eintrag im Makro eines Listen-Elementes.
    Der Parameter ist die Schlüsselfeld-Nummer(1 bis 9) der Datenquelle des Listen-Elementes, siehe Attribute "PrimaryKey1", …

|

|

|

|

|

|

Datenstruktur: Ereignisse "BeforeDelete" und "AfterDelete"

| |

GetMatchcodeFieldValue(schlüsselfeldnummer)

|

Liefert den Wert eines Matchcode-Feldes einer Datenklasse.

Diese Funktion wird verwendet, wenn kein anderer Datenkontext vorhanden ist und deshalb Feldreferenzen nicht aufgelöst werden können:

  • Im Kontextmenü-Eintrag im Makro eines Datenklassen-Feldes.
    Der Parameter ist die Matchcode-Feld-Nummer (1 bis 3), siehe Attribut "SqlQueryMatchcode", ...

|

|

|

|

|

|

| |

ExistsVariable(dialogvariable)

(Ab Version 9.0.2)

|

Prüft die Existenz einer lokalen Makro-Variable (beginnend mit einem Unterstrich) oder die Existenz einer Dialog-Variable (beginnend mit zwei Unterstrichen).

  • True wenn vorhanden

  • sonst False

Zum Setzen eines Feldes auf "leer", steht der Makro-Befehl "FestlegenFeldLeer" zur Verfügung.

|

|

|

|

|

|

| |

IsEmpty(feldreferenz)

|

Enthält das referenzierte Feld einen leeren String ("") bzw. keinen Wert (Null oder Nothing in .Net Sprachen)?

  • True, wenn leer oder kein Wert

  • sonst False

|

|

|

|

|

|

| |

IsEnabled(feldreferenz)

|

Ist das referenzierte Feld aktiv (enabled)?

  • True wenn aktiv

  • sonst False

Das komplementäre Makro-Kommando ist "FestlegenFeldAktiv".

|

|

|

|

|

|

| |

IsFromField()

|

Ist das aktuelle Feld das Von-Feld eines Von-Bis-Feldes (Metadaten-Eigenschaft „IsFromTo“)?

  • True, wenn es sich um ein Von-Feld handelt und die Ausführung auf dem Client erfolgt

  • sonst False

Szenario:

  • Bei Von-Bis-Feldern werden Feld-bezogene Makros zweimal ausgeführt. Hierüber kann festgestellt werden, für welchen Teil das Makro zurzeit läuft.

|

|

|

|

|

|

| |

IsReadOnly(feldreferenz)

|

Ist das referenzierte Feld schreibgeschützt?

  • True, wenn schreibgeschützt

  • sonst False

Das komplementäre Makro-Kommando ist "FestlegenNurLesen".

|

|

|

|

|

|

| |

IsRecordInsert()

|

Ist das laufende Makro wegen „Datensatz einfügen“ aufgerufen worden?

  • True, wenn neuer Datensatz

  • False wenn geänderter Datensatz

Nur gültig im „BeforeUpdate“-Ereignis eines Datensatzes bzw. einer Datenstruktur. Das Ereignis tritt sowohl bei „Insert“, als auch bei „Update“ auf.

|

|

|

|

|

|

| |

IsRunningOnServer()

|

Wird das laufende Makro auf dem Server ausgeführt?

  • True, wenn Server-seitige Ausführung

  • sonst False

Szenario:

  • Im Datensatz wird das Ereignis „BeforeUpdate“ Client- und Server-seitig ausgeführt.

  • Bei True-Validierungen der Funktion können Makros nur Server-seitig ausgeführt werden.

  • Bei False-Validierungen der Funktion können Makros, die evtl. UI-Funktionalität verwenden, nur Client-seitig ausgeführt werden

|

|

|

|

|

|

| |

IsToField()

|

Analog zu „IsFromField“ für das Bis-Feld.

|

|

|

|

|

|

| |

IsVisible(feldreferenz)

|

Ist das referenzierte Feld sichtbar?

  • True, wenn das Feld sichtbar ist

  • sonst False

Das komplementäre Makro-Kommando ist "FestlegenFeldSichtbar".

|

|

|

|

|

|

| |

ItemCount(feldreferenz)

|

Gibt die Anzahl der Positionen zurück, wenn <feldreferenz> ein Multi-Data-Edit-Element adressiert, sonst ungültig (Laufzeitfehler).

|

|

|

|

|

|

| |

MyFieldnameInParent()

|

Gibt den Feldnamen zurück, unter dem das aktuelle Element im übergeordneten Element geführt wird.

Szenario:

|

Collapse action bar

View all comments

Open Details Panel

Create page

Open Rovo Chat

Add a comment

Add a reaction