Crystal Reports for Rational Application Developer ガイド

Switch (expr1, value1, expr2, value2, …)

サンプル レポート
27 個の Switch 条件を持つさらに完成させた例が、Record Selection on DateRange.rpt というサンプル レポートにあります。
サンプル レポートは、Crystal Reports をインストールしたディレクトリ下の \Samples\Jp\Reports フォルダにあります。
レポートをプレビューするときは、参照する受注日{?reference date}および範囲の条件{?reference condition}を指定して、参照する受注日を基準とした日付範囲を指定します。レポートは、受注日が指定された範囲になっているレコードのみでプレビューされます。
レコード選択は、すべてデータベース サーバー上で実行されます。Switch 関数とその引数は、データベースにアクセスする前にすべて評価されるからです。
  • このサンプル レポートの Switch 関数は日付型範囲を返しています。
  • コードがインデントされた形式で記述されているので、Switch 関数の呼び出し部分が制御構造と同じように見え、関数が読みやすくなっています。
  • 最後の式が論理値 True になっています。
つまり、この Switch 関数には、明示的にデフォルト値が用意されています。他の式の値がどれも True ではない場合は、最後の式が自動的に True になり、その結果、日付の範囲として CDate(1899, 12, 30) To CDate(1899, 12, 30) が返されます。
//Crystal syntax record selection formula
{Orders.Order Date} in
Switch
(
{?reference condition} = "Aged 0 to 30 days",
({?reference date} - 30) To {?reference date},
{?reference condition} = "Aged 31 to 60 days",
({?reference date} - 60) To ({?reference date} - 31),
{?reference condition} = "Aged 61 to 90 days",
({?reference date} - 90) To ({?reference date} - 61),
True, // provide default handling and specify a valid range
CDate(1899, 12, 30) To CDate(1899, 12, 30)
)



Business Objects, an SAP company
http://japan.businessobjects.com/
サポート サービス
http://japan.businessobjects.com/support/
Web 上の製品マニュアル
http://support.businessobjects.com/documentation/