範囲変数は、連続した値を処理するために用意されています。範囲変数は、論理値型を除くすべての単純型で使用できます。つまり、使用できる型は、数値型範囲、通貨型範囲、文字列型範囲、日付型範囲、時刻型範囲、および日時型範囲です。範囲を生成するには、To、_To、To_、_To_、UpTo、UpTo_、UpFrom、および UpFrom_ の各キーワードを使用します。大まかに言うと、To は両端のある範囲に使用し、UpTo と UpFrom は一方の端しかない範囲に使用します。下線は、端点を範囲に入れるかどうかを指示するために使用します。
数値型範囲の値の例
2 以上 5 以下の数値の範囲
2 To 5
2 より大きく 5 以下の数値の範囲
2 _To 5
5 以下の数値
UpTo 5
5 未満の数値
UpTo_ 5
日時型範囲の値の例
#1999/1/5# To #2000/12/12# UpFrom #Jan 1, 2000#
Crystal Reports
には、日付範囲を返す関数が 27
あります。たとえば、LastFullMonth 関数は、前月の 1 日から末日までのすべての日付を含む日付値の範囲を返します。つまり、今日が 1999 年 9 月 15 日である場合、LastFullMonth は、範囲値“CDate(#1999/8/1#)To CDate(#1999/8/31#)”と同じです。
範囲変数は、多くの場合、If または Select 式と共に使用されます。次の例では、試験の点数に基づいて学生の成績を求めています。90 点以上には A が与えられ、80 点以上 90 点未満には B が与えられます。
//学生の成績を求めます Select {Student.試験の点数} Case UpFrom 90 : "A" Case 80 To_ 90 : "B" Case 70 To_ 80 : "C" Case 60 To_ 70 : "D" Default : "F";
上の例では、Select 式を使用しています。Select 式については、「制御構造」で詳しく説明しています。ある値が範囲内にあるかどうかは、演算子 In を使って検査できます。例 :
10 In 2 To 5; //真 5 In 2 To_ 5; //偽 5 In 2 To 5; //真
Maximum および Minimum 関数は、範囲の端点を判定するために使用します。
Maximum (2 To 10) //10 を返します