Crystal Reports  

Select ステートメント(Basic 構文)

Select ステートメントの機能は If ステートメントと似ています。しかし、Select ステートメントを使用すると、より明確で繰り返しの少ない式を作成できる場合があります。たとえば、{Customer.Fax 番号}フィールドを評価して、地域コードがワシントン州(206、360、509)のものか、それともカナダのブリティッシュ コロンビア州(604、250)のものかを判定するとします。

Rem Select の例 1
Select Case Left ({Customer.Fax 番号}, 3)
Case "604", "250"
formula = "BC"
Case "206", "509", "360"
formula = "WA"
End Select

Select Case キーワードの直後にある式を Select 条件と言います。上の例では、Left({Customer.Fax 番号},3)です。Select ステートメントは、Select 条件と一致する最初の Case を見つけ、それに続くステートメントを次の Case まで実行します。

Rem Select の例 1 と同じ結果の式
Dim areaCode As String
areaCode = Left ({Customer.Fax 番号}, 3)
If areaCode In Array ("604", "250") Then
formula = "BC"
ElseIf areaCode In Array ("206", "509", "360") Then
formula = "WA"
End If

次の式は、映画が受けたオスカーのノミネート数を“低い”、“中間”、“高い”、および“最高”というカテゴリにグループ化し、式の結果として考えられる値を Case ラベルの後にリストしています。Case Else 句に注目してください。この句の使用は任意です。Case リストのどれも、前の Case 句の値と一致しない場合は、Case Else が適用されます。たとえば、次の例の{movie.NOM}が 11 の場合、この式は“最高”を返します。

Rem Select の例 2
Select Case {movie.NOM}
Case 1,2,3, Is < 1
Rem ステートメント ブロックの中に複数の
Rem ステートメントを入れることができます
formula = "低い"
Case 4 To 6, 7, 8, 9
formula = "中間"
Case 10
formula = "高い"
Case Else
formula = "最高"
End Select

参照

制御構造 | If ステートメント | For/Next ループ