Ejecuta una serie de comandos de ACLScript de forma reiterada en un registro mientras una condición especificada se evalúa como verdadera.
Nota
El comando LOOP debe estar encerrado dentro del comando GROUP.
Sintaxis
LOOP WHILE prueba comando <...n> END
Parámetros
Nombre | Descripción |
---|---|
WHILE prueba |
La prueba que se debe evaluar como verdadera para que se ejecuten los comandos incluidos dentro del comando LOOP. Si la prueba se evalúa como verdadera, los comandos se ejecutan repetidamente hasta que la prueba se evalúe como falsa. |
comando <...n> |
Uno o más comandos que se deben ejecutar. Puede ingresar varios comandos dentro del comando LOOP. Cada comando debe comenzar en una línea nueva. |
END | El final del comando LOOP. |
Ejemplos
División de un campo delimitado por comas
Usted tiene una tabla que contiene datos de facturas y necesita aislar información específica para los importes de facturas por departamento. Una factura puede estar relacionada con más de un departamento y los códigos de los departamentos se almacenan en un formato delimitado por comas en la tabla.
Para extraer los importes de las facturas por departamento, usted:
- Utiliza un comando GROUP para procesar la tabla registro por registro.
- Calcula la cantidad de departamentos (n) asociados con cada registro.
- Utiliza el comando LOOP para repetir n veces en el registro a fin de extraer los datos de cada departamento asociado con el registro.
COMMENT use GROUP para contar las comas de cada campo de código de departamento como una manera de identificar la cantidad de departamentos asociados con el registro Use "LOOP" en cada registro para recuperar cada código del campo y extraer cada código a su propio registro END GROUP v_recuento_departamentos = OCCURS(Código_departamento;',') v_recuento = 0 LOOP WHILE v_recuento <= v_recuento_departamentos v_dept = SPLIT(Código_departamento; ','; (v_recuento + 1)) EXTRACT FIELDS Número_factura; Importe_factura; v_dept AS "Departamento" TO result1 v_recuento = v_recuento + 1 END END
Observaciones
Consejo
Si desea ver un tutorial detallado que cubre los comandos LOOP y GROUP, consulte Agrupación y bucles.
Cuándo usar LOOP
Los bucles suelen utilizarse cuando un registro contiene segmentos repetidos de datos que se desea procesar.
Cómo funciona
Cada comando LOOP debe especificar una condición WHILE para probar y se debe cerrar con un enunciado END. Los comandos entre LOOP y END se ejecutan reiteradamente para el registro actual siempre que el resultado de la prueba especificada sea verdadero.
Si el resultado de la prueba es falso inicialmente, los comandos no se ejecutarán.
Evitar bucles infinitos
Para evitar crear un bucle infinito, asegúrese de que la prueba especificada eventualmente dé un resultado falso. También puede utilizar el comando SET LOOP para evitar un bucle infinito.