Scripting String-Operationen

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

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)

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 auch Unicode-Zeichen in Formularen.

Zusammenfügen Stringgteile (Concat)

//Stringbestandteile werden zusammengefügt (in ABAP concatenate)
$ = Concat(BUKRS.$, "/", EBELN.$, "/", EBELP.$  )

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)

Web-Links

Literatur