Scripting Variablen
Wie bei jeder Programmsprache sind auch bei JavaScript und FormCalc Variablen elemente Bestandteile der Programmsprache.
Siehe Scripting Formularobjekte adressieren.
Namensvergabe
Buchstaben, Ziffern und Unterstrich
- Der Variablenname muß mit einem Buchstaben beginnen
- Nach dem ersten Buchstaben dürfen nur Buchstaben, Ziffern oder ein Unterstrich folgen.
Reservierte Namen
- Der Variablenname darf nicht reserviert sein von JavaScript und FormCalc, wie z. B. "boolean", "char" oder "finally" und dürfenf dann nicht als Variablenname verwendet werden.
Umlaute und verbotene Zeichen
- Umlaute, ß und sonstige Sonderzeichen sind nicht nicht erlaubt. Daher sollten auch bei der Benennung von Teilformularen, Textfeldern etc.im Designer auf diese Zeichen verzichtet werden, um diese Objekte per Scripting ansprechen zu können
Groß- und Kleinschreibung
JavaScript und FormCalc unterscheiden im Gegensatz zu ABAP zwischen Groß-/Kleinschreibung.
Das Coding
lv_variable == 2;
ist etwas anderes als
LV_VARIABLE == 2;
Höckerschreibweise / CamelCase
Vorteilhaft für die Lesbarkeit ist es bei Variablen die Höckerschreibweise (englisch "CamelCase" oder "CamelBack") zu verwenden.
var iZahl = 12; //Java-Script
oder
var iZahl = 12 //Form-Calc
Semantische Bedeutung
In JavaScript und FormCalc werden vom Entwickler keine Datentypen explizit zugewiesen. Es empfiehlt sich jedoch durch den ersten Buchstaben des Variablennamens der Variable eine semantische Bedeutung zu geben. i = Ganzzahlen (Zahlen ohne Komma) f = Floatingpoint (Zahlen mit Komma) s = String (Zeichenkette) b = Boolean (wahr/falsch) o = Objekte array = Mehrere Felder
Interner Datentyp
Aber auch wenn der Entwickler keinen Datentyp vorgibt, wird intern von JavaScript für eine Variable ein Datentyp verwendet. Es hilft der Variable diesen Datentyp voran zu stellen. Während der Laufzeit kann sich auch der Datentyp ändern. Aber das ist in der Praxis selten.
- iVariable = integer (sowohl Zahlen ohne Komma als auch mit Komma)
- sVariable = String (Zeichenkette)
- bVariable (wahr/falsch)
- oVariable (Objekt)
- arrayVariable (Array)
Deklaration von Variablen
- Variablen müssen in JavaScript im Gegensatz zu ABAP nicht zwingend deklariert werden. Wenn sie nicht deklariert werden, dann legt sie JavaScript im Hintergrund selber an. Auch in JavaScript sollten die Variablen angelegt werden, damit der Code verständlicher ist.
- In FormCalc müssen Variablen zwingend angelegt werden.
- Bei der Variablendeklaration kann auch gleich ein Wert zugewiesen werden.
var iZahl = 42;
Variablentypen
Textvariable
var Kundenname = "Müller"; //JavaScript var Kundenname = "Müller" //FormCalc
Zahlenvarable
var Zahl = 42; //JavaScript var Zahl = 42 //FormCalc
Stringvariablen
Stringvariablen beherrschen mehr Textoperationen als normale Textariablen. Sie werden nicht mit "var" definiert, sondern
Wohnort = new String(); //JavaScript
Nur JavaScript macht eine Unterscheidung zwischen Strings und Textvariablen.
Arrays (JavaScript)
Arrays können nur in JavaScript angelegt werden und nicht in FormCalc. Arrays können gleich eine Reihe von Werten aufnehmen. Sie werden nicht mit "var" definiert, sondern
arrayNamen = new Array(); //JavaScript
Die einzelnen Variablen eines Arrays werden dann angesprochen durch
arrayNamen(1) arrayNamen(2) ...
Zugriff auf Tabellen
FormCalc kann sehr elegant auf Tabellen zugreifen, die im Formular als Tabelle oder im wiederholenden Teilformular angelegt worden sind.
var iAnzahl iAnzahl = Count(Tabellenname[*]) //Anzahl der Elemente in Tabelle
var iSumme iSumme = Sum(Tabellenname[*]) //Summe in Tabelle
Globale Variablen
Wertzuweisung
Eine extrem häufige Verwendung von Variablen ist es Werte zuzuweisen. Wird das aktuelle Formularobjekt (z. B. Textfeld) angesprochen, in dem das Scripting eingebunden ist, muss das Formularobjekt nicht angesprochen werden. Dies macht das Coding kürzer und besser lesbar und das Formularobjekt kann hinterher auch umbenannt werden und das Coding bleibt weiterhin gültig.
Siehe Scripting Formularobjekte adressieren.
JavaScript (rawValue)
Der Wert des aktuellen Feldes wird mit "this.rawValue" angesprochen.
Bei einem Textfeld
this.rawValue = "Dies ist ein Text";
Bei einem Zahlenfeld
this.rawValue = 42;
FormCalc ($)
Der Wert des aktuellen Feldes wird mit "$.rawValue" oder noch kürzer mit "$" angesprochen.
$ = "Dies ist ein Text" $ = 42
oder
$.rawValue = "Dies ist ein Text" $.rawValue = 42