Das ECUI unterstützt eine einfache Expression-Sprache, die primär für folgende Zwecke eingesetzt wird:
Filter auf Layouts um die Datensätze einzuschränken
Steuerung von dynamischer
Sichtbarkeit
Lesbarkeit
Verfügbarkeit
Einfache Expression-Beispiele sehen wie folgt aus:
Address.Country != 'CH'
Grade > 85
IsManager && IsActive
Salary + Bonus * .1
'<{LastName}, {FirstName}>'
Beispiel Filter in der Listenansicht
Es werden nur Datensätze angezeigt welche den Vornamen Alexander haben.
<layout type="List" ... filter="FirstName == 'Alexander'"> ... </layout>
Im filter
Attribut kann die Expression benutzt werden.
Beispiel dynamische Sichtbarkeit eines Feldes in Detailansicht
Bei dieser Adresse ist die Firma nur sichtbar, wenn die Kategorie ungleich Id 3 ist.
<layout type="Detail" targetClass="Adresse" ...> <propertyLink link="Firma"> <visible>KategorieID != 3</visible> </propertyLink> ... </layout>
Innerhalb von group
, propertyLink
kann gesteuert werden:
enabled
visible
readonly
required
XML Editor
Grundsätzlich bauen wir auf der gleichen Syntax für die Expressions auf. Im Ansichten-Editor verwenden wir jedoch XML als Sprache. Damit wird auch die zulässige Syntax auf das im XML zulässige Set eingeschränkt. Sonderzeichen wie >
können dann nicht verwendet werden. Deshalb gibt es im XML Editor Abweichungen. In einer zusätzlichen Spalte XML machen wir deshalb im Folgenden Anmerkungen wie es dort zu verwenden ist.
Basistypen
Type | Beispiel | XML |
---|---|---|
Ganze Zahlen |
| |
Dezimalzahlen |
| |
Dezimalzahlen (hohe Präzision) |
| |
null - Konstante |
| |
Boolsche - Konstanten |
| |
Einfache Zeichenkette mit '' |
| |
Alternative Zeichenkette mit ““ |
| Nicht zulässig. Hier müssen die einfachen Hochkommas verwendet werden. |
Liste |
|
Operatoren
Operator | XML | Beschreibung | Beispiel | Resultat |
---|---|---|---|---|
| Gleich |
| Wahr | |
| Nicht gleich |
| Falsch | |
|
| Grösser als |
| Falsch |
|
| Kleiner als |
| Falsch |
|
| Grösser als oder gleich |
| Wahr |
|
| Kleiner als oder gleich |
| Wahr |
Die folgenden Operatoren können für Zeichenketten verwendet werden:
Operator | Synonym | Beschreibung | Beispiel | Resultat |
---|---|---|---|---|
|
| Startet mit |
| Wahr |
|
| Endet mit |
| Wahr |
|
| enthält |
| Wahr |
|
| Gleich* |
| Wahr |
|
| Nicht gleich* |
| Falsch |
|
| Startet mit* |
| Wahr |
|
| Endet mit* |
| Wahr |
|
| Enthält* |
| Wahr |
* Gross-/Kleinschreibung wird nicht berücksichtigt.
Für arithmetische Funktionen stehen folgende Operatoren zur Verfügung:
Operator | Beschreibung | Beispiel | Resultat |
---|---|---|---|
| Multiplikation |
| 4 |
| Division |
| 1 |
| Addition |
| 4 |
| Subtraktion |
| 0 |
| Potenz |
| 8 |
| Modulo |
| 1 |
Folgende “verbindende” Operatoren stehen zur Verfügung:
Operator | XML | Beschreibung | Beispiel | Resultat |
---|---|---|---|---|
|
| und |
| Falsch |
| oder |
| Wahr | |
| nicht |
| Falsch |