Mehrdimensionale Rechenvariablen
Ab der Version 5.3 steht ein neuer Variablentyp bei Formularen zur Verfügung: (maximal) dreidimensionale Arrays(Matrix, Felder).
Diese definieren Sie unter Variablen-Freie mehrdimensionale Rechenvariablen [IM]. Sie haben die Möglichkeit bis zu drei Dimensionen,
bspw. Länge, Breite, Höhe zu definieren.
Pro Dimension können Sie maximal 99 Elemente nutzen. Ein solche Individuelle Matrix(IM) kann also maximal 99*99*99=970299 Elemente beinhalten.
Sie müssen nicht alle Dimensionen einer solchen Matrix nutzen, Sie können bspw. die erste Dimension mit 10, die zweite mit 3 und die dritte überhaupt nicht nutzen. Mit der Spalte Initialisierung setzen Sie alle Elemente dieses Arrays auf den gleichen Wert. Auf die Elemente können Sie zugreifen mit:
-IM1[1!2!3] oder IM1_1_2_3: 2. Element!3. Element!4. Element
Auf das erste Element einer Spalte greifen Sie jeweils mit der Nummer 0 zu.
In der ersten Schreibweise können Sie auch Rechenvariablen nutzen:
IV1=1
IV2=2
IV3=3
IM1[IV1!IV2!IV3]
Auf diese Variabeln können Sie mit den Funktionen zugreifen:
-INIT_IM
INIT_IM[Matrixnummer!von D1!bis D1!von D2!bis D2!von D3!bis D3]=WERT
Beispiel:
-Definition von IM1: 13/10/0
Das bedeutet, daß das Array aus 10 Zeilen a 13 Spalten besteht, also 130 Variblen(IV’s) entspricht.
-Initialisierung auf 0:
INIT_IM[1!0!12!0!9!0!0]=0
-> In dem Array 1 werden die Spalten 1 bis 13(über 0 bis 12) der Zeilen 1 bis 10 (über 0 bis 9) auf den Wert 0 gesetzt.
-SUMME_IM
SUMME_IM[Matrixnummer!von D1!bis D1!von D2!bis D2!von D3!bis D3]
Beispiel:
-Definition von IM1: 13/10/0
Das bedeutet, daß das Array aus 10 Zeilen a 13 Spalten besteht, also 130 Variblen(IV’s) entspricht.
-Ermittlung der Summe aller Spalten der 2. Zeile.
Alle Spalten: 13 Spalten, also 0 bis 12
2. Zeile=1 (Nummerierung fängt mit 0 an)
IV1=SUMME_IM[1!0!12!1!1!0!0]
-Schleifen:
In Rechen- und Textzuweisungen können(ab 5.3!) WHILE-Schleifen benutzt werden.
Das Schlüsselwort WHILE in einer Zuweisungsspalte startet die Schleife.
In der Selektionsspalte dieser Zeile geben Sie das Abbruchkriterium an.
Mit WHILE_END als Zuweisung wird die Schleife beendet. WHILE-Schleifen können auch verschachtelt werden.
Beispiel:
(Fakultät)
n!=n*(n-1)*(n-2)*…*2*1
Von IV1 soll die Fakultät berechnet werden: IV2=IV1!
Selektion Zuweisung
IV2=IV1
IV1>1 WHILE
IV1=IV1-1
IV2=IV2*IV1
WHILE_END
Verwendung von WHILE-Schleifen in Arrays:
Die While-Schleifen können unter anderem dazu verwendet werden um mehrdimensionale Felder zu füllen.
Beispiel:
Pro Artikel soll der Umsatz pro Periode im aktuellen Zeitraum und die Summe der perioden 1-12 dargestellt werden. Man kann dies mit 13 Rechenvariablen oder mit einer eindimensionalen Matrix mit 13 Elementen realisieren.
Definition des Arrays: 13/0/0
Füllen des Arrays:
IV1=0
IV1<12 WHILE
IV2=IV1+1
IM1[IV1!0!0]=STATARTUM[2!0!IV2!IV2]
IV1=IV1+1
WHILE_END
IM1[12!0!0]=SUMME_IM[1!0!11!0!0!0!0]
In STATARTUM wird über IV2 auf die Perioden referenziert. Die Perioden werden von 1 bis 12 angesprochen, IV1 beginnt mit 0, IV2 ist also eine um 1 als IV1 größere Hilfsvariable zum Referenzieren auf die Perioden. In der 13.Spalte wird die Summe der 12 Perioden ermittelt.