Crystal Reports Designer  

Select 式(Crystal 構文)

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

//Select の例 1
Select {Customer.Fax 番号}[1 To 3]
Case "604", "250" :
"BC"
Case "206", "509", "360" :
"WA"
Default :
      "";

Select キーワードの直後にある式を Select 条件と言います。上の例では、{Customer.Fax 番号}[1 To 3]です。Select 式は、Select 条件と一致する最初の Case を見つけ、それに続く式をこの Case に対応するコロンまで実行します。前にある Case のどれも Select 条件に一致しない場合は、Default が適用されます。Default の後にもコロンがあることに注意してください。

//Select の例 1 と同じ結果の式
Local StringVar areaCode := {Customer.Fax 番号}[1 To 3];
If areaCode In ["604", "250"] Then
"BC"
Else If areaCode In ["206", "509", "360"] Then
"WA"
Else
   "";

次の式は、映画が受けたオスカーのノミネート数を“低い”、“中間”、“高い”、および“最高”というカテゴリにグループ化し、式の結果として考えられる値を Case ラベルの後にリストしています。

//Select の例 2
Select {movie.NOM}
Case 1,2,3, Is < 1 :
   (
//かっこを使用すると複数の
//式を並べることができます
      10 + 20;
"低い"
   )
Case 4 To 6, 7, 8, 9 :
"中間"
Case 10 :
"高い"
Default :
"最高"

この Select 式の Default 句は省略できます。Default 句を指定せず、さらにどの Case も一致しなかった場合、Select 式は、その式の型のデフォルト値を返します。たとえば、上の例で Default 句を指定せず、さらに {movie.NOM} = 11 の場合、空の文字列“ ”が返されます。Select 式も 1 つの式なので、「If 式の考察」と同じ注意が Select 式にも当てはまります。

参照

If 式 | 制御構造 | For ループ