<NULL/>/<NOT_NULL/>: (Nicht-)Null-Prüfung in dynamischen Formularen
Eingabekomponenten können einen Wert enthalten oder „leer“ sein. Ist kein Wert in der Eingabekomponente hinterlegt, kann diese abhängig vom Typ der Eingabekomponente entweder einen:
- Leerwert (z. B. CMS_INPUT_TEXT) oder
- NULL (z. B. CMS_INPUT_NUMBER)
zurückliefern.
Das <NULL/>- bzw. <NOT_NULL/>-Tag kann im Bereich Wertermittlung der Regeldefinition (oder für die Definition einer Vorbedingung) eingesetzt werden und prüft, ob eine Eingabekomponente einen Wert enthält oder nicht:
- <NULL/>: Enthält die Eingabekomponente
- einen Wert, liefert die Prüfung mit <NULL/> FALSE zurück
- keinen Wert, liefert die Prüfung mit <NULL/> TRUE zurück
- <NOT_NULL/>: Enthält die Eingabekomponente
- einen Wert, liefert die Prüfung mit <NOT_NULL/> TRUE zurück
- keinen Wert, liefert die Prüfung mit <NOT_NULL/> FALSE zurück
Die Prüfung bezieht sich immer auf den Wert einer Eingabekomponente. Dazu ist zusätzlich die Angabe eines <PROPERTY/>-Tags (mit dem Attribut value) innerhalb des <NULL/>-bzw. <NOT_NULL/>-Tags notwendig.
Für Eingabekomponenten, die einen Leerwert enthalten, das ist beispielsweise bei den FirstSpirit Text-Eingabekomponenten der Fall, liefert die <NOT_NULL/>-Prüfung ebenfalls TRUE zurück. Um auszuschließen, dass Leerwerte gespeichert werden, kann statt der Prüfung über das Tag <NOT_NULL/> das <PROPERTY/>-Tag in Verbindung mit dem Attribut empty verwendet werden. |
Gesonderte Bedingungen gelten auch für Eingabekomponenten, für die ein Vorgabewert innerhalb der Formular-Vorlage hinterlegt wurden (mehr zu diesem Thema). |
Beispiele
1) Anzeige eines Hinweises, solange eine Komponente nicht gefüllt wurde
Solange vom Redakteur kein Eintrag aus der Combobox ausgewählt wurde, hebt das FirstSpirit-Framework die Eingabekomponente im Arbeitsbereich farblich hervor (siehe Darstellung im Arbeitsbereich) und blendet einen Text-Hinweis ein.
Durch die SAVE-Restriktion wird außerdem das Speichern des Formulars unterbunden.
<RULES>
<RULE>
<WITH>
<NOT_NULL>
<PROPERTY source="st_combobox" name="VALUE"/>
</NOT_NULL>
</WITH>
<DO>
<VALIDATION scope="SAVE">
<PROPERTY source="st_combobox" name="VALID"/>
<MESSAGE lang="*" text=""Not Null" comparison"/>
<MESSAGE lang="DE" text=""Not Null"-Prüfung"/>
</VALIDATION>
</DO>
</RULE>
</RULES>