Tipos de datos de rango (sintaxis Basic)
Los rangos están diseñados para manejar un espectro de valores. Los tipos de rangos están disponibles para todos los tipos simples, excepto booleanos. Es decir: rango numérico, rango monetario, rango de cadenas, rango de fechas, rango de horas y rango de fechahora. Es posible generar rangos usando las palabras clave To, _To, To_, _To_, Is >, Is >=, Is < e Is <=. En general, To se usa para rangos con 2 puntos finales, mientras que Is se usa para rangos abiertos (un solo punto final). Los caracteres de subrayado se usan para indicar si los puntos finales están o no en el rango.
Ejemplos de valores de rango numérico
Rango numérico del 2 al 5, incluidos 2 y 5
2 To 5
Rango numérico del 2 al 5, sin incluir el 2, pero 5 inclusive
2 _To 5
Todos los números menores o iguales que 5
Is <= 5
Todos los números menores que 5
Is < 5
Ejemplos de valores de rango de fechahora
#Jan 5, 1999# To #Dec 12, 2000#
Is >= #Jan 1, 2000#
Rangos en fórmulas
Existen 27 funciones en Crystal Reports que especifican rangos de fecha. Por ejemplo, la función LastFullMonth especifica un rango de valores de fecha que incluye todas las fechas desde el primero al último día del mes anterior. Así, si la fecha de hoy fuera 15 de septiembre de 1999, LastFullMonth sería el mismo que el valor de rango CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#).
Los rangos a menudo se usan con enunciados If o Select. El siguiente ejemplo calcula las calificaciones con letras de estudiantes según sus calificaciones de prueba. Las calificaciones mayores o iguales a 90 reciben una calificación de "A", las calificaciones de 80 a 90, 90 no incluido, reciben una "B" y así sucesivamente.
Select Case {Student.Test Scores}
Case Is >= 90
formula = "A"
Case 80 To_ 90
formula = "B"
Case 70 To_ 80
formula = "C"
Case 60 To_ 70
formula = "D"
Case Else
formula = "F"
End Select
El ejemplo anterior utiliza el enunciado Select, que se analiza más detalladamente en Estructuras de control (sintaxis Basic). Puede verificar si un valor se encuentra en un rango usando el operador In. Por ejemplo:
formula = 5 In 2 To 10 'True
formula = 5 In 2 To_ 5 'False
formula = 5 In 2 To 5 'True
Se pueden usar las funciones Maximum y Minimum para buscar los puntos finales de un rango:
formula = Maximum (2 To 10) 'Returns 10