7.78.1 RANGECHECKのパラメータ
検査対象のフィールドの名前を指定します。
フィールドと照合する1〜20個の値範囲を指定します。各範囲は、「下限」値と「上限」値で構成します。詳細については、使用例のセクションを参照してください。
フィールドが、RANGEパラメータで指定された1つ(または、それ以上)の範囲内にあることが判明した場合に実行するアクションを指定します。
*NEXTを指定した場合、そのフィールドは妥当性検査に合格したものと見なされます。次のRDMLコマンドで処理が続行されます。
*ERRORを指定した場合、フィールドは、妥当性検査に失敗したものと見なされ、MSGTXTで指定されたメッセージ・テキストまたはMSGIDおよびMSGFパラメータで指定されたメッセージが、ユーザーに表示される次の画面形式の22/24行目に表示されます。また、FIELDパラメータで指定されたフィールドが反転表示され、画面カーソルが、画面上でエラーのある最初のフィールドに配置されます。処理は、次のRDMLコマンドで続行されます。
*ACCEPTを指定した場合、フィールドは、妥当性検査に合格したものと見なされ、かつ、妥当性検査ブロック内では、FIELDパラメータに指定されたフィールドに対してこれ以上の妥当性検査は実行されません。処理は、次のRDMLコマンドで続行されます。ただし、これが同じフィールドに対する別の妥当性検査である場合は、事実上この処理が「無効」になり、実行されません。
フィールドが、RANGEパラメータで指定されたどの範囲内にもないことが判明した場合に実行するアクションを指定します。
*NEXTを指定した場合、そのフィールドは妥当性検査に合格したものと見なされます。次のRDMLコマンドで処理が続行されます。
*ERRORを指定した場合、フィールドは、妥当性検査に失敗したものと見なされ、MSGTXTで指定されたメッセージ・テキストまたはMSGIDおよびMSGFパラメータで指定されたメッセージが、ユーザーに表示される次の画面形式の22/24行目に表示されます。また、FIELDパラメータで指定されたフィールドが反転表示され、画面カーソルが、画面上でエラーのある最初のフィールドに配置されます。処理は、次のRDMLコマンドで続行されます。
*ACCEPTを指定した場合、フィールドは、妥当性検査に合格したものと見なされ、かつ、妥当性検査ブロック内では、FIELDパラメータに指定されたフィールドに対してこれ以上の妥当性検査は実行されません。処理は、次のRDMLコマンドで続行されます。ただし、これが同じフィールドに対する別の妥当性検査である場合は、事実上この処理が「無効」になり、実行されません。
最大80文字のメッセージ・テキストを指定できます。メッセージ・テキストを指定するときは、引用符で囲んでください。MSGTXTパラメータまたはMSGID/MSGFパラメータのいずれかを使用してください。両方は使用できません。
使用するメッセージとして、標準メッセージ識別子を指定できます。メッセージ識別子は7文字である必要があります。このパラメータは、MSGFパラメータと組み合わせて使用してください。
MSGIDパラメータで指定されたメッセージが記述されているメッセージ・ファイルを指定します。このパラメータは修飾名です。メッセージ・ファイル名を指定する必要があります。必要に応じて、メッセージ・ファイルが存在するライブラリを指定することもできます。ライブラリ名を指定しない場合は、ライブラリ*LIBLが使用されます。
このパラメータは、必ずMSGIDおよびMSGFパラメータと組み合わせて使用してください。MSGIDパラメータに指定されたメッセージ内の"&n"代替変数を置き換えるために使用される1〜20個の値を指定します。
このパラメータの値として、フィールド名、拡張可能なグループ式、英数字リテラル、または数値リテラルを指定できます。これらの値は、メッセージに定義されている代替変数のタイプ、長さ、および指定順序と一致している必要があります。
このパラメータで指定するフィールドのタイプが符号付き(ゾーンとも言う) 10進数の場合、メッセージ内でそれに対応する"&n"変数のタイプは*CHAR (文字)である必要があります。これは、負の値を処理するときに問題になる場合があります。この場合は、代わりにパック10進数形式を使用してください。
メッセージ内の"&n"変数のタイプが*DEC (パック10進数)の場合、このメッセージ内で指定されるフィールドのタイプもパック10進数である必要があります。
このパラメータで英数字リテラルを使用するときは、末尾ブランクが重要になる場合があることを覚えておいてください。例えば、メッセージが以下のように定義されているとします。
"&1 are out of stock ... reorder &2"
ここで、&1が(*CHAR 10)として、&2が(*DEC 7 0)として定義されている場合、以下のように指定すると、メッセージが正しく発行されません。
MSGDTA('BOLTS' #ORDQTY)
あるいは次のように記述することも可能です。
MSGDTA('BOLTS ' #ORDQTY)
LANSAに末尾ブランクを認識させるには、このパラメータを以下のように指定する必要があります。
MSGDTA('''BOLTS ''' #ORDQTY)
拡張可能な式を使用する場合、拡張フィールド・リストが、パラメータで許容される代替変数の最大数を超えないようにしてください。