Seitenhistorie
...
Die Zeile, in der in jeder Spalte der Wert der Zeile dem Wert der Spalte entspricht, Zeilenwert identisch zum entsprechenden Spaltenwert ist,
ist die gültige Auswahl für die Regel und ihr Rückgabewert der Der Wert der Regel. Dieser kann dabei jeden einen beliebigen Datentyp haben.
Eine Regel kann auch eine EVAL-Anweisung / einen Verweis auf eine Ressource zurückgeben.
Aufbau einer Regel
Abbildung A: Aufbau einer Regel
...
Eine Spalte definiert genau einen Wert. In Abb. A sind das:
Spaltenname | Spalte1Erstzulassung | Spalte2Modell | Spalte3PreisSpalte4 | Will_Verkaufen | Spalte5PS | |
---|---|---|---|---|---|---|
Wert (Bedingung) | 01.01.2013 | RS5 | 75.500 100 | TRUE | 1.5 450 | Hallo |
Der Wert einer Spalte kann einen der folgenden Datentypen haben (die in Abb. A alle verwendet wurden):
DATE | STRING | NUMBERREAL | BOOLEAN | REAL NUMBER | STRING |
---|
Spalten stellen die Bedingungen der Regel dar. Der Wert einer Spalte ist die Spaltenbedingung in dieser Spalte.
Eine Zeile erfüllt die Bedingung in einer Spalte, wenn ihr Wert in der Spalte mit der Spaltenbedingung übereinstimmt.
Erfüllt eine Zeile die Bedingungen aller Spalten, trifft die Regel auf die Zeile zu und ihr Rückgabewert ist der Wert der Regel.
In Abb. A ist Zeile #3 die gültige Auswahl für die Regel, da alle Werte in der Zeile identisch zum jeweiligen Spaltenwert sind.
Die Regel hat also den Wert "${Angebot_3}
" In Abb. A ist das Zeile #3. Die Regel hat also den Wert TRUE
(Abb. A (3)) und so auch der Aufruf.
Wird die Regel aufgerufen, so ist das Ergebnis:
Codeblock |
---|
${NameDerRegel} //=TRUE ${Angebot_3} |
Mit ${Angebot_3}
wird eine gleichnamige Ressource eingebunden, in diesem Fall z.B. eine binäre Ressource,
die das entsprechende Angebot enthält. Die Verwendung dynamischer Anweisungen wird am Ende des Artikels vorgestellt.
Info |
---|
Der Operator * ist immer wahr. Enthält eine Zeile also in einer Spalte den Wert '*', so erfüllt die Zeile die Bedingung dieser Spalte immer, unabhängig von der Spaltenbedingung. |
...
Die Prüfung beginnt in Zeile 1, Spalte 1. Ist der Wert von Zeile 1 in Spalte 1 identisch zur Spaltenbedingungzum Spaltenwert,
wird mit der Prüfung von Spalte 2 in Zeile 1 fortgefahren. Ist der Wert von Zeile 1 in Spalte 2 wieder identisch
zur Spaltenbedingung zum Spaltenwert der 2. Spalte, wird mit der Prüfung von Spalte 3 in Zeile 1 fortgefahren.
Ist auch der Wert von Zeile 1 in Spalte 3 identisch zur Spaltenbedingungzum Spaltenwert, trifft die gesamte Zeile zu und der Rückgabewert der Zeile
...
ist der Wert der Regel undefiniert, da kein Rückgabewert ausgewählt werden kann (rote Pfeile).
In Abb. A ist der Verlauf also folgendermaßen:
Abbildung C: Wertfindung bei Abb. A
...
Der Wert der Regel ist also TRUE
.
Natürlich machen die Werte der Beispielregel aus Abb. A + C nur begrenzt Sinn, da es keinen semantischen Zusammenhang
zwischen den Bedingungen und den Rückgabewerten gibt und die Rückgabewerte verschiedene Datentypen haben, um zu zeigen,
dass in Regeln alle Datentypen kombiniert werden können. In der Praxis werden Sie Regel erstellen, deren Werte einen Zusammenhang haben.
der Rückgabewert von Zeile 3.
Um zu verhindern, dass der Wert einer Regel undefiniert (leer) sein kann, nämlich dann,
wenn keine der Zeilen alle Bedingungen erfüllt, fügen Sie unter den regulären Zeilen eine weitere Zeile ein,
die in allen Spalten den Operator * als Wert hat, also immer gültig ist (Der Operator * wurde oben erklärt).
In dieser Zeile definieren Sie dann als Rückgabewert einen Standard-Wert.
Trifft keine der regulären Auswahlmöglichkeiten zu, wird diese Standardzeile ausgewählt und der Wert der Regel ist der Standard-Wert.
Dieses Vorgehen wurde in Abb. C durch Zeile 4 verwirklichtEinige praxisnähere Beispiele, wie man Regeln sinnvoller nutzen kann, finden Sie am Ende des Artikels.
EVAL-Anweisungen und dynamische Einbindung innerhalb einer Regel
...
Im oberen Abschnitt wurden in der Regel, bis auf eine Ausnahmeabgesehen von den Rückgabewerten, nur statische Werte verwendet.
Lediglich Rückgabewert von Zeile 4 besteht aus der dynamischen Einbindung der Ressource Firmenlogo
.
In der Praxis werden Sie in Regeln jedoch fast immer auch dynamische Werte in Spalten und Zeilen verwenden, denn in einer Regel,
...
Abbildung E: Regel zur Auswahl der Nationalflagge
In Abb. E wird die Spaltenbedingung der Spaltenwert durch die dynamische Einbindung der Datenstrom-Variablen DS.NATIONALITY
gebildet.
Die obige Tabelle zeigt uns, dass die Datenstrom-Variable 3 Werte annehmen kann. Diese finden sich als Zeilen in der Regel wieder.
...
Hat die Datenstrom-Variable beispielsweise den Wert CH, trifft die 2. Spalte auf die Bedingung zu und der Wert der Regel ist ${ch_flag}
,
also die Binäre Ressource ch_flag
mit der Schweizer Flagge. Die Regel kann z.B. durch eine Erweiterung in das Dokument eingebunden werden:
Im Formular-Bereich SERVICE_LINE
wird dann die entsprechende Flagge angezeigt.