Exportar (0) Imprimir
Expandir todo

Ciclos For/Next (sintaxis Basic)

Los ciclos For/Next le permiten evaluar una secuencia de enunciados varias veces. Esto es diferente a los enunciados If y Select, donde el programa pasa por cada enunciado al menos una vez durante la evaluación de la fórmula.

Los ciclos For/Next funcionan mejor cuando conoce de antemano la cantidad de veces que es necesario evaluar un enunciado.

Sintaxis del ciclo For

Ejemplo 1

Suponga que desea invertir la cadena {Cliente.Nombre del cliente}. Por ejemplo, la compañía "City Cyclists" pasa a ser "stsilcyC ytiC".

Rem Reverse a string version 1
formula = ""
Dim strLen
strLen = Len ({Customer.Customer Name})
Dim i
For i = 1 To strLen
   Dim charPos
   charPos = strLen - i + 1
   formula = formula & _
             Mid({Customer.Customer Name}, charPos, 1)
Next i

Examine cómo funciona esta fórmula asumiendo que el valor actual del campo {Customer.Customer Name} es "Clean Air". La variable strLen se asigna como longitud de “Clean Air”, es decir, 9. En este momento también se escribe para que sea una variable numérica. La variable i se conoce como variable de contador ya que su valor cambia con cada iteración del ciclo For. Es decir, se usa para contar las iteraciones del ciclo. El ciclo For se repetirá 9 veces; la primera vez, i es 1, luego, i es 2, después, i es 3 y así sucesivamente hasta que, finalmente, i es 9. Durante la primera repetición, el noveno carácter de {Customer.Customer Name} se anexa a la fórmula de variable especial vacía. Como resultado la fórmula es igual a "r" después de la primera iteración. Durante la segunda iteración, el octavo carácter de {Customer.Customer Name}se anexa a la fórmula y de este modo la fórmula es igual a "ri". Esto continúa hasta después de la novena iteración, la fórmula es igual a "riA naelC", que es la cadena invertida.

Ejemplo 2

He aquí una versión más simple de la fórmula anterior, que usa una cláusula Step con un valor negativo de Step igual a -1. En el ejemplo de “Clean Air”, i es 9 en la primera repetición, 8 en la segunda, 7 en la tercera y así sucesivamente hasta la repetición final, en la que es 1.

Rem Reverse a string version 2
formula = ""
Dim i
For i = Len ({Customer.Customer Name}) To 1 Step -1
   formula = formula + _
             Mid({Customer.Customer Name}, i, 1)
Next i

Ejemplo 3

La versión más simple es usar la función incorporada StrReverse:

Rem Reverse a string version 3
formula = StrReverse ({Customer.Customer Name})

Las funciones String integradas de Crystal Reports pueden administrar muchas de las aplicaciones de procesamiento de cadenas que tradicionalmente serían administradas mediante un ciclo For/Next o algún otro tipo de ciclo. Sin embargo, los ciclos For/Next proporcionan la mayor flexibilidad y potencia en el procesamiento de cadenas y matrices. Esto puede ser vital si las funciones incorporadas no cubren la aplicación que le interesa.

Vea también

Ejemplo de ciclo For/Next (sintaxis Basic) | Salida de los ciclos For/Next (sintaxis Basic)

Mostrar:
© 2014 Microsoft