説明
IIf は、論理値式の結果に応じて 2 つの要素のうちの 1 つを返します。
引数
真の戻り値は、論理値式が True の場合に返される値。単純型(数値、通貨、文字列、論理値、日付、時刻、日時)または範囲(数値型範囲、通貨型範囲、文字列型範囲、日付型範囲、時刻型範囲、日時型範囲)を指定できます。配列は指定できません。
偽の戻り値は、論理値式が False の場合に返される値。真の戻り値と同じデータ型である必要があります。
戻り値
論理値式が True の場合は真の戻り値の値、False の場合は偽の戻り値の値。返される値のデータ型は、真の戻り値および偽の戻り値のデータ型と同じです。
アクション
IIf は、論理値式の結果に応じて 2 つの要素のうちの 1 つを返します。
用途
場合によっては、If/Then/Else 制御構造の代わりに IIf を使用できます。
制御構造より IIf 関数を使用した方がよい場合は、レコード選択式がデータベース サーバーにプッシュ ダウンされるように式を書くときです。例については、
「Switch (expr1, value1, expr2, value2, …)」を参照してください。関連するテクニックについては、『Crystal Reports ユーザーズ ガイド』の「最適化された Web レポートの作成」章の、機能拡張されたレコード選択式の使用に関する節を参照してください。
例
IIF ({Orders.Order Amount} > 10000, "large order", "standard order"){Orders.受注額}の値が 10,000 ドルより多い場合は文字列“大量注文”を返し、そうでない場合は文字列“通常”を返します。
支払が済んでいる場合は受注額を表示し、まだの場合は 0 を表示する式フィールドを挿入します。
IIF ({Orders.Payment Received}, {Orders.Order Amount}, 0)コメント
IIf 関数のすべての引数は、値が返される前に評価されます。したがって、IIf を使用する場合は、予期しない副作用に注意する必要があります。たとえば、偽の戻り値が 0 による除算を行うと、論理値式が True で真の戻り値が返される場合でも、エラーが発生します。