7.25.1 DEFINEのパラメータ
定義するフィールドの名前を指定します。フィールド名の先頭文字は、#でなければなりません。また、LANSAデータ・ディクショナリに定義されている名 前は使用できません。さらに、このファンクション内で定義されているグループまたはリストの名前も使用できません。SQLxxxのようなフィールド名の使 用も避けてください。SQL(Structured Query Language)機能を使用するファンクション(コマンドSELECT_SQL)で、問題が生じる可能性があります。
定義するフィールドのタイプを指定します。以下の値を指定できます。
· *BIN: Binaryタイプの作業フィールドが定義されます。
· *BOOLEAN: Booleanタイプの作業フィールドが定義されます。Booleanタイプ使用での有効値は、TrueおよびFalse(大文字、小文字を区別しませ ん)、もしくは1および0(ゼロ)です。
· *CHAR: Alphaタイプの作業フィールドが定義されます。
· *DATE: Dateタイプの作業フィールドが定義されます。
· *DATETIME: Datetimeタイプの作業フィールドが定義 されます。
· *DEC または同義の*PACKED:Packedタイプの作業フィールドが定義されます。
· *FLOAT: Floatタイプの作業フィールドが定義されます。
· *INT: Integerタイプの作業フィールドが定義されます。
· *NVARCHAR: Nvarcharタイプの作業フィールドが定義されます。
· *REFFLD: REFFLDパラメータの参照フィールドのタイプが使用されます。
· *SIGNED: Signedタイプの作業フィールドが定義されます。
· *STRING: Stringタイプの作業フィールドが定義されます。
· *TIME: Timeタイプの作業フィールドが定義されます。
ファンクションまたはコンポーネントがRDMLXに対応していない場合、有効なタイプは*REFFLD、*DEC、および*CHARのみです。
REFFLDパラメータが*NONE以外で、参照フィールドがRDMLXフィールドの場合、TYPEパラメータでは*REFFLDを指定する必要がありま す。
REFFLDパラメータが*NONE以外で、参照フィールドがRDMLフィールドの場合、TYPEパラメータに設定できる値は、*REFFLD、 *DEC、または*CHARのみです。ただし、*REFFLD以外のタイプを指定すると、リポジトリ・フィールドの基本的な考え方が役立たなくなるため、 このような指定はお勧めしません。
定義するフィールドの長さを指定します。値*REFFLDを指定した場合、REFFLDパラメータで指定されたフィールドと同じ長さになります。許容され るフィールド長の詳細については、「フィールド・タイ プ」を参照してください。
タイプ |
Lengthパラメータに 関する注意事項 |
*REFFLD |
*REFFLD、 または参照フィールドの基となるフィールド・タイプに有効な任意の値 |
*DEC または同義の*PACKED |
LENGTH (*REFFLD)は、パラメータREFFLDが指定されている場合のみ指定できます。 REFFLD パラメータが指定され、それがRDMLフィールドの場合、フィールド長を31桁以上に変更すると、作業フィールドがRDMLXフィールドになります。 |
*CHAR |
LENGTH (*REFFLD)は、パラメータREFFLDが指定されている場合のみ指定できます。 |
*STRING |
LENGTH(*REFFLD) REFFLD(*NONE)を指定した場合、フィールド長はデフォルトで256桁になります。 |
*SIGNED |
LENGTH (*REFFLD)は、パラメータREFFLDが指定されている場合のみ指定できます。 REFFLD パラメータが指定され、それがRDMLフィールドの場合、フィールド長を31桁以上に変更すると、作業フィールドがRDMLXフィールドになります。 |
*BIN |
LENGTH (*REFFLD)は、パラメータREFFLDが指定されている場合のみ指定できます。 |
*DATE |
日 付は固定サイズ(常に10桁)です。 桁 数の増減は*NONEでなければなりません。 増 減桁数は*NONEでなければなりません。 |
*TIME |
時 刻は固定サイズ(常に8桁)です。 桁 数の増減は*NONEでなければなりません。 増 減桁数は*NONEでなければなりません。 |
*DATETIME |
19、 21〜29 長 さによって、秒の小数部の桁数は異なってきます。これについて明確にしておく必要があります。長さ19桁は、秒の小数部がないことを意味し、21〜29桁 は、秒の小数部の桁数が1〜9桁であることを意味します。DECIMALSパラメータの影響は受けません。 LENGTH(*REFFLD) REFFLD(*NONE)を指定した場合、長さはデフォルトで、ISO標準である26桁(YYYY-MM-DD HH:MM:SS.ffffff)になります。 桁 数の増減は*NONEでなければなりません。 増 減桁数は*NONEでなければなりません。 |
「桁数の増減」値は、LENGTHパラメータで*REFFLDと組み合わせて使用されます。このフィールドの目的は、REFFLDキーワードで指定された フィールドから取得した長さの値を変更できるようにすることです。指定できる値は、*PLUS、*MINUS、および*NONEです。*PLUSを指定し た場合、REFFLDフィールドの長さ属性の値が増加します。*MINUSの場合は、REFFLDフィールドの長さ属性の値が減少します。*NONEを指 定した場合、REFFLDフィールドの長さ属性の値は変わりません。
「増減桁数」値は、LENGTHパラメータで*REFFLD値と組み合わせて使用され、「桁数の増減」値に直接関係しています。このフィールドの目的は、 REFFLDフィールドの長さの値を増加または減少させる増分値または減分値を指定することです。このフィールドには、数値または値*NONEを指定でき ます。
定義するフィールドの小数点以下桁数を指定します。この値は、タイプ値*DECと組み合わせて使用されます。値*REFFLDを指定した場合、 REFFLDパラメータで指定されたフィールドと同じ小数点以下桁数が使用されます。それ以外の場合は、0〜63の値を指定してください。
SignedおよびPacked以外のタイプのフィールドには、必ずDECIMALS(0)またはDECIMALS(*REFFLD *NONE *NONE)を指定する必要があります。
「桁数の増減」値は、DECIMALSパラメータで*REFFLDと組み合わせて使用されます。このフィールドの目的は、REFFLDキーワードで指定さ れたフィールドから取得した小数点以下桁数の値を変更できるようにすることです。指定できる値は、*PLUS、*MINUS、および*NONEです。 *PLUSを指定した場合、REFFLDフィールドの小数点以下桁数属性の値が増加します。*MINUSの場合は、REFFLDフィールドの小数点以下桁 数属性の値が減少します。*NONEを指定した場合、REFFLDフィールドの小数点以下桁数属性の値は変わりません。
「増減桁数」値は、小数点以下桁数パラメータで*REFFLD値と組み合わせて使用され、「桁数の増減」値に直接関係しています。このフィールドの目的 は、REFFLDフィールドの小数点以下桁数の値を増加または減少させる増分値または減分値を指定することです。このフィールドには、数値または値 *NONEを指定できます。
この定義の基になるフィールドの名前を指定します。
このフィールドに割り当てる15文字のラベルを指定します。*DEFAULTを指定した場合、デフォルトのラベルが使用されます。REFFLDパラメータ を使用する場合は、参照フィールドのラベルが使用されます。REFFLDパラメータを使用しない場合は、定義するフィールドの名前がラベルとして使用され ます。
このフィールドに割り当てる50文字の記述を指定します。*DEFAULTを指定した場合、デフォルトの記述が使用されます。REFFLDパラメータを使 用する場合は、参照フィールドの記述が使用されます。REFFLDパラメータを使用しない場合は、定義するフィールドの名前が記述として使用されます。
このフィールドに割り当てる3×20文字の欄見出しを指定します。*DEFAULTを指定した場合、デフォルトの欄見出しが使用され ます。REFFLDパラメータを指定する場合は、参照フィールドの欄見出しが使用されます。REFFLDを使用しない場合は、フィールド名が欄見出し1と して使用されます。
定義するフィールドに割り当てる編集コードを指定します。編集コードを指定しない場合は、値*DEFAULTが使用されます。
*DEFAULTを指定すると、REFFLDパラメータを使用している場合は、REFFLDフィールドの編集コードが使用されます。それ以外の場合、 フィールドには編集コードは使用されません。
すべての数値フィールド(タイプ*DECなど)に対して編集コードを使用することを強くお勧めします。
タイプInteger、Signed、またはPackedのフィールドには、編集コードまたは編集語を指定できます。または、どちらも*DEFAULTの ままにすることもできます。ただし、タイプIntegerのフィールドでは、編集コードWおよびYを使用できません。その他すべてのフィールド・タイプ は、EDIT_CODE(*DEFAULT) EDIT_WORD(*DEFAULT)でなければなりません。
LANSAでサポートされる編集コードについては、「標 準フィールド編集コード」を参照してください。
定義するフィールドに割り当てる編集語を指定します。編集語を指定しない場合は、値*DEFAULTが使用されます。
*DEFAULTを指定すると、REFFLDパラメータを使用している場合は、REFFLDフィールドの編集語が使用されます。それ以外の場合、フィール ドに編集語は使用されません。
タイプInteger、Signed、またはPackedのフィールドには、編集コードまたは編集語を指定できます。または、どちらも*DEFAULTの ままにすることもできます。その他すべてのフィールド・タイプは、EDIT_CODE(*SAME) EDIT_WORD(*SAME)でなければなりません。
LANSAが実行する妥当性検査は単純なため、編集語の使用は経験のあるユーザーに限るべきです。
REFFLDオプションとEDIT_WORD(*DEFAULT)を使用すると、REFFLDに割り当てられた編集語が使用されることに注意してくださ い。ただし、使用するフィールド長と小数点以下桁数がREFFLDフィールドと異なる場合は、関連付けられた編集語が無効になる可能性があります。このよ うな場合、必要な編集語を定義する必要があります。
また、オペレーティング・システムによる浮動通貨記号を含む編集語の処理が、画面パネル上とレポート上とで異なることに注意してください。このような場 合、レポートの生成用に、別のフィールド(または「仮想」フィールド)を使用することをお勧めします。
編集語がLANSAでRDMLコマンド言語により定義されている場合は、その編集語を単一引用符ではなく三重引用符で 囲んでください。
例えば:
末尾に%が必要な5,2の数値フィールドの場合、編集語を定義する正しい方法は以下のとおりです。
DEFINE FIELD(#INCREASE) TYPE(#DEC) LENGTH(5) DECIMALS(2) LABEL('Sales Increase') EDIT_WORD(''' . %''')
以下は、末尾に%が必要な5,2の数値フィールドの編集語を定義する方法として正し くありません。
DEFINE FIELD(#INCREASE) TYPE(#DEC) LENGTH(5) DECIMALS(2) LABEL('Sales Increase') EDIT_WORD(' . %')
詳細については、IBMマニュアルの『Data Description Specifications』のキー ワードEDTWRDを参照してください。
定義するフィールドに割り当てる入力属性を指定します。入力属性を定義しない場合、値*DEFAULTが使用されます。
*DEFAULTを指定すると、REFFLDパラメータを使用している場合は、REFFLDフィールドの入力属性が使用されます。それ以外の場合、フィー ルド・タイプに応じて、英数字フィールドまたは数値フィールドに対するシステムのデフォルト入力属性が使用されます。
RDMLXフィールドで使用可能な属性の詳細については、「フィールド・タイ プ」を参照してください。
タイプA (英数字)、P (パック10進数)、およびS (符号付き)の有効な入力属性は以下のとおりです。
属性 |
説明/コメント |
A |
P |
S |
---|---|---|---|---|
AB |
ブ ランク入力可能 |
Y |
Y |
Y |
ME |
入 力必須項目チェック |
Y |
Y |
Y |
MF |
全 桁入力チェック |
Y |
Y |
Y |
M10 |
Modulus 10 のチェック |
Y |
Y |
|
M11 |
Modulus 11 のチェック |
Y |
Y |
|
VN |
名 前の妥当性チェック |
Y |
||
FE |
フィー ルド EXITキーを必要に設定 |
Y |
Y |
Y |
LC |
小 文字入力可能。この属性を設定しない場合は、『LANSA/AD ユーザーガイド』の「システム区画の言語属性 を 表示または変更する」の「PC ロケール・大文字変換」を 参照してください。 |
Y |
||
RB |
右 寄せブランクの埋め込み |
Y |
Y |
|
RZ |
右 寄せゼロの埋め込み |
Y |
Y |
|
RL |
カー ソルを右から左に移動 |
Y |
Y |
Y |
RLTB |
カー ソルを左から右、上から下にタブ゙移動。SAA/CUA区画でのみ有効。すべての画面パネルに影響します。 |
Y |
Y |
Y |
GRN |
緑 色表示 |
Y |
Y |
Y |
WHT |
白 色表示 |
Y |
Y |
Y |
RED |
赤 色表示 |
Y |
Y |
Y |
TRQ |
青 緑色表示 |
Y |
Y |
Y |
YLW |
黄 色表示 |
Y |
Y |
Y |
PNK |
ピ ンク色表示 |
Y |
Y |
Y |
BLU |
青 色表示 |
Y |
Y |
Y |
BL |
明 滅表示 |
Y |
Y |
Y |
CS |
欄 の区切り線の表示 |
Y |
Y |
Y |
HI |
高 輝度表示 |
Y |
Y |
Y |
ND |
非 表示(非表示フィールド) |
Y |
Y |
Y |
RA |
レ コードの自動前進フィールド |
Y |
Y |
Y |
SREV |
反 転形式で保存。この特別な属性は、双方向言語用です。このコンテキストには適用できません。 |
Y |
N |
N |
SBIN |
Binary 形式で保存。この特別な属性は、リポジトリ・フィールド用です。このコンテキストには適用できません。 |
Y |
N |
N |
HIND |
ヒン ディー数字。ヒンディー数字で表示。『LANSA/AD ユーザーガイド』の「ヒンディー数字」を 参照してください。 |
N |
Y |
Y |
CBOX * |
チェッ ク・ボックス |
Y |
N |
N |
RBnn * |
ラ ジオ・ボタン |
Y |
N |
N |
PBnn * |
プッ シュ・ボタン |
Y |
N |
N |
DDXX * |
ド ロップダウン |
Y |
N |
N |
*の付いた属性は、対応するGUI WIMP構造のあるフィールドを表します。詳細については、『LANSA/AD ユーザーガイド』の「GUI WIMP構成」を参照してください。
SAA/CUA ガイドラインに準拠した区画では、以下の属性も使用できます(実 際には、上記の属性を使用することをお勧めします)。
属性 |
説明/コメント |
---|---|
ABCH |
ア クション・バーとプルダウン選択項目 |
PBPT |
画 面のタイトル |
PBPI |
画 面の識別子 |
PBIN |
ユー ザーへの説明 |
PBFP |
フィー ルドのプロンプト/ラベル/記述の詳細 |
PBBR |
括 弧 |
PBCM |
フィー ルド欄見出し |
PBGH |
グ ループ見出し |
PBNT |
標 準のテキスト |
PBET |
強 調のテキスト |
PBEN * |
入 力可能のフィールド(標準) |
PBEE * |
入 力可能のフィールド(強調) |
PBCH |
メ ニューに表示される選択項目 |
PBSC |
最 後にメニューから選択された項目 |
PBUC |
使 用不可の選択項目 |
PBCN |
入 力不可のフィールド(標準) |
PBCE |
入 力不可のフィールド(強調) |
PBSI |
ス クロール情報 |
PBSL |
区 切り線 |
PBWB |
ポッ プアップ・ウィンドウの境界 |
FKCH |
ファ ンクション・キーの情報 |
注:通 常、PBENおよびPBEEは入力属性としてのみ指定します。これらの属性の詳細については、『LANSA アプリケーション設計ガイド』の「OS/400のSAA/CUAインプリメンテーション」を 参照してください。また、1つのフィールドに指定できる色は1つのみであることに注意してください。複数の色を使用すると、他の属性に影響を与える可能性 があります。詳細については、IBMマニュアルの『Data Description Specifications』を参照 してください。検討する必要のあるキーワードは、CHECK、COLOR、およびDSPATRです。
定義するフィールドに割り当てる出力属性を指定します。出力属性を指定しない場合、値*DEFAULTが使用されます。
*DEFAULTを指定すると、REFFLDパラメータを使用している場合は、REFFLDフィールドの出力属性が使用されます。それ以外の場合、フィー ルド・タイプに応じて、英数字フィールドまたは数値フィールドに対するシステムのデフォルト出力属性が使用されます。
RDMLXフィールドで使用可能な属性の詳細については、「フィールド・タイ プ」を参照してください。
タイプAlpha (A)、Packed (P)、および Signed (S)の有効な出力属性は以下のとおりです。
属性 |
説明/コメント |
A |
P |
S |
---|---|---|---|---|
GRN |
緑 色表示 |
Y |
Y |
Y |
WHT |
白 色表示 |
Y |
Y |
Y |
RED |
赤 色表示 |
Y |
Y |
Y |
TRQ |
青 緑色表示 |
Y |
Y |
Y |
YLW |
黄 色表示 |
Y |
Y |
Y |
PNK |
ピ ンク色表示 |
Y |
Y |
Y |
BLU |
青 色表示 |
Y |
Y |
Y |
BL |
明 滅表示 |
Y |
Y |
Y |
CS |
欄 の区切り線の表示 |
Y |
Y |
Y |
HI |
高 輝度表示 |
Y |
Y |
Y |
ND |
非 表示(非表示フィールド) |
Y |
Y |
Y |
SREV |
反 転形式で保存。この特別な属性は、双方向言語用です。このコンテキストには適用できません。 |
Y |
N |
N |
SBIN |
Binary 形式で保存。この特別な属性は、リポジトリ・フィールド用です。このコンテキストには適用できません。 |
Y |
N |
N |
Urxx |
ユー ザー定義のレポート属性。プリンター・ファイルのi5/OS DDSステートメントへのアクセスを提供します。『LANSA/AD ユーザーガイド』の「ユーザー定義レポート属性」を 参照してください。 |
Y |
Y |
Y |
HIND |
ヒン ディー数字。ヒンディー数字で表示。『LANSA/AD ユーザーガイド』の「ヒンディー数字」 を 参照してください。 |
N |
Y |
Y |
CBOX * |
チェッ ク・ボックス |
Y |
N |
N |
RBnn * |
ラ ジオ・ボタン |
Y |
N |
N |
PBnn * |
プッ シュ・ボタン |
Y |
N |
N |
DDxx * |
ド ロップダウン |
Y |
N |
N |
*の付いた属性は、対応するGUI WIMP構造のあるフィールドを表します。詳細については、『LANSA/AD ユーザーガイド』の「GUI WIMP構成」を 参照してください。
SAA/CUA ガイドラインに準拠した区画では、以下の属性も使用できます(実 際には、上記の属性を使用することをお勧めします)。
属性 |
説明/コメント |
---|---|
ABCH |
ア クション・バーとプルダウン選択項目 |
PBPT |
画 面のタイトル |
PBPI |
画 面の識別子 |
PBIN |
ユー ザーへの説明 |
PBFP |
フィー ルドのプロンプト/ラベル/記述の詳細 |
PBBR |
括 弧 |
PBCM |
フィー ルド欄見出し |
PBGH |
グ ループ見出し |
PBNT |
標 準のテキスト |
PBET |
強 調のテキスト |
PBEN |
入 力可能のフィールド(標準) |
PBEE |
入 力可能のフィールド(強調) |
PBCH |
メ ニューに表示される選択項目 |
PBSC |
最 後にメニューから選択された項目 |
PBUC |
使 用不可の選択項目 |
PBCN * |
入 力不可のフィールド(標準) |
PBCE * |
入 力不可のフィールド(強調) |
PBSI |
ス クロール情報 |
PBSL |
区 切り線 |
PBWB |
ポッ プアップ・ウィンドウの境界 |
FKCH |
ファ ンクション・キーの情報 |
* 注:通常、PBCNおよびPBCEは出力属性としてのみ指定しま す。これらの属性の詳細については、『LANSA アプリケーション設計ガイド』の「SAA/CUA Implementation」を 参照してください。また、1つのフィールドに指定できる色は1つのみであることに注意してください。複数の色を使用すると、他の属性に影響を与える可能性 があります。詳細については、IBMマニュアルの『Data Description Specifications』を参照 してください。検討する必要のあるキーワードは、COLOR、DSPATRです。
定義するフィールドに適用するデフォルト値を指定します。
これは、ファンクションの実行開始時のフィールド値です。フィールドのデフォルト値は、EXCHANGEコマンドで変更できます。
RDMLXフィールドにおけるDEFAULT(*DEFAULT)の意味については、「フィールド・タイ プ」を参照してください。
デフォルト値を指定しない場合、*DEFAULTが使用されます。すなわち、REFFLDパラメータが指定されている場合は、REFFLDフィールドのデ フォルト値が使用されます。REFFLDパラメータを使用しない場合は、英数字フィールドに対してはデフォルト値*BLANKSが、また数値フィールドに 対してはデフォルト値*ZEROが使用されます。
指定できるデフォルト値は以下のとおりです。
· *BLANKS、 *ZERO、*DATEなどのシステム変数、またはユーザーがインストール時に明示的に定義したその他の変数
· BALMAIN などの英数字リテラル
· 1、 10.43、-1.341217などの数値リテラル
· *UP01 などのプロセス・パラメータ
· *SQLNULL は、入力属性または出力属性としてASQNが設定されている任意のフィールド・タイプの属性値として使用可
· *NULL は、任意のフィールド・タイプのデフォルト値として使用可(区画がRDMLXに対応している場合)
· Boolean の有効なデフォルトまたは値は*ZERO、0、または1のみ
定義するフィールドで、このパラメータで参照するフィールド全体またはその一部をオーバーレイする(すなわち、同じ記憶域の場所を占有する)よう指定しま す。
RDMLXフィールドのオーバーレイや、RDMLXフィールドによる別フィールドのオーバーレイは無効です。
デフォルト値*NONEを指定した場合、定義するフィールドは、そのフィールド専用の記憶域を占有し、他のフィールドをオーバーレイしません。
*NONE以外にこのパラメータで指定できる値は、このプログラムまたはデータ・ディクショナリで定義されている別のフィールドの名前のみです。この場 合、開始位置を指定することもできます。
TO_OVERLAYパラメータは、フィールドが別のフィールドと同じ記憶域(すなわち、メモリー内の場所)を占有することのできる強力な機能です。この パラメータが強力だからこそ、その使用により、どのような処理が行われ、どのような問題が生じる可能性があるかを正確に理解しておく必要があります。
このパラメータを使用する前に、以下の注意事項およびコメントに十分目を通しておいてください。
· フィー ルドで、別のフィールドをオーバーレイしているフィールドをオーバーレイしないでく ださい。 これは全構文検査で検査されないため、コンパイル・エラーが生じる可能性があります。
· さ まざまなタイプのフィールドをオーバーレイする前に、System iの文字、符号付き/ゾーン10進数、パック10進数と いったデータ記憶域形式について十分に理解しておいてください。フィールドをオーバーレイすると、無効な10進数データが10進数フィールドに配置される 可能性があり、これによって予期しない形でプログラムがエラーになる場合があります。
· (い かなる状況でも)配列インデックス・フィールドで他のフィールドをオーバーレイしたり、配列インデックス・フィールドを他のフィールドでオーバーレイした りしないでください。
· こ
のパラメータの開始位置コンポーネントを使用すると、フィールド全体ではなく、特定フィールドの一部のみをオーバーレイできます。開始位置は、パック10
進数フィールドを使用する場合も、1バイト単位の位置です。開始位置を指定する際は、オーバーレイされるフィールドの終了位置を超えてフィールドをオー
バーレイしないようにし
てください。
これは、全構文検査で検査さ
れません。この規則に従わないと、危険な結果または予期しない結
果になる可能性があります。
· 偶 数の長さのパック10進数フィールドで別のフィールドをオーバーレイできますが、RPGコンパイラでは常に、オーバーレイするフィールドが、1桁多い奇数 の長さとして解釈されます。例:
DEFINE FIELD(#DEC6) TYPE(*DEC) LENGTH(6) DECIMALS(0)
DEFINE FIELD(#OVR6) TYPE(*DEC) LENGTH(6) DECIMALS(0) TO_OVERLAY(#DEC6)
この場合、RPGコンパイラでは、#DEC6がパック10進数 (6,0)値として扱われ、#OVR6はパック10進数(7,0)値として扱われます。どちらのフィールドも保管に必要なメモリー容量は4バイトで、メモ リーの長さに関する問題は生じません。RPGコンパイラの動作が問題になるのは、レポート上に表示する際です。ただし、#OVR6を*OUTPUTのみで 画面に表示すると、ファンクションのコンパイルがクラッシュします。これは、表示ファイルでの#OVR6の外部記述では、6桁のパック10進数として定義 されているのに対し、上記のようにオーバーレイを指定すると、RPGコンパイラが#OVR6を7桁のパック10進数と見なすためです。
· オー
バーレイするフィールドに対してデータ妥当性検査コマンドRANGECHECK、VALUECHECK、DATECHECK、CALLCHECK、
CONDCHECK、FILECHECKまたは、SET_ERRORを使用すると、オーバーレイされるフィールドに対してもエラーが設定されます。
例:
DEFINE FIELD(#INPUT) TYPE(*CHAR) LENGTH(3)
DEFINE FIELD(#INPC1) TYPE(*CHAR) LENGTH(1) TO_OVERLAY(#INPUT 1)
DEFINE FIELD(#INPC3) TYPE(*CHAR) LENGTH(1) TO_OVERLAY(#INPUT 3)
REQUEST FIELDS(#INPUT)
BEGINCHECK
VALUECHECK FIELD(#INPC1) WITH_LIST('A' 'B' 'C')
VALUECHECK FIELD(#INPC3) WITH_LIST('X' 'Y' 'Z')
ENDCHECK
このプログラムは、ワークステーションから3文字のフィールド(#INPUT)を受け入れ、最初の文字がA、B、またはCのいずれかで、最後の文字がX、 Y、またはZのいずれかであるかどうかを検査します。
VALUECHECKコマンドによって、オーバーレイされるフィールド#INPC1または#INPC3に対してエラーがトリガーされると、オーバーレイさ れるフィールド#INPUTに対してもエラーがトリガーされます。すなわち、エラーのある状態でREQUESTコマンドが(再)実行されると、フィールド #INPUTは反転表示されます。
定義するフィールドに割り当てるキーボード・シフトを指定します。キーボード・シフトを指定しない場合は、値*DEFAULTが使用されます。
*DEFAULTを指定すると、REFFLDパラメータを使用している場合は、REFFLDフィールドのキーボード・シフトが使用されます。それ以外の場 合、そのフィールドに対してキーボード・シフトは使用されません。
*DEFAULT以外に、各作業フィールド・タイプで有効なSHIFTの値については、「フィールド・タイ プ」を参照してください。
タイプBooleanの作業フィールドの場合、SHIFTは*DEFAULTである必要があります。
詳細については、IBMマニュアルの『Data Description Specifications』を参照 してください。参照する場所は、表示ファイルの35桁目の項目です。