Crystal Reports Designer  

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

If ステートメントは、最も便利な制御構造の 1 つです。If ステートメントを使用すると、条件が真の場合にいくつかのステートメントを評価し、条件が偽の場合にまた別のステートメントを評価できます。

   条件式を使用する場合は、必ず Else キーワードを含めてください。含まれていないと、If 条件に合致しない値が元の書式に残る場合があります。これを回避するには、DefaultAttribute 関数を使用します (If...Else formula = DefaultAttribute)。

ある会社で、営業部の社員には 6 パーセントのボーナスを支給し、それ以外の社員には 4 パーセントのボーナスを支給するとします。次の式では、If ステートメントを使ってこれを実現しています。

Rem 複数行 If の例 1
If {Employee.役職} (1 to 2) = "営業" Then
formula = {Employee.給与} * 0.06
Else
formula = {Employee.給与} * 0.04
End If

この例で、条件{Employee.役職}=“営業”が真と評価された場合は、

formula = {Employee.給与} * 0.06

ステートメントが処理されます。そうでなかった場合は、Else に続くステートメント、つまり

formula = {Employee.給与} * 0.04

が処理されます。

別の会社では、社員に 4 パーセントのボーナスを支給し、ボーナスの最低額を 1,000 ドルにするとします。次の例でその方法を示しますが、Else 句がないことに注目してください。この句は省略できます。この場合は必要ありません。

Rem 複数行 If の例 2
formula = {Employee.給与} * 0.04
If formula < 1000 Then
formula = 1000
End If

次に、この会社でボーナスの最高額を 5,000 ドルにするとします。今度は、ElseIf 句を使用する必要があります。ElseIf が 1 語になっていることに注意してください。次の例では、ElseIf 句が 1 つしかありませんが、必要なだけ追加することもできます。

   1 つの If ステートメントに使用できる Else 句は 1 つだけです。

Else 句は、If および ElseIf のどの条件も真でない場合に実行されます。

Rem 複数行 If の例 3
formula = {Employee.給与} * 0.04
If formula < 1000 Then
formula = 1000
ElseIf formula > 5000 Then
formula = 5000
End If

ある会社で、社員が支払う予定の納税額を概算し、適切なメッセージを出力するとします。所得が 8,000 ドル未満の場合は非課税、8,000 ドル以上 20,000 ドル未満の場合は 20%、20,000 ドル以上 35,000 ドル未満の場合は 29%、35,000 ドル以上の場合は 40% が課税されます。

Rem 複数行 If の例 4
Dim tax As Currency, income As Currency
income = {Employee.給与}
Dim message As String
If income < 8000 Then
   tax = 0
   message = "なし"
ElseIf income >= 20000 And income < 35000 Then
   message = "最低"
   tax = (income - 8000)*0.20
ElseIf income >= 20000 And income < 35000 Then
   message = "中間"
   tax = (20000 - 8000)*0.20 + (income - 20000)*0.29
Else
   message = "最高"
   tax = (20000 - 8000)*0.20 + (35000 - 20000)*0.29 + _
(income - 35000)*0.40
End If
Dim taxStr As String
Rem 小数点以下は 2 桁にする
Rem 桁区切りにカンマを使用する
taxStr = CStr (tax, 2, ",")
formula = "あなたに適用される課税率は「" & message & _
"」です。 " & _
"課税額は約 " & taxStr & " ドルです。"

計算の手順を単純化するために変数を使用しています。また、条件の 1 つが満たされた場合には、2 つのステートメントが実行されます。1 つは tax 変数への代入、もう 1 つは message 変数への代入です。条件の評価の結果として複数のステートメントを実行する方法はよく使用されます。

参照

制御構造 | 単一行/複数行 If ステートメント