🛠ALC-Designer: Leere Elemente im Formular ausblenden
Im Adobe LiveCycle Designer
(kurz ALC-Designer) ist es möglich mit Hilfe von Skripten Elemente und sogar ganze Gruppen von Elemente auszublenden. Sind diese in einem Teilformular eingebettet, welcher auf Textfluss steht, so wird der dadurch freiwerdende Platzdurch die nachfolgenden Elemente aufgefüllt. Es schiebt sich also alles nach oben.
Formcalc-Code
Als Sprache wird FormCalc
gewählt. Die Ausführung immer für Client und Server
einstellen.
Element ausblenden, wenn leer (HasValue)
- Das auszublendende Element im ALC-Designer
- Als Ereignis entweder
form:ready
auswählen oderlayout:ready
(meist auf der Masterseite) - Folgenden Code eingeben:
if (HasValue($) == 0) then
$.presence = "hidden"
endif
Das funktioniert nur, wenn auch im Kontext eine Bedingung hinterlegt ist. Siehe hierzu Kontext Einstellung
- Speichern und Testen
Element ausblenden, wenn leer (Inhalt)
Das auszublendende Element im ALC-Designer
Als Ereignis entweder
form:ready
auswählen oderlayout:ready
(meist auf der Masterseite)Folgenden Code eingeben
- für nummerische Felder:
if ($.rawValue == "0") then
$.presence = "hidden"
endif- für alphanummerische Felder:
if ($.rawValue == "") then
$.presence = "hidden"
endifSpeichern und Testen
Das funktioniert nicht immer perfekt, weswegen die Variante mit HasValue vorzuziehen ist.
Teilformular mit mehreren Elementen ausblenden
Hiermit kann ein Teilformular mit mehreren Elementen darin ausgeblendet werden. D.h. alle Elemente sind ausgeblendet.
- Das auszublendende Element im ALC-Designer
- Als Ereignis entweder
form:ready
auswählen oderlayout:ready
(meist auf der Masterseite) - Folgenden Code eingeben:
if (HasValue($) == 0) then
$.parent.presence = "hidden"
endif
Das Teilformular muss einen Namen haben, sonst könnte das Coding mit .parent
auf eine noch höhere Ebene druchschlüpfen und weit mehr ausblenden als gewollt.
Falsch:
Richtig
JavaScript-Code
Element ausblenden
if (this.isNull) {
this.presence = "hidden";
}
Teilformular mit mehreren Elementen ausblenden
Hiermit kann ein Teilformular mit mehreren Elementen darin ausgeblendet werden. D.h. alle Elemente sind ausgeblendet.
- Vom Element zum darüberliegenden Teilformular (Coding liegt am Element)
if (this.isNull) {
this.parent.presence = "hidden";
}
oder vom Teilformular auf das darunterliegende Element (Coding liegt am Teilformular)
if (this.ELEMENT.isNull) {
this.presence = "hidden";
}
Das Teilformular muss einen Namen haben, sonst könnte das Coding mit .parent
auf eine noch höhere Ebene druchschlüpfen und weit mehr ausblenden als gewollt.
Falsch:
Richtig
Kontext Einstellung
Wird das ausblenden von leeren Elementen mit der Variante mit HasValue
Unterschied zwischen invisible und hidden
Zusammenrücken
Besonderheiten in der Masterseite
Letztes Update: 10.03.2022