范围旨在处理一系列的值。除布尔值以外,所有简单类型都可以使用范围类型。即:数字范围、货币范围、字符串范围、日期范围、时间范围和日期时间范围。可以使用 To、_To、To_、_To_、UpTo、UpTo_、UpFrom 和 UpFrom_ 关键字生成范围。一般情况下,To 用于有两个终结点的范围,UpTo 和 UpFrom 用于半开半闭区间的范围(只有一个终结点)。下划线用于表示终结点是否在范围内。
“数字范围”值示例
从 2 到 5 的数字范围(包括 2 和 5)
2 To 5
从 2 到 5 的数字范围(不包括 2 但包括 5)
2 _To 5
小于或等于 5 的所有数字
UpTo 5
小于 5 的所有数字
UpTo_ 5
“日期时间范围”值示例:
#Jan 5, 1999# To #Dec 12, 2000#
UpFrom #Jan 1, 2000#
在公式中使用范围
Crystal Reports 中有 27 种用于指定日期范围的函数。例如,函数 LastFullMonth 指定一个日期值范围,这个范围包括从上个月的第一天到最后一天的所有日期。所以,假如今天的日期是 1999 年 9 月 15 日,那么 LastFullMonth 就和 CDate (#Aug 1, 1999#) To CDate (#Aug 31, 1999#) 的范围值相同。
范围经常与 If 或 Select 表达式一起使用。下例根据学生的考试分数计算他们的成绩等级。分数高于或等于 90 的得“A”,在 80 到 90(不包含 90)之间的得“B”,依此类推。
Select {Student.Test Scores}
Case UpFrom 90 :
"A"
Case 80 To_ 90 :
"B"
Case 70 To_ 80 :
"C"
Case 60 To_ 70 :
"D"
Default :
"F";
以上示例使用 Select 表达式,该表达式在控制结构(Crystal 语法)中有更详细的讨论。可以使用 In 运算符检查某个值是否在范围内。例如:
5 In 2 To 10; //True
5 In 2 To_ 5; //False
5 In 2 To 5; //True
最大值和最小值函数可用于查找范围的终结点:
Maximum (2 To 10) // == 10 |