Zum Hauptinhalt springen

🛠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)

  1. Das auszublendende Element im ALC-Designer
  2. Als Ereignis entweder form:ready auswählen oder layout:ready (meist auf der Masterseite)
  3. Folgenden Code eingeben:
if (HasValue($) == 0) then
$.presence = "hidden"
endif
tip

Das funktioniert nur, wenn auch im Kontext eine Bedingung hinterlegt ist. Siehe hierzu Kontext Einstellung

  1. Speichern und Testen

Element ausblenden, wenn leer (Inhalt)

  1. Das auszublendende Element im ALC-Designer

  2. Als Ereignis entweder form:ready auswählen oder layout:ready (meist auf der Masterseite)

  3. Folgenden Code eingeben

    1. für nummerische Felder:
    if ($.rawValue == "0") then
    $.presence = "hidden"
    endif
    1. für alphanummerische Felder:
    if ($.rawValue == "") then
    $.presence = "hidden"
    endif
  4. Speichern und Testen

tip

Das funktioniert nicht immer perfekt, weswegen die Variante mit HasValue vorzuziehen ist.

Teilformular mit mehreren Elementen ausblenden

info

Hiermit kann ein Teilformular mit mehreren Elementen darin ausgeblendet werden. D.h. alle Elemente sind ausgeblendet.

  1. Das auszublendende Element im ALC-Designer
  2. Als Ereignis entweder form:ready auswählen oder layout:ready (meist auf der Masterseite)
  3. Folgenden Code eingeben:
if (HasValue($) == 0) then
$.parent.presence = "hidden"
endif
Achtung

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

info

Hiermit kann ein Teilformular mit mehreren Elementen darin ausgeblendet werden. D.h. alle Elemente sind ausgeblendet.

  1. 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";
}
Achtung

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