adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
Scripting (AdobeForms): Unterschied zwischen den Versionen
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 14: | Zeile 14: | ||
<syntaxhighlight lang="javaScript" line start="1"> | <syntaxhighlight lang="javaScript" line start="1"> | ||
if (xfa.record.gv_is_collective.value == "X") | if (xfa.record.gv_is_collective.value == "X") | ||
{ … } | { … } | ||
else | else | ||
{ … } | { … } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 35: | Zeile 32: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
<syntaxhighlight lang="javaScript" line start="1"> | |||
if (data.MasterPages.MP1.Info.Level.Mahns.rawValue == “1”) | if (data.MasterPages.MP1.Info.Level.Mahns.rawValue == “1”) | ||
{ … } | { … } | ||
else | else | ||
{ … } | { … } | ||
</syntaxhighlight> | |||
=== Relative Pfade === | === Relative Pfade === | ||
Zeile 51: | Zeile 47: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
<syntaxhighlight lang="javaScript" line start="1"> | |||
if (this.rawValue == null) | if (this.rawValue == null) | ||
{ | { | ||
this.presence = "hidden"; | |||
this.presence = | |||
} | } | ||
</syntaxhighlight> | |||
==== Objekt auf gleicher Ebene ==== | ==== Objekt auf gleicher Ebene ==== | ||
Zeile 65: | Zeile 60: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
<syntaxhighlight lang="javaScript" line start="1"> | |||
if (testvariable.rawValue == null) | if (testvariable.rawValue == null) | ||
{ … } | |||
</syntaxhighlight> | |||
==== Objekt auf unterer Ebene ==== | ==== Objekt auf unterer Ebene ==== | ||
Zeile 74: | Zeile 70: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
<syntaxhighlight lang="javaScript" line start="1"> | |||
if (this.testvariable.rawValue == null) | if (this.testvariable.rawValue == null) | ||
{ Ausblendung hier mit presence } | { Ausblendung hier mit presence } | ||
</syntaxhighlight> | |||
==== Objekt auf oberer Ebene ==== | ==== Objekt auf oberer Ebene ==== | ||
Zeile 85: | Zeile 83: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
'''Übergeordnetes Teilformular mit allen Objekten die darunter liegen ausblenden:''' | |||
this.parent.presence = | <syntaxhighlight lang="javaScript" line start="1"> | ||
this.parent.presence = "hidden"; | |||
</syntaxhighlight> | |||
'''Mehrstufiges hochspringen:''' | |||
<syntaxhighlight lang="javaScript" line start="1"> | |||
this.parent.parent.subform1…… | this.parent.parent.subform1…… | ||
</syntaxhighlight> | |||
'''Zwischen Hierarchieebenen navigieren:''' | |||
this.parent.subform2.textfield.rawValue = | <syntaxhighlight lang="javaScript" line start="1"> | ||
this.parent.subform2.textfield.rawValue = "text"; | |||
</syntaxhighlight> | |||
== xfa.resolveNode == | == xfa.resolveNode == | ||
Zeile 101: | Zeile 105: | ||
Beispiel mit JavaScript: | Beispiel mit JavaScript: | ||
<syntaxhighlight lang="javaScript" line start="1"> | |||
xfa.resolveNode(“testvarialbe”).rawValue = | xfa.resolveNode(“testvarialbe”).rawValue = "test"; | ||
</syntaxhighlight> | |||
== Quelle == | == Quelle == |
Aktuelle Version vom 12. August 2021, 14:26 Uhr
xfa.record
Wenn mit SFP ein Formular geöffnet wird, sind unter Reiter “Kontext” Objekte zu finden, die im Formular gebindet werden können, wenn diese nicht ausgeblendet sind.
Mit xfa.record kann im Formular direkt auf den Kontext des Objektes zurückgegriffen werden. So kann man prüfen, ob ein Feld z.B. true ist und dann weitere Schritte durchführen wie z.B. ein Teilformular aus- oder einzublenden.
HINWEIS: Der Wert lässt sich nur mit variablename.value ansprechen.
Beispiel mit JavaScript:
if (xfa.record.gv_is_collective.value == "X")
{ … }
else
{ … }
SOM-Ausdruck
Es besteht die Möglichkeit auf Objekte in Formular zuzugreifen, die nicht in gleichen Hierarchiebereich liegen. Der SOM-Ausdruck ist der hierarchische Pfad zum Objekt. Dieser kann absolut und relativ sein.
Absolute Pfade
Der absolute Pfad kann bequem über das Scripting bei den Events von einem Objekt kopiert werden.
Wie bei Dateipfade oder Pfade in HTML/CSS sind absolute Pfade darauf angewiesen, dass das Objekt sich genau an dieser Stelle befindet. Wenn die Hierarchie sehr tief ist, könnte es ein Argument sein releative Pfade zu nutzen.
Beispiel mit JavaScript:
if (data.MasterPages.MP1.Info.Level.Mahns.rawValue == “1”)
{ … }
else
{ … }
Relative Pfade
Objekt-Selbstreferenz
Wird das Objekt angesprochen, wo sich das Scripting befindet, so kann mit Javascript durch “this” oder mit FormCalc “$” das Objekt selbst angesprochen werden:
Beispiel mit JavaScript:
if (this.rawValue == null)
{
this.presence = "hidden";
}
Objekt auf gleicher Ebene
Sollte sich im Scripting auf ein Objekt bezogen werden, dass sich in der gleichen Hierarchieebene oder Teilformular befindet, so kann es direkt mit variablename.rawValue angesprochen werden:
Beispiel mit JavaScript:
if (testvariable.rawValue == null)
{ … }
Objekt auf unterer Ebene
Wenn ein Objekt z.B. in einem Teilformular angesprochen und das komplette Teilformular ausgeblendet werden soll:
Beispiel mit JavaScript:
if (this.testvariable.rawValue == null)
{ Ausblendung hier mit presence }
Objekt auf oberer Ebene
Es besteht die Möglichkeit ausgehend von einem Objekt z.B. Teilformular in das nächst übergeordnete Objekt zu springen und sogar anschließend sich auf ein Objekt zu beziehen, dass sich auf der Ebene befindet:
Beispiel mit JavaScript:
Übergeordnetes Teilformular mit allen Objekten die darunter liegen ausblenden:
this.parent.presence = "hidden";
Mehrstufiges hochspringen:
this.parent.parent.subform1……
Zwischen Hierarchieebenen navigieren:
this.parent.subform2.textfield.rawValue = "text";
xfa.resolveNode
Mit diesem Schlüsselbegriff wird nach einem Objekt selber gesucht. Das Objekt muss also eindeutig in der Hierarchie liegen und darf kein zweites Mal so in einer anderen Ebene benannt werden.
Da hier kein Pfad angegeben wird, ist eine Suche notwendig. Generell ist zu lesen, dass es an die Performance gehen kann. D.h. bei großen und komplexen Formularen so wenig wie möglich zu verwenden.
Beispiel mit JavaScript:
xfa.resolveNode(“testvarialbe”).rawValue = "test";
Quelle
Dieser Eintrag wurde erstellt als das Wiki noch nicht öffentlich war. Um ein besseres Verständnis davon zu bekommen, wurde folgendes mit eigenen Worten wiedergeben. Die inhaltlichen Infos stammen von: