...
Aufbau einer Regel im R-S
Abbildung A
In Abb. A sehen Sie den Aufbau einer Regel mit Spalten (1) und Zeilen (2). Eine Spalte definiert genau einen Wert als Bedingung. In Abb. A sind das:
...
Panel |
---|
borderColor | LightGray |
---|
bgColor | GhostWhite |
---|
borderStyle | solid |
---|
|
|
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}
(3) . Wird die Regel aufgerufen, so ist das Ergebnis:
Codeblock |
---|
|
Aufruf (EVAL-Anweisung): ${NameDerRegel}
Rückgabewert: ${Angebot_3}
Endwert: Verweis auf "Angebot_3" |
Mit ${Angebot_3}
wird eine Ressource mit dem Namen Angebot_3
zurückgegeben, in diesem Fall z.B. eine binäre Ressource, die das entsprechende Angebot als Bild enthält. Die Verwendung dynamischer Anweisungen wird im Folgenden 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. Mehr dazu im im Abschnitt über boolsche Operatoren. |
...
Im oberen Abschnitt wurden in der Regel, abgesehen von den Rückgabewerten, nur statische Werte verwendet. In der Praxis werden Sie in Regeln jedoch fast immer auch dynamische Werte in Spalten und Zeilen verwenden, denn i n einer Regel, in der alle Werte schon statisch feststehen, steht auch der Rückgabewert der Regel schon fest - Man könnte den Wert auch einfach einer Variablen zuweisen. Der Zweck von Regeln besteht aber darin, eine Möglichkeit zu schaffen, für unterschiedliche Eingangswerte ein unterschiedliches Verhalten zu implementieren.
Abbildung B
Typischerweise werden in einer Regel Datenstrom-Variablen verarbeitet, z.B. um dynamisch eine Ressource anzuwählen:
Codeblock |
---|
|
Je nach Nationalität des Kunden soll dessen Nationalflagge angezeigt werden. Die Nationalität des Kunden wird durch die Datenstrom-Variable DS.NATIONALITY geliefert - Bei jedem Kunden individuell.
Um abhängig von DS.NATIONALITY die richtige Ressource auszusuchen, benötigt man eine Regel.
Diese liefert, je nach Wert von DS.NATIONALITY, die richtige Ressource zurück. Ruft man die Regel auf, erhält man automatisch die richtige Ressource. |
Mögliche Werte von DS.NATIONALITY
:
Wert | GER | CH | AUT |
---|
Kunde kommt aus | Deutschland | Schweiz | Österreich |
---|
...
Name der Ressource | ger_flag | ch_flag | at_flag |
---|
Inhalt | | | |
---|
Dazugehörige Regel:
Abbildung C
In Abb. C wird der Spaltenwert durch die dynamische Einbindung der Datenstrom-Variablen DS.NATIONALITY
gebildet. Die Spalte hat also den Wert von DS.NATIONALITY
. Die obige Tabelle zeigt uns, dass die Datenstrom-Variable 3 Werte annehmen kann. Diese finden sich als Zeilen in der Regel wieder. Je nach aktuellem Wert von DS.NATIONALITY
wird dann die dazu passende Ressource mit der passenden Flagge zurückgegeben. 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 dann in das Dokument eingebunden werden. Im Dokument wird dann die richtige Flagge angezeigt.
Wertfindung innerhalb einer Regel ...
Erweitern |
---|
|
Panel |
---|
borderColor | LightGray |
---|
bgColor | #FCFDFE |
---|
borderWidth | 1 |
---|
borderStyle | dashed |
---|
| Die LESS < und GREATER > Operatoren überprüfen, ob ein Wert kleiner oder größer ist als der gegebene Wert. Der LESS Operator ist wahr, wenn der Wert kleiner ist als der gegebene Wert. Der GREATER Operator ist wahr, wenn der Wert größer ist als der gegebene Wert. Beispielregel C Die Bedingung der Spalte ist der Preis eines Artikels, abgefragt über die Datenstrom-Variable DS.ARTICLE_PRICE . Ist DS.ARTICLE_PRICE größer als 1000 ist Zeile #1 gültig, ist DS.ARTICLE_PRICE exakt 1000 ist Zeile #2 gültig und wenn DS.ARTICLE_PRICE kleiner als 1000 ist, ist Zeile #3 gültig.
|
|
Erweitern |
---|
|
Panel |
---|
borderColor | LightGray |
---|
bgColor | #FCFDFE |
---|
borderWidth | 1 |
---|
borderStyle | dashed |
---|
| Die EQUALLESS <= und EQUALGREATER >= Operatoren sind Erweiterungen der LESS und GREATER Operatoren. Der EQUALLESS Operator ist wahr, wenn der Wert kleiner oder gleich dem gegebenen Wert ist. Der EQUALGREATER Operator ist wahr, wenn der Wert größer oder gleich dem gegebenen Wert ist. Beispielregel C ließe sich also mithilfe des EQUALGREATER- Operators einfach implementieren: Beispielregel D Wenn der Wert von DS.ARTICLE_PRICE größer oder gleich 1000 ist, trifft Zeile #1 zu, ansonsten Zeile #2. Die Verwendung von EQUALLESS verläuft von EQUALLESS verläuft analog.
|
|
Erweitern |
---|
title | [W1, W2, Wn] Operator |
---|
|
Panel |
---|
borderColor | LightGray |
---|
bgColor | #FCFDFE |
---|
borderWidth | 1 |
---|
borderStyle | dashed |
---|
| Mit dem INLIST Operator [W1, W2, Wn] können Sie beliebig viele Werte angeben, die geprüft werden sollen. Die einzelnen Werte werden durch ein Komma getrennt. Trifft einer der Werte zu, ist die Bedingung erfüllt. Beispielregel E Die Bedingung der Spalte ist die Herkunftsstadt des Kunden, abgefragt über die Datenstrom-Variable DS.CUST_CITY . In jeder Zeile werden per INLIST -Operator 4 mögliche Werte angegeben. Trifft einer der Werte zu, ist die Zeile gültig.
|
|
...