For Each Value…End-Anweisung (FPScript)

09.03.2021

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

For Each Row...End-Anweisung

For Each Element...End-Anweisung

For...End-Anweisung

While...End-Anweisung

Do...While-Anweisung

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren