Scripting Ausblenden Tabellenspalte oder Kopffeld

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

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.

ScriptingParent5.JPG

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.

ScriptingParent3.JPG

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.

ScriptingParent4.JPG

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.

ScriptingParent7.JPG


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

ScriptingParent6.JPG

Hier gibt es 2 relevante Objekte. Einmal das Überschriftfeld "lbl_BSTKD" der Tabelle und dann die Spalte "Scr_BSTKD" des DATA-Knotens.


ScriptingParent8.JPG

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