[SWITCH](条件分岐)
条件値が指定した定数と一致した場合、処理を実行します。
条件値を複数の定数と比較することが多い場合に使用すると[IF]タグを使用するよりも階層を深くしないで記述できるため便利です。条件値が定数と一致したときは[CASE]以降の処理をします。どの定数とも一致しなかったときは[DEFAULT]以降の処理を実行し、[DEFAULT]が定義されていないときは、処理を実行しません。
複数の[CASE]タグに同じ定数を指定した場合は、記述の上から(1行で記述してある場合は左から)処理を実行し、条件値が定数と一致したときの処理内容をすべて実行します。
形式
[SWITCH] 条件値 [CASE] 定数 条件値が定数と一致した場合の処理内容 ([CASE]) 定数[,定数[,定数・・・]] 条件値がどれかの定数と一致した場合の処理内容 ([DEFAULT]) どの定数とも一致しなかった場合の処理内容 [SWITCH_END]
指定する値
-
条件値
条件値を記述します。
-
定数
処理を実行する場合の条件値の定数を記述します。定数をコンマで区切ると複数記述できます。
-
条件値が定数と一致した場合の処理内容
条件値が定数と一致した場合の処理内容を記述します。条件値が最初に定数と一致した場合の処理だけを実行したいときは、[CASE]タグの記述の最後に「$BREAK()」を指定します。
-
条件値がどれかの定数と一致した場合の処理内容
条件値がどれかの定数と一致した場合の処理内容を記述します。条件値が最初に定数と一致した場合の処理だけを実行したいときは、[CASE]タグの記述の最後に「$BREAK()」を指定します。この記述は省略できます。
-
どの定数とも一致しなかった場合の処理内容
どの定数とも一致しなかった場合の処理内容を記述します。[DEFAULT]タグは、[CASE]タグより前に指定してもかまいません。この記述は省略できます。
記述例
次の処理を実行する記述例を示します。
-
データを正常に更新できた場合(STATUS = 'NORMAL')終了状態を表示する。
-
すでにほかの制御で更新されている場合(STATUS = 'MULTI')メッセージを出力する。
-
データがない場合([DEFAULT])データを追加する。
[UPDATE] AssetInfo [DATA] AssetInfo.AssetID = '10000' AssetInfo.AssetNo = '10000' AssetInfo.AssetKind = '001' AssetInfo.AssetBranchNo = '0' AssetInfo.UpdateTime = _UpdateTime [SET_VALUE] STATUS = $GETSTATUS() [SWITCH] STATUS [CASE] 'NORMAL' [SET_VALUE] MSG = 'UPDATE (' +STATUS+ ')' $ECHO(MSG) $BREAK() [CASE] 'MULTI' [SET_VALUE] MSG = 'Asset number [10000] is updated already.' $ECHO(MSG) $BREAK() [DEFAULT] [APPEND] AssetInfo [DATA] AssetInfo.AssetID = '10000' AssetInfo.AssetNo = '10000' AssetInfo.AssetKind = '001' AssetInfo.AssetBranchNo = '0' [SET_VALUE] MSG = 'UPDATE (' +STATUS+ ')' $ECHO(MSG) $BREAK() [SWITCH_END]