Startseite
jump to top

Startseite / Vorlagenentwicklung / Regeln / Formulareigenschaften <PROPERTY/> / Eigenschaft BODY

Eigenschaft BODY

Prüft, in welchem Inhaltsbereich ein Formular geöffnet wurde

Seitenvorlagen können, abhängig vom Layout der Seite, mehrere Inhaltsbereiche besitzen (z. B. „left“, „center“, „right“). Der Vorlagenentwickler kann für jeden Inhaltsbereich definieren, welche Absatzvorlagen für diesen Bereich verwendet werden dürfen (z. B. die Absatzvorlage „Text/Bild“ nur im Inhaltsbereich „center“).

Mithilfe des Attributs BODY kann eine Regel definiert werden, die das Einblenden eines Formularelements aus einer Absatzvorlage, abhängig vom Inhaltsbereich, in der das Formular geöffnet wird, ermöglicht. Auf diese Weise können Formularelemente innerhalb eines bestimmten Inhaltsbereichs gezielt ein- oder ausgeblendet werden.

Der Ausdruck <PROPERTY source='#global' name='BODY'/> kann im Bereich Wertermittlung der Regeldefinition (oder für die Definition einer Vorbedingung) eingesetzt werden und liefert den Namen des Inhaltsbereich zurück, in dem ein Formular geöffnet wurde. Da es sich um eine allgemeingültige Eigenschaften des Formulars handelt, muss dem Attribut source das Objekt #global zugewiesen werden.

Zur Definition einer vollständigen Bedingung, also z. B. „Wurde das Formular im Inhaltsbereich „center“ geöffnet?“ muss zusätzlich ein konstanter textueller Vergleichswert (z. B. <TEXT>center</TEXT>) und der Operator <EQUAL/> angegeben werden. In diesem Fall liefert der Ausdruck einen Booleschen Wert zurück.

Wichtig Der Ausdruck kann ausschließlich für die Definition von Regeln innerhalb von Absatzvorlagen verwendet werden. Außerhalb von Absatzvorlagen wird ein Fehler gemeldet („No such fact“).

Beispiele

1) Gezieltes Ausblenden von Eingabekomponenten in unterschiedlichen Inhaltsbereichen

Die Seitenvorlage im vorliegenden Beispiel besitzt die Inhaltsbereiche „content_a“, „content_b“ und „content_c“. Die Absatzvorlage, die innerhalb dieser Seitenvorlage verwendet werden kann, enthält die Eingabekomponenten:

„Text_A“: Soll nur im Inhaltsbereich „content_a“ sichtbar sein.
„Text_B“: Soll nur im Inhaltsbereich „content_b“ sichtbar sein.
„Text_C“: Soll nur im Inhaltsbereich „content_c“ sichtbar sein.
„Text_AB“: Soll nur in den Inhaltsbereichen „content_a“ und „content_b“ sichtbar sein.

Da sich der Wert der Eigenschaft im Verlauf der Formularbetrachtung nicht ändert, kann hier mit der Definition einer Vorbedingung gearbeitet werden. Das bedeutet, die nachfolgende Regel wird nur durchlaufen, wenn die Bedingung (z. B. Inhaltsbereich ist gleich „content_a“) zutrifft.

Im Beispiel werden die Komponenten „Text_B“ und „Text_C“ initial dann ausgeblendet, wenn die Vorbedingung erfüllt ist, also der beinhaltende Inhaltsbereich den Namen „content_a“ hat. Die Wertermittlung liefert in diesen Fall immer <FALSE/> und die Handlungsanweisung („Eingabekomponenten Text_B und Text_C einblenden“) wird niemals ausgeführt. Damit werden im Inhaltsbereich „content_a“ immer nur die Eingabekomponenten „Text_A“ und „Text_AB“ eingeblendet.

...
<RULE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="body"/>
<TEXT>content_a</TEXT>
</EQUAL>
</IF>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY source="Text_B" name="VISIBLE"/>
<PROPERTY source="Text_C" name="VISIBLE"/>
</DO>
</RULE>
...

Die gesamte Regel für alle Inhaltsbereiche sieht folgendermaßen aus

<RULES>

<!-- content_A -->
<RULE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="body"/>
<TEXT>content_a</TEXT>
</EQUAL>
</IF>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY source="Text_B" name="VISIBLE"/>
<PROPERTY source="Text_C" name="VISIBLE"/>
</DO>
</RULE>

<!-- content_B -->
<RULE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="body"/>
<TEXT>content_b</TEXT>
</EQUAL>
</IF>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY source="Text_A" name="VISIBLE"/>
<PROPERTY source="Text_C" name="VISIBLE"/>
</DO>
</RULE>

<!-- content_C -->
<RULE>
<IF>
<EQUAL>
<PROPERTY source="#global" name="body"/>
<TEXT>content_c</TEXT>
</EQUAL>
</IF>
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY source="Text_A" name="VISIBLE"/>
<PROPERTY source="Text_B" name="VISIBLE"/>
<PROPERTY source="Text_AB" name="VISIBLE"/>
</DO>
</RULE>

</RULES>

© 2005 - 2020 e-Spirit AG | Alle Rechte vorbehalten. | FirstSpirit 2020-07 | Datenschutz | Impressum | Kontakt