@If (式言語)

条件を評価し、条件が True のときは条件の直後に記述された処理を実行し、条件の評価を終了します。条件が False のときは次の条件に移って評価を行い、以下同様に続けます。条件がいずれも True でないときは、最後に指定された else_action のアクションを実行します。

構文

@If( condition1 ; action1 ; condition2 ; action2 ; ... ; condition99 ; action99 ; else_action )

パラメータ

condition

論理値を返す表現式です。この表現式が True を返すときは、action が実行されます。この表現式が False を返すときは、次の condition があればその条件に移ります。次の条件がなければ else_action の処理が実行されます。

action

条件で True が返されたときに実行するアクションまたは返す値を指定します。

else_action

これまでの条件で True が返されなかったときに実行するアクションまたは返す値を指定します。

使用法

最も単純なフォームでは、If ステートメントは次のようになります。 @If( condition ; action ; else_action )

パラメータには、99 個までの条件とそれに対応するアクションを指定できます。すべての条件が False のときに実行するアクションを最後に 1 つ記述します。条件が True と評価されると、対応するアクションがすぐに実行され、@If ステートメントの残りのパラメータは無視されます。

条件は 1 つだけでアクションを指定せずに @If( condition )) を実行してもエラーにはなりませんが、条件が True でもアクションは一切実行されません。

フィールドと値を比較するとき (例えば、Year > 1995)、フィールドが利用不可の場合は、比較結果は False になります。ただし、フィールドが存在しているかどうかを @IsUnavailable でチェックしておく必要があります。

  1. 次の式では、[CostOfGoods] フィールドの 1 つの値を調べます。値が 12.45 以上の場合、条件は True となり、文字列「Over Budget」が返されます。値が 12.45 より小さい場合は、条件は False となり、文字列「Bill of Materials OK」が返されます。
    @If(CostOfGoods>=12.45;"Over Budget";"Bill of Materials OK") 
  2. 次の例では、[CostOfGoods] が 12.45 より小さい場合、Null 文字列が返されます。
    @If(CostOfGoods>=12.45;"Over Budget";"")
  3. 次の例では、[CostOfGoods] フィールドの値を調べます。値が 12.45 以上のときは、文字列「Over Budget」が表示されます。そうでないときは次の条件に移ります。2 番目の条件で、再び [CostOfGoods] フィールドの値を評価します。値が 12.45 より小さいとき、条件は True となり、文字列「Bill of Materials OK」が返されます。値が 12.45 より大きくも小さくもない場合、指定された「else」に対応するアクションに移り、文字列「Estimate Right on Target」が表示されます。
    @If(CostOfGoods>12.45;"Over Budget";CostOfGoods<12.45;
    "Bill of Materials OK";"Estimate Right on Target")
  4. 次の例では、文書が一度も保存されていないかどうかを最初に調べます。条件が True のときは、[NewNoteTitle] フィールドの値が返されます。最初の条件が False のときは、ビューが Author View かどうかを調べます。この結果が True のときは、[ByAuthorTitle] フィールドの値が返されます。この条件も False のときは、[StandardTitle] フィールドの値が返されます。
    @If(@IsNewDoc; NewNoteTitle; @ViewTitle = 
    "Author View"; ByAuthorTitle; StandardTitle)
  5. 次のコードを [phoneNumber] フィールドの入力確認式として使用すると、ユーザーがこのフィールドに値を入力しなければフォームは保存できないようになります。この式では、複数のステートメントを調べています。電話番号が必要なのは [contactMe] フィールドが Yes に設定されている場合 (ユーザーが連絡を必要としている場合) のみだからです。

    @If((contactMe="Yes") & (@ThisValue = "");@Failure("You must enter a value in " + @ThisName);@Success)

    フィールド名をハードコーディングする代わりに @ThisValue と @ThisName を使用すれば、このコードをコピーして、入力必須とする他のフィールド ([firstName] フィールドや [lastName] フィールドなど) に貼り付けることができます。

クロスリファレンス

LotusScript® 言語の If...Then...Else ステートメント

LotusScript 言語の If...GoTo ステートメント

LotusScript 言語の If...Then...ElseIf ステートメント