TurboPL Referenz

Choice Prozedur

Top  Previous  Next

Syntax

Choice(Selector: Integer; Expression1, Expression2, ..., ExpressionN): Variant
XWert(Selektor: Integer; Ausdruck1, Ausdruck2, ..., AusdruckN): Variant

Erklärung

Die Funktion liefert den Ausdruck an der von Selektor bestimmten Stelle zurück. Wenn Zahl nicht im Bereich von 1..N liegt, liefert die Funktion als Ergebnis immer den letzten Ausdruck AusdruckN. Je nach Typ des Ausdrucks liefert die Funktion entweder einen String oder einen Zahltyp zurück.

Erst wird der bummerische Ausdruck Selector berechnet (ergibt n).  Im Anschluß daran wird der n-te Ausdruck berechnet und als Ergebnis dieser Funktion zurückgeliefert.  Falls kein n-ter Ausdruck vorhanden ist, wird der letzte Ausdruck der Reihe berechnet. Es muss mindestens ein Ausdruck in der Liste vorhanden sein, sonst wird ein Übersetzungsfehler ausgelöst.

Achtung

In VDP 3 wurden xWert-Ausdrücke ohne Ausdruck in der Liste übersetzt. Das Ergebnis war aber undefiniert.

Beispiel

Choice(x, "eins", "zwei", "drei")        ->  "eins" für x = 1
                                                                       ->  "zwei" für x = 2
                                                                       ->  "drei" in allen anderen Fällen
Choice(5, "eins", "zwei", "drei")        ->  "drei"

Sehr praktisch ist diese Funktion beispielsweise bei der Auswertung von Auswahlfeldem.  Intern haben Auswahlfelder den Wert 0, wenn sie ganz leer sind, ansonsten eine 1, wenn der erste Wert gewählt ist, eine 2 beim zweiten Wert usw. Im folgenden Beispiel ist "Geschlecht" ein Auswahlfeld mit den Konstanten "weiblich", "männlich" und "unbekannt".

Choice(Geschlecht, "Sehr geehrte Frau " + $Name, "Sehr geehrter Herr " + $Name, "Sehr geehrte Damen und Herren")

Siehe auch

if/else/end