Variablen und Arrays

In vielen Fällen kann es sich als sinnvoll erweisen, Zwischenergebnisse in sogenannten Variablen abzuspeichern und dieser Ergebnisse später in weiteren Rechenanweisungen zu nutzen. Zum Einstellen einer datumsabhängigen Sortierfolge lässt sich beispielsweise das folgende Feld vom Typ Berechnung nutzen.

Kopie_von_Handbuch_komplett_html_851dd722

Eine Formel mit mehrfachem Aufruf der gleichen Funktion.

Dies Formel nutzt die Funktion today an drei verschiedenen Stellen. Sinnvoller ist es deshalb, deren Ergebnis in einer Variablen abzulegen und es anschließend im folgenden Ausdruck zu nutzen.

Kopie_von_Handbuch_komplett_html_3f4d905b

Die Nutzung einer Variablen erspart einen mehrfachen Funktionsaufruf.

Darüber hinaus kann die Verwendung von Variablen zu übersichtlicheren Funktionen führen. Bis jetzt sind das Auftreten einstelliger Monats- und Tageszahlen in der Formel noch nicht berücksichtigt, was nicht erwünschte Sortierfolgen bewirken kann.

Kopie_von_Handbuch_komplett_html_774ce9e2

Die Nutzung von Variablen verhilft zu einem besserem Überblick.

Kopie_von_Handbuch_komplett_html_216b4ea2

Das Funktionsergebnis.

Ausdrücke können auch Ergebnisse in Form von Listen produzieren. Solche Elemente bezeichnet man in anderen Programmiersprachen als Felder. Zur Vermeidung von Verwechslungen zwischen Datenbank-Feldern bezeichnen wir diese Objekten im Folgenden als Arrays.

In der Tabelle Personen ist inzwischen ein Berechnungsfeld mit der Bezeichnung Name definiert.

Kopie_von_Handbuch_komplett_html_6f16f2fb

 

In Tabelle Bücher lässt sich damit ein Array mit einer Namensliste der Autoren eines Buches erzeugen.

Kopie_von_Handbuch_komplett_html_43e0dd8

 

Das Erscheinungsbild des Ergebnisses glänzt nicht gerade mit Übersichtlichkeit.

Kopie_von_Handbuch_komplett_html_c2ece5b9

 

Ziel ist deshalb, die Namen der Autoren mit Semikola voneinander zu trennen. Das Feld Name behalten wir so bei, es hilft insbesondere in Ansichten Platz zu sparen. Wir definieren deshalb ein zweites Feld Name_Autoren.

Kopie_von_Handbuch_komplett_html_21d8a776

 

Dieses Feld nutzen wir jetzt zur Generierung der Autorenliste. Die Kommata ersetzen wir durch Semikola, und anschließend die beiden Striche durch Kommata. Vorher müssen wir dabei den Array mit Hilfe der Funktion concat in eine Zeichenkette umwandeln.

Kopie_von_Handbuch_komplett_html_5f780920

 

Dies macht die bisher benutzte Darstellung der Autoren in Tabellenform im Prinzip obsolet und schafft freien Platz auf dem Formular.

Kopie_von_Handbuch_komplett_html_ecacfc17

Zu einer Zeichenkette zusammengefasste Array-Elemente.

Arrays lassen sich auch als Variablen deklarieren. Dies geschieht mit der Syntax

Let Temperaturen := [20, 15, 30, 32,18];

Zur Behandlung von Arrays und ihren Elemente stellt NX ebenfalls eine Reihe von Funktionen zu Verfügung.

Name

Ergebnis

Beispiel

avg(Array)

cnt(
Array) or count(Array)
first(
Array)

last(
Array)

min(
Array)

max(
Array)

sum(
Array)


Zusammenfassung von Array-Elementen zu einem Resultat.

 

chosen(Feld)

Sämtliche ausgewählte Werte einer Mehrfachauswahl

 

concat(Array)

Zeichenkette, bestehend aus den einzelnen Array-Elementen, jeweils durch Komma getrennt.

 

item(Array, Index)

Auswahl eines einzelnen Array-Elements.

(Index beginnt bei 0).

 

range(Beginn, Ende)

range(
Beginn, Ende, Schrittweite)

Array mit fortlaufenden Zahlen von Beginn bis Ende – 1. Die Angabe von Schrittweite ist optional. Ist Beginn größer als Ende, entsteht eine umgekehrter Reihenfolge.

 

rsort(Array)

Array, sortiert in absteigender Folge.

 

slice(Array, Beginn, Ende)

Subarray von Beginn bis Ende – 1.

 

sort(Array)

Array, sortiert in aufsteigender Folge.

 

split(Text, Trennzeichen)


Array, bestehend aus den Teilen von Text. Die Aufteilung erfolgt an den Positionen von Trennzeichen.

 

splitx(Text, Regulärer Ausdruck)

Array, bestehend aus den Teilen von Text. Die Aufteilung erfolgt entsprechend dem gewählten regulären Ausdruck.