Crystal Reports for Rational Application Developer ガイド

If 式(Crystal 構文)

If 式は、最も便利な制御構造の 1 つです。If 式を使用すると、条件が真の場合にある式を評価し、条件が偽の場合にまた別の式を評価できます。

If 文の正しい Crystal 構文は、if <condition> then <then> else <else> で、<condition><then>、および <else> はすべて単一の式です。<then> または <else> の後に複数の式を使用する場合は、それらをかっこで囲んで 1 つの式にしてください。以下はその例です。
Global stringVar lastValue;
if {Branch_View.Branch_ID} = lastValue
then
(lastValue := {Branch_View.Branch_ID};
crRed;)
else
(lastValue := {Branch_View.Branch_ID};
crBlack;)
  • 条件式を使用する場合は、必ず Else キーワードを含めてください。含まれていないと、If 条件に合致しない値が元の書式に残る場合があります。これを回避するには、DefaultAttribute 関数を使用します(If...Else DefaultAttribute)。
  • If 式を含むレコード選択式を作成する場合は、必ず Else キーワードを含めます。Else キーワードを含めないと、レコードがまったく返されないか、予期しないレコードが返されます。たとえば、If{parameter field}=“less than 100”Then{field}< 100 のようなレコード選択式は False と評価され、レコードが返されません。この問題を解決するには、Else True を入れて式を完成します。
ある会社で、営業部の社員には 6 パーセントのボーナスを支給し、それ以外の社員には 4 パーセントのボーナスを支給するとします。次の式では、If 式を使ってこれを実現しています。
//If example 1
If {Employee.Dept} = "Sales" Then
{Employee.Salary} * 0.06
Else
{Employee.Salary} * 0.04
この例で、条件{Employee.役職}=“営業”が真と評価された場合は、
{Employee.Salary} * 0.06
式が処理されます。真と評価されなかった場合は、Else に続く式、つまり
{Employee.Salary} * 0.04
が処理されます。
別の会社では、社員に 4 パーセントのボーナスを支給し、ボーナスの最低額を 1,000 ドルにするとします。次の例でその方法を示します。Else 句がないことに注目してください。この句はオプションで、この場合は必要ありません。
//If example 2
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
bonus := 1000;
//The final expression is just the variable 'bonus'.
//This returns the value of the variable and is the
//result of the formula
bonus
例 2 と同じ結果を得る別の方法では、Else 句を使用します。
//If example 3
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else
bonus
次に、この会社でボーナスの最高額を 5,000 ドルにするとします。今度は、Else If 句を使用する必要があります。次の例では、Else If 句が 1 つしかありませんが、必要なだけ追加することもできます。1 つの If 式に使用できる Else 句は 1 つだけなので注意してください。Else 句は、If および Else If のどの条件も真でない場合に実行されます。
//If example 4
Local CurrencyVar bonus := {Employee.Salary} * 0.04;
If bonus < 1000 Then
1000
Else If bonus > 5000 Then
5000
Else
bonus




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