Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

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

Image AddedImage Removed
Abbildung A: Aufbau einer Regel

...

Eine Spalte definiert genau einen Wert. In Abb. A sind das:

 SpaltennameSpalte1ErstzulassungSpalte2ModellSpalte3PreisSpalte4Will_VerkaufenSpalte5PS
Wert (Bedingung)01.01.2013RS575.500100TRUE1.5450Hallo

 

Der Wert einer Spalte kann einen der folgenden Datentypen haben (die in Abb. A alle verwendet wurden):

DATESTRINGNUMBERREALBOOLEANREAL

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 Spaltenwerttrifft 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:

Image AddedImage Removed
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.