Saltar navegación

Documentación de FlexPro 2025

Para cada valor...Fin

Repite una serie de instrucciones y recorre todos los valores de un conjunto de datos.

Sintaxis

For Each Value Y[[, X], Z] In ConjuntoDeDatos Do

   [Instrucciones]

End

La sintaxis de la instrucción For Each Value...End consta de las siguientes partes:

Parte

Descripción

Y, X, Z

Variables que registran los valores del conjunto de datos. Puede omitir la variable desde la derecha. No es necesario declarar la variable con Dim.

ConjuntoDeDatos

El conjunto de datos cuyos valores deben extraerse. El conjunto de datos no debe ser un valor escalar.

Instrucciones

Una o varias instrucciones que se ejecutan para cada valor del ConjuntoDeDatos.

Notas

El bloque For Each Value se ejecuta si hay al menos un valor en el ConjuntoDeDatos. El bucle se repite para todos los valores del ConjuntoDeDatos, y X, Y y Z toman los valores del conjunto de datos. A continuación, el programa sale del bucle y continúa la ejecución con la instrucción que sigue a la instrucción End.

En un conjunto de datos bidimensional, sus columnas se recorren una tras otra. Si se utiliza una variable para un componente que no existe en el conjunto de datos, recibe valores enteros ascendentes de 64 bits que empiezan por 0.

Si un componente recorrido de un ConjuntoDeDatos es un valor, su unidad se transfiere a la variable de ejecución correspondiente.

Nota   En la medida de lo posible, evite los bucles sobre valores individuales de un conjunto de datos. FPScript le ofrece la posibilidad de calcular conjuntos de datos completos en una sola instrucción. Por lo general, los bucles pueden sustituirse por funciones de aislamiento de eventos junto con el operador de índice. El bucle For Each Value...End es el bucle FPScript más rápido.

Disponibilidad

FlexPro View, Basic, Professional, Developer Suite

Ejemplo

El siguiente ejemplo recoge en una señal todos los valores mayores o iguales que 5.0:

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)

El ejemplo anterior puede escribirse de forma mucho más sencilla y eficiente utilizando el aislamiento de eventos:

Arguments Signal

Signal[ValuesAboveLevel(Signal, 5)]

 

Véase también

Instrucción For Each Column...End

Instrucción For Each Row...End

Instrucción For Each Element...End

Instrucción For...End

Instrucción While...End

Instrucción Do...While