Scripting Ausblenden Tabellenspalte oder Kopffeld
Siehe Scripting Tabellenspalte ausblenden in Abhängigkeit gefüllter Überschrift.
Siehe Scripting Formularobjekte adressieren.
Bei einem Projektbeispiel soll eine Kundenbestellnummer ("cust. order nr." im Englischen bzw. "Bestell-Nr. Kd." im Deutschen) ausgegeben werden.
Drei Zustände für Kundenbestellnummer
Diese Kundenbestellnummer kann drei verschiedene zu behandelnde Zustände annehmen pro Artikelvariante.
Es ist keine Kundenbestellnummer definiert pro Artikelvariante
Wenn keine Kundenbestellnummer definiert ist, soll die Kundenbestellnummer sowohl im Kopfbereich als auch in einer Verteilungstabelle der Artikelvariante nicht angezeigt werden. In der Verteilungstabelle soll die Überschrift und Spalte dann ausgeblendet (hidden) werden.
Es gibt lediglich eine Kundenbestellnummer pro Artikelvariante
Wenn es nur eine Kundenbestellnummer gibt, soll die Kundenbestellnummer im Kopfbereich angezeigt werden. Aber dann nicht in der Verteilungstabelle der Artikelvariante. Also in der Verteilungstabelle soll die Überschrift und Spalte ebenfalls ausgeblendet werden.
Es gibt mehrere Kundenbestellnummern pro Artikelvariante
Wenn es nur mehrere Kundenbestellnummern gibt, soll die Kundenbestellnummer nicht im Kopfbereich angezeigt werden, sondern in der Verteilungstabelle der Artikelvariante. Also in der Verteilungstabelle soll die Überschrift "Bestell-Nr. Kd." und Spalte angezeigt werden. Nur nicht gefüllte Werte werden ausgeblendet.
Formular und Scripting für Kopffeld Kundenbestellnummer
Beim Kopffeld der Kundenbestellnummer ist das Scripting recht einfach. Im Druckprogramm wird dieses Feld gecleart, wenn es entweder keine Kundenbestellnummer gibt oder wenn es mehrere Kundenbestellnummern gibt.
Im FormCalc-Script des Kopffeldes gibt es dann nur wenige Zeilen
if ($ == null) then $.presence = "hidden" endif
Formular und Scripting für Kundenbestellnummer in Verteilungstabelle
Hier gibt es 2 relevante Objekte. Einmal das Überschriftfeld "lbl_BSTKD" der Tabelle und dann die Spalte "Scr_BSTKD" des DATA-Knotens.
Von dem Knoten "Scr_BSTKD" geht es nun 3 Ebenen hoch --> DATA --> TB_VARIANT_VRT --> VariantenGroessen. Von "VariantenGroessen" geht es wieder runter --> Header --> Inv_BSTKD_NUR_1. Das Feld "Inv_BSTKD_NUR_1" wurde auf "Invisible" im Formular gesetzt und im Druckprogramm gefüllt mit "X", wenn es pro Artikelvariante nur 1 Kundenbestellnummer gibt.
//die Spalte wird ausgeblendet, wenn entweder der Wert nicht gefüllt ist oder wenn der Merker "Inv_BSTKD_NUR_1" (auf höherer Ebene) gesetzt ist, dass es nur eine Kundenbestellnummer gibt. if ($ == null | $.parent.parent.parent.Header.Inv_BSTKD_NUR_1.rawValue == "X") then $.presence = "hidden" endif