Mit Scripting Objekte ausblenden und einblenden

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Oft gibt es die Anforderung, dass eine gesamte Seite/Inhaltsbereich oder alle Objekte unter einem Teilformular unter einer bestimmten Bedingung ausgeblendet werden sollen. Diese Anforderung lässt sich sehr einfach mit Java-Script, bzw. FormCalc realisieren. In diesem Fall wird JavaScript verwendet.

Hier sollen alle Objekte unter dem Teilformular ORT_DATUM ausgeblendet werden, wenn im Feld DATE kein Inhalt ist. Neben zwei Variablen gibt es noch einen Text mit einem Komma, der zunächst auch erscheint, wenn die anderen beiden Variablen leer sind. Das ist unschön und soll verhindert werden.

Siehe auch Scripting Abfrage auf gefüllte Variable (null).

Vorbereiten Teilformular und Feld

Bedingung im Kontext auf Initialwert

In SAP ist der Defaultwert bei Zahlenfeldern 0 und bei CHAR-Feldern Spaces. Damit im Sripting wirklich auf NULL abgefragt werden kann, wird eine Bedingung in den Kontext hinzugefügt auf das eigene nicht initiale Feld (hier ein anderes Beispiel).

TeilformularAusbl2.jpg

Teilformular

Im Teilformular muss eingestellt sein, dass beim Nichtvorhandensein von Objekten unter dem Teilformular, auch nichts ausgegeben wird.

Der "Min-Zähler" steht defaultmäßig auf 1. Hier muss der Haken rausgenommen werden.

TeilformularAusbl1.jpg

Ausblenden ausgehend vom Teilformular

Scripting1.jpg


Scripting2.jpg


Hier klickt man zunächst auf das Teilformular und wählt dann unter "Anzeigen" den Eintrag "*initialize", damit beim Anzeigen des Formulars sofort die untergeordneten Objekte angezeigt, bzw. ausgeblendet werden.

Scripting3.jpg


Wenn das Feld DATE keinen Inhalt hat.

if (DATE.rawValue==null) //Vergleichsoperator ist ==


Dann werden alle Objekte unter dem Teilformular ausgeblendet, bzw. das gesamte Teilformular. Je nach Anforderung wird mit "hidden" oder "invisible" gearbeitet.

this.presence = "hidden"; //Java-Script; "hidden" blendet Objekt aus (ohne White Space)

oder

$.presence = "hidden" //Form-Calc

oder

this.presence = "invisible" //Java-Script; "invisible" blendet Objekt aus (verbleibt White Space)

oder

$.presence = "invisible"   //Form-Calc


Also Coding bei Java-Script

 if (DATE.rawValue==null)
 {
 this.presence = "hidden";
 }
 else
 {
 this.presence = "visible";
 }

oder Coding bei Form-Calc

 if (DATE==null)
 {
 $.presence = "hidden"
 }
 else
 {
 $.presence = "visible"
 }

Ausblenden ausgehend vom Feld im Teilformular

Wird das Ausblenden von einem Feld innerhalb eines Teilformulars gemacht, ist dies auch problemlos möglich. Mit "this.parent.presence" wird die Anzeige vom Teilformular gesteuert, in dem sich ein Feld befindet.

 this.parent.presence = "hidden"; //Java-Script

oder

 $.parent.presence = "hidden"     //Form-Calc

Seite/Inhaltsbereich ausblenden

Umfassender als Inhalte unter einem Teilformular auszublenden macht es manchmal Sinn auch eine ganze Seite/Inhaltsbereich auszublenden. Erstellt z. B. eine Versicherungsagentur einen Fragebogen, könnte man Anfangsfragen stellen, so wie "Haben Sie Kinder", und wenn dann über eine Checkbox oder Radiobutton verneint wird, dann werden ganze Seiten ausgeblendet, die sich auf die Beantwortung der Kinderfragen beziehen. So kann man den Fragebogen möglichst schlank halten, den ein Kunde zu beantworten hat.

Exakt so wie das Teilformular ausblendet wird, wird auch die Seite ausgeblendet. Da die Eingangsfragen meist jedoch auf einem anderem Inhaltsbereich abgefragt werden, muss der auszublendende Inhaltsbereich der Kinder mit angegeben werden.

PageKinder.presence = "hidden";  //JavaScript

bzw.

PageKinder.presence = "hidden"   //FormCalc

Objekte einblenden

In Bezug auf den Fragebogen ist es auch denkbar mit einer schlanken Version anzufangen und in Abhängigkeit von Checkboxen oder Radiobuttons Objekte einzublenden.

Der Befehl "visible" kann sowohl verwendet werden, wenn Objekte mit "hidden" ausgeblendet wurden oder mit "invisible".

objektname.presence = "visible";  //Java-Script

oder

objektname.presence = "visible"   //Form-Calc

Web-Links

Literatur