[IF](条件分岐)
条件を指定して処理を分岐します。
条件が真の場合は[THEN]以降の処理をします。条件が偽の場合は、[ELSEIF]タグを使用して、さらに処理を分岐することもできます。すべての条件が偽の場合は[ELSE]以降の処理を実行し、[ELSE]が定義されていない場合は、処理を実行しません。
[ELSEIF]タグはいくつでも指定できますが、条件値を複数の定数と比較する場合は、[SWITCH]タグを使用して値となる定数を指定する方が、条件分岐の階層が深くならないため見やすく記述できます。[SWITCH]タグの記述例については、[SWITCH](条件分岐)を参照してください。
形式
[IF] 条件1 [THEN] 条件1が真の場合の処理内容 ([ELSEIF]) 条件2 ([THEN]) 条件1が偽で、条件2が真の場合の処理内容 ([ELSE]) すべての条件が偽の場合の処理内容 [IF_END]
指定する値
-
条件1、条件2
処理を分岐するための条件を記述します。
-
条件1が真の場合の処理内容
条件1が真の場合の処理内容を記述します。
-
条件1が偽で、条件2が真の場合の処理内容
条件1が偽で、条件2が真の場合の処理内容を記述します。この記述は省略できます。記述を省略する場合は、対になっている条件の記述も省略してください。
-
すべての条件が偽の場合の処理内容
すべての条件が偽の場合の処理内容を記述します。この記述は省略できます。
記述例
- 例1
-
資産番号「10000」の資産情報を検索して、データがあった場合([THEN])そのデータを削除し、データがなかった場合([ELSE])終了状態を表示する記述例を次に示します。
[CLASS_FIND] AssetInfo [FIND_DATA] (AssetInfo.AssetNo = '10000') [GET_VALUE] ASSETID = AssetInfo.AssetID [SET_VALUE] STATUS = $GETSTATUS() [IF] STATUS = NORMAL [THEN] [DELETE] AssetInfo [DATA] AssetInfo.AssetID = ASSETID [SET_VALUE] MSG = 'CLASS_FIND (' +STATUS+ ')' $ECHO(MSG) [ELSE] [SET_VALUE] MSG = 'CLASS_FIND (' +STATUS+ ')' $ECHO(MSG) [IF_END]
- 例2
-
次の処理を実行する記述例を示します。
-
データを正常に更新できた場合([THEN])終了状態を表示する。
-
すでにほかの制御で更新されている場合([ELSEIF][THEN])メッセージを出力する。
-
データがない場合([ELSE])データを追加する。
[UPDATE] AssetInfo [DATA] AssetInfo.AssetID = '10000' AssetInfo.AssetNo = '10000' AssetInfo.AssetKind = '001' AssetInfo.AssetBranchNo = 0 AssetInfo.UpdateTime = _UpdateTime [SET_VALUE] STATUS = $GETSTATUS() [IF] STATUS = NORMAL [THEN] [SET_VALUE] MSG = 'UPDATE (' +STATUS+ ')' $ECHO(MSG) [ELSEIF] STATUS = MULTI [THEN] [SET_VALUE] MSG = 'Asset number [10000] is updated already.' $ECHO(MSG) [ELSE] [APPEND] AssetInfo [DATA] AssetInfo.AssetID = '10000' AssetInfo.AssetNo = '10000' AssetInfo.AssetKind = '001' AssetInfo.AssetBranchNo = 0 [SET_VALUE] MSG = 'UPDATE (' +STATUS+ ')' $ECHO(MSG) [IF_END]
-