14.7 @@IFコマンド

LANSA

14.7 @@IFコマンド


@@IFコマンドは、条件に適合しているかどうかを検査し、条件に適合している場合のみ特定のRDMLコマンドの生成を省略するために使用します。

GOTOパラメータのコマンド・ラベルは、GOTOの対象となる別のアプリケーション・テンプレート・コマンドのものでなければなりません。

                                                         必須/省略可 

                                                                  

  @@IF ------ COND ------ *IF  変数  *EQ  値 ------------> 

                        | *AND           *GT          |           

                        | *OR            *LT          |           

                        |                *NE          |           

                        |                *GE          |           

                        |                *LE          |           

                        |                             |           

                        ---------- 最大40 -------------             

                                                                  

          >---GOTO -------コマンド・ラベル -----------------------| 

                                                                  

                                                                  

パラメータ

COND

IF条件に「適合」するかどうかを検査するために評価する条件を指定します。このパラメータは、関係(*IF *AND *OR)、評価対象の変数(@@CANS001など)、比較演算子(*EQ *GT *LT *NE *GE *LE)、および比較に使用されるリテラル値(評価対象の変数と同じタイプであることが必要)の4つの部分から成ります。評価対象の変数として、任意のアプリケーション・テンプレート変数を使用できます。

GOTO

制御を受け取るコマンドのラベルを指定します。このパラメータで指定するラベルは、同じファンクションに含まれる他の単一コマンドのラベルでなければなりません。

以下は、@@IFコマンドの例です。

例1:質問に対する回答が"NO"の場合、ラベルに分岐し、何らかのRDMLコードの生成を省略します。

     @@IF        COND((*IF @@CANS001 *EQ NO)) GOTO(LB1)

     Some RDML code

         .

         .

         .

LB1: @@LABEL

例2:ユーザーが複数のファイルを選択した場合、追加のフィールドを選択するようユーザーに要求します。

     @@IF       COND((*IF @@TFMX *EQ 1)) GOTO(A25)

     @@CLR_LST  ....

     @@MAK_LSTS ....

     @@MRG_LSTS ....

A25: @@LABEL