Scripting String-Operationen
Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.
Oft wird man im Scripting-Code Text-Strings bearbeiten.
Anlage von Strings (nur JavaScript)
Ein String wird mit „new String“ angelegt, z. B.
oString = new String("Teststring");
Besondere Zeichen in Strings
Gegenüberstellung Zusammenfügen von Stringteilen
JavaScript (+)
this.rawValue = COLOR_CODE.rawValue + " " + COLOR.rawValue;
FormCalc (Concat)
$ = Concat(COLOR_CODE.rawValue, " ", COLOR.rawValue)
oder wenn man z. B. In Abhängigkeit von einem Wert „KBETR“ eine Einrückung vornehmen will und den Text fett markieren möchte.
if (Einzelpreis.KBETR.rawValue == 0 | Einzelpreis.KBETR.rawValue == null) then $.font.weight = "bold" $.rawValue = Concat(" ", $.rawValue) endif
JavaScript String-Operationen
Dokumentationen aller JavaScript String-Operationen in Selfhtml.
Zusammenfügen Stringteile (+)
Um einen String, bzw. Variablen zusammenzufügen, kann man in JavaScript einfach das "+" verwenden.
this.rawValue = "Erster Teil" + "Zweiter Teil"; //resultiert zu „Erster TeilZweiter Teil“
length
- Mit dem Operator lenght kann die Länge eines Strings bestimmt werden.
sVariable = "Testfall"; iZeichenzahl = sVariable.length; // liefert 8
oder
oString = new String("Teststring"); iLaenge = oString.length; //Länge des Strings = 10.
indexOf
- Mit dem Operator charAt kann die Position einer Zeichenketten gefunden werden.
oString = new String("Teststring"); iPosition = oString.indexOf"sts"); //liefert 2
substr
- Mit dem Operator substr wird ein Teilstring ab einer bestimmten Position zurückgeliefert.
sVariable = "Testfall"; sVariable.substr(3, 2); // liefert tf
oder
oString = new String("Teststring"); iTeilstring = oString.substr(5, 3); //liefert "tri"
charAt
- Mit dem Operator charAt kann der Inhalt eines Zeichen an einer bestimmten Position einer Zeichenketten gefunden werden. oString = new String("Teststring");
sVariable = "Testfall"; sVariable.charAt(4); // liefert f
parseFloat
Mit der globalen Funktion "parseFloat" wird eine Zeichenkette als auf eine Fließkommazahl oder Integerzahl geprüft damit die Addition explizit Zahlen addiert und nicht Zeichenketten aneinander fügt.
Als Dezimalzeichen im String wird ein Punkt erwartet und kein Komma. In SAP werden Mengen und Werte meist als Fließkomma geliefert, mit dem Punkt als Dezimalzeichen und daher ist diese Funktion „parseFloat“ für die Behandlung von Zahlen im LiveCycle Designer häufig nützlich.
parseFloat ( „3,40“ )
Es würde als „3“ zurückgegeben, da das Komma nicht als Teil der Zahl erkannt wird.
parseFloat ( „3.40“ )
Es würde als „3.4“ zurückgegeben, da der Punkt als Dezimaltrennzeichen der Zahl erkannt wird.
parseFloat ( „-18.50 Meter“ )
wird als Wert „-18.50“ zurückgegeben, da auch das Minuszeichen als Teil der Zahl erkannt wird.
parseFloat ( „0000050000 Kunden“ )
Wird als 50000 zurückgegeben. Führende Nullen werden gelöscht.
parseFloat ( „Kunde ist 50000“ )
Wird nicht gefunden und es kommt „NaN“ zurück, da keine führende Zahl mitgegeben wurde.
Siehe https://www.mediaevent.de/javascript/string-zu-zahl.html, wo diese Funktion einfach erklärt wird und sie auch auf der Homepage getestet werden kann.
parseInt
Die Funktion „parseInt“ gibt die erste ganzzahlige Zahl in einem String zurück.
Wenn an erster Stelle in einem String keine Zahl gefunden wird, wird der Wert „NaN“ zurückgeliefert.
var lv_zahl = 0; lv_zahl = parseInt( x, [radix] )
Zum Beispiel
ParseInt( „5facher Looping“ )
Gibt den Wert „5“ zurück.
ParseInt( „3,4 cm“ )
Gibt den Wert „3“ zurück.
ParseInt( „3.4 cm“ )
Gibt den Wert „3.4“ zurück, da „parseFloat“ verwendet werden muss, um eine Fließkommazahl zu verstehen.
x ist die Zahl, bzw. Variable und „radix“ ist default auf 10 = Dezimalsystem eingestellt. Wenn eine Zahl auch als „0...“ kommen kann, dann wird „radix“ auf 16 (Hexadezimal) gestellt. Das ist in aller Regel nicht richtig. Dann kann man „radix“ auf 10 stellen.
Siehe https://www.mediaevent.de/javascript/string-zu-zahl.html, wo man auf der Homepage live diese Funktion ausprobieren kann.
FormCalc String-Operationen
this.rawValue = "Erster Teil" + "Zweiter Teil" //resultiert zu „Erster TeilZweiter Teil“
Siehe Unicode-Zeichen in Formularen.
Zusammenfügen Stringgteile (Concat)
Stringbestandteile werden zusammengefügt. Vergleichbar in ABAP dem Befehl "concatenate" bzw. "&&".
Diese Funktion kann in einem Formular sehr praktisch sein, da so z. B. in einem Feld mehrere andere Felder zusammengefügt werden können. Die Bezugsfelder können im Formular sein und können ausgeblendet werden; aber nicht inaktiv, da dann die Werte nicht mehr in die Felder gefüllt werden.
$.rawValue = concat(INV_SEASON.rawValue, "/", INV_FSH_COLLECTION.rawValue)
oder kürzer
$ = concat(INV_SEASON, "/", INV_FSH_COLLECTION)
Len
sVariable = "Testfall" iZeichenzahl = Len(sVariable) // liefert 8
Substr
sVariable = "Testfall" Substr(sVariable, 3 2) // liefert tf
At
sVariable = "Testfall" At(sVariable, "fa") // liefert 4 At(sVariable, "beisp" // liefert 0 (kein Ergebnis)
Lower
sVariable = "MEINE_EMAIL@PROVIDER.DE" LOWER( sVariable ) // liefert meine_email@provider.de Anwendungs-Beispiel: $.rawValue = LOWER( $.rawValue )
Web-Links
- https://www.mediaevent.de/javascript/string-zu-zahl.html.
- Alle String-Operationen von JavaScript von Selfhtml
- SELFHTML: Stringoperationen mit JavaScript
- FormCalc-Referenz für Adobe Designer
Literatur
- Adobe LiveCycle® Designer ES2 und SAP Interactive Forms: Scripting für Nicht-Programmierer, S. 20ff., von Ulrich Bähr