For Each Value…End-Anweisung (FPScript)
Wiederholt eine Reihe von Anweisungen und traversiert dabei alle Werte eines Datensatzes.
Syntax
For Each Value Y[[, X], Z] In Datensatz Do
[Anweisungen]
End
Die Syntax der For Each Value...End-Anweisung besteht aus folgenden Teilen:
Teil |
Beschreibung |
---|---|
Y, X, Z |
Variable, die die Werte des Datensatzes aufnehmen. Sie können die Variable von rechts her weglassen. Die Variable müssen Sie nicht mit Dim deklarieren. |
Datensatz |
Der Datensatz, dessen Werte entnommen werden sollen. Der Datensatz darf kein Einzelwert sein. |
Anweisungen |
Eine oder mehrere Anweisungen, die für jeden Wert im Datensatz ausgeführt werden. |
Anmerkungen
Der For Each Value-Block wird ausgeführt, wenn sich mindestens ein Wert in Datensatz befindet. Die Schleife wird für alle Werte in Datensatz wiederholt wobei X, Y und Z die Werte aus dem Datensatz aufnehmen. Dann verlässt das Programm die Schleife und setzt die Ausführung mit der Anweisung fort, die auf die End-Anweisung folgt.
Bei einem zweidimensionalen Datensatz werden dessen Spalten nacheinander traversiert. Wird eine Variable für eine Komponente verwendet, die im Datensatz nicht vorhanden ist, dann erhält diese aufsteigende 64-Bit Ganzzahl-Werte, die mit 0 beginnen.
Ist eine traversierte Komponente von Datensatz eine Größe, dann wird deren Einheit in die entsprechende Laufvariable übernommen.
Hinweis Sie sollten Schleifen über einzelne Werte eines Datensatzes nach Möglichkeit vermeiden. FPScript bietet Ihnen die Möglichkeit, komplette Datensätze in einer einzigen Anweisung zu verrechnen. Schleifen lassen sich meistens durch Funktionen zur Ereignisisolation in Verbindung mit dem Index-Operator ersetzen. Die For Each Value...End-Schleife ist die schnellste FPScript-Schleife.
Verfügbarkeit
FlexPro View, Basic, Professional, Developer Suite
Beispiel
Das folgende Beispiel sammelt alle Werte in einem Signal auf, die größer-gleich 5.0 sind:
Arguments Signal
Dim SY, SX
For Each Value Y, X In Signal Do
If Y >= 5 Then
SY := Y
SX := X
End
End
Signal(SY, SX)
Mittels Ereignisisolation lässt sich das obige Beispiel wesentlich einfacher und effizienter schreiben:
Arguments Signal
Signal[ValuesAboveLevel(Signal, 5)]
Siehe auch
For Each Column...End-Anweisung