Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Include PageCustomizerCustomizer

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.

Code Block
languagexml
<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.

Code Block
languagexml
<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

6

Dezimalzahlen

45.678 oder 45.678f

Dezimalzahlen (hohe Präzision)

45.678m

null - Konstante

null

Boolsche - Konstanten

truefalse

Einfache Zeichenkette mit ''

'A ''quoted'' string'

Alternative Zeichenkette mit ““

"A \"quoted\" string"

Nicht zulässig. Hier müssen die einfachen Hochkommas verwendet werden.

Liste

[A, B, 2, "three"]

Operatoren

Operator

XML

Beschreibung

Beispiel

Resultat

==

Gleich

2 == 2

Wahr

!=

Nicht gleich

2 != 2

Falsch

>

&gt;

Grösser als

2 > 2

Falsch

<

&lt;

Kleiner als

2 < 2

Falsch

>=

&gt;=

Grösser als oder gleich

2 >= 2

Wahr

<=

&lt;=

Kleiner als oder gleich

2 <= 2

Wahr

Die folgenden Operatoren können für Zeichenketten verwendet werden:

Operator

Synonym

Beschreibung

Beispiel

Resultat

%=

BeginsWith()

Startet mit

'bla' %= 'b'

Wahr

=%

EndsWith()

Endet mit

'bla' =% 'a'

Wahr

%=%

Contains()

enthält

'bla' %=% 'la'

Wahr

~~

EqualsCI()

Gleich*

'bla' ~~ 'Bla'

Wahr

!~

NotEqualsCI()

Nicht gleich*

'bla' !~ 'Bla'

Falsch

%~

BeginsWithCI()

Startet mit*

'bla' %= 'B'

Wahr

~%

EndsWithCI()

Endet mit*

'bla' =% 'A'

Wahr

%~%

ContainsCI()

Enthält*

'bla' %=% 'LA'

Wahr

* Gross-/Kleinschreibung wird nicht berücksichtigt.

Für arithmetische Funktionen stehen folgende Operatoren zur Verfügung:

Operator

Beschreibung

Beispiel

Resultat

*

Multiplikation

2 * 2

4

/

Division

2 / 2

1

+

Addition

2 + 2

4

-

Subtraktion

2 - 2

0

^

Potenz

2 ^ 3

8

%

Modulo

3 % 2

1

Folgende “verbindende” Operatoren stehen zur Verfügung:

Operator

XML

Beschreibung

Beispiel

Resultat

&&

&amp;&amp;

und

true && false

Falsch

||

oder

true || false

Wahr

!

nicht

!true

Falsch