検証プロパティー

検証プロパティーは、ユーザーがテキスト書式にデータを入力する場合に受け入れられる内容を制限します。

プロパティーには、次のものがあります。

fill

fill プロパティーは、ユーザーが各フィールド位置にデータを入力する必要があるかどうかを示します。有効な値は no (デフォルト) と yes です。

inputRequired

inputRequired プロパティーは、ユーザーがフィールドにデータを配置する必要があるかどうかを指示します。 有効な値は no (デフォルト) と yes です。

プロパティー値が yes の場合にユーザーがフィールドにデータを配置しないと、EGL ランタイムは、フィールド・プロパティー inputRequiredMsgKey に関連して記述されたメッセージを表示します。

inputRequiredMsgKey

inputRequiredMsgKey プロパティーは、フィールド・プロパティー inputRequiredyes に設定されており、ユーザーがフィールドにデータを配置しない場合に表示されるメッセージを示します。

メッセージ・テーブル (メッセージを含むデータ・テーブル) は、プログラム・プロパティー msgTablePrefix に示されます。データ・テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

inputRequiredMsgKey の値は、メッセージ・テーブルの最初の列のエントリーに一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

isDecimalDigit

isDecimalDigit プロパティーは、入力値が次のような 10 進数のみを含むことを、チェックするかどうか決定します。
  0123456789

有効な値は no (デフォルト) と yes です。

このプロパティーは、文字フィールドにのみ適用されます。

isHexDigit

isHexDigit プロパティーは、入力値が次のような 16 進数文字のみを含むことを、チェックするかどうか決定します。
  0123456789abcdefABCDEF

有効な値は no (デフォルト) と yes です。

このプロパティーは、文字フィールドにのみ適用されます。

minimumInput

minimumInput プロパティーは、ユーザーがフィールドにデータを配置する場合に、フィールドに配置する必要のある文字の最小数を指示します。デフォルトは 0 です。

ユーザーが配置した文字が最小文字数より少ない場合、EGL ランタイムは、フィールド・プロパティー minimumInputMsgKey に関連して記述されたメッセージを表示します。

minimumInputMsgKey

minimumInputMsgKey プロパティーは、ユーザーが以下の操作を行った場合に表示するメッセージを示します。
  • フィールドにデータを配置し、
  • プロパティー minimumInputRequired に指定された値より少ない文字を配置した場合。

メッセージ・テーブル (メッセージを含むテーブル) は、プログラム・プロパティー msgTablePrefix に示されます。テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

minimumInputMsgKey の値は、メッセージ・テーブルの最初の列のエントリーに一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

needsSOSI

needsSOSI プロパティーは、 マルチバイト・フィールド (MBCHAR 型のフィールド) のみに使用され、ユーザーが ASCII デバイスで MBCHAR 型のデータを入力した場合に特別な検査を行うかどうかを指定します。有効な値は yes (デフォルト) と no です。 チェックでは、入力をホスト SO/SI 形式に正しく変換できるかが判別されます。

このプロパティーは、変換中、マルチバイト・ストリングの最後から末尾ブランクを削除して、2 バイト文字の各サブストリングの間に SO/SI 区切り文字を挿入できるため、役立ちます。正しく変換を行うため、書式フィールドにはマルチバイト値の 2 バイト・ストリングごとに少なくとも 2 つのブランクが必要です。

needsSOSIno に設定した場合、ユーザーによる入力フィールドの入力が可能であり、この場合、変換により警告が出ずにデータが切り捨てられます。

needsSOSIyes に設定すると、ユーザーがマルチバイト・データを入力した場合の結果は、次のようになります。
  • 十分なブランクがある場合には、値はそのまま受け入れられる。または、
  • 値が切り捨てられ、ユーザーに警告メッセージが出される。

ユーザーによるマルチバイト・マルチバイトの ASCII 入力を z/OS® または iSeries™ システムで使用する場合は、needsSOSIyes に設定します。

typeChkMsgKey

typeChkMsgKey プロパティーは、入力データがフィールド・タイプに適さない場合に表示されるメッセージを示します。

メッセージ・テーブル (メッセージを含むテーブル) は、プログラム・プロパティー msgTablePrefix に示されます。テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

typeChkMsgKey の値は、メッセージ・テーブルの最初の列のエントリーに一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

validatorDataTable

validatorDataTable プロパティー (以前の validatorTable プロパティー) は、ユーザー入力との比較の基本となる dataTable パーツ validator table を示します。バリデーター・テーブルは、EGL ランタイムが基本検証チェックを行った後で使用されます (存在する場合)。この基本チェックは、以下のプロパティーと関連して記述されます。
  • inputRequired
  • isDecimalDigit
  • isHexDigit
  • minimumInput
  • needsSOSI
  • validValues

チェックはすべて、値間の検証を行う検証関数を指定する validatorFunction プロパティーを使用する前に行われます。

EGL ソース形式の DataTable パーツ』に記載された、以下のいずれかのタイプのバリデーター・テーブルを指定できます。
matchInvalidTable
ユーザーの入力が、データ・テーブルの最初の列のいずれかの値と異なる必要があることを示します。
matchValidTable
ユーザーの入力が、データ・テーブルの最初の列の値に一致する必要があることを示します。
rangeChkTable
ユーザーの入力が、少なくとも 1 つのデータ・テーブル行の最初の列と 2 番目の列の値の間の値に一致する必要があることを示します。(範囲は包括的です。ユーザーの入力は、行の最初の列または 2 番目の値に一致した場合も有効です。)

検証が失敗した場合、プロパティー validatorDataTableMsgKey の値に基づくメッセージが表示されます。

validatorDataTableMsgKey

validatorDataTableMsgKey プロパティー (以前の validatorTableMsgKey プロパティー) は、プロパティー validatorDataTable で指定されたテーブルであるバリデーター・テーブル の要件に合わないデータをユーザーが入力した場合に表示されるメッセージを示します。

メッセージ・テーブル (メッセージを含むテーブル) は、プログラム・プロパティー msgTablePrefix に示されます。メッセージ・テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

validatorDataTableMsgKey の値は、メッセージ・テーブルの最初の列のエントリーと一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

validatorFunction

validatorFunction プロパティー (以前の validator プロパティー) は、EGL ランタイムが基本検証チェックを行った後で実行されるロジックであるバリデーター関数 (存在する場合) を指定します。このチェックは、以下のプロパティーと関連して記述されます。
  • inputRequired
  • isDecimalDigit
  • isHexDigit
  • minimumInput
  • needsSOSI
  • validValues

(validatorDataTable プロパティーに関連して記述されているように) バリデーター・テーブルを使用する前に基本チェックが行われ、validatorFunction プロパティーを使用する前にすべてのチェックが行われます。このイベント順序は、バリデーター関数でフィールド間のチェックが可能であり、このようなチェックでは有効なフィールド値を必要とするため、重要です。

validatorFunction の値は、作成したバリデーター関数です。 この関数は、エラーを検出した場合、ConverseLib.validationFailed を呼び出して書式の再表示を要求するように、パラメーターなしでコーディングしてください。

この 2 つのシステム関数の一方を指定すると検証が失敗する場合、プロパティー validatorFunctionMsgKey の値に基づくメッセージが表示されます。 ただし、独自のバリデーター関数を指定すると検証が失敗する場合、その関数は validatorFunctionMsgKey を使用するのではなく、ConverseLib.validationFailed を呼び出してメッセージを表示します。

validatorFunctionMsgKey

validatorFunctionMsgKey プロパティー (以前の validatorMsgKey プロパティー) は、次の場合に表示されるメッセージを示します。
  • validatorFunction プロパティーが、sysLib.verifyChkDigitMod10 または sysLib.verifyChkDigitMod11 の使用を指定し、
  • 指定された関数が、ユーザーの入力にエラーがあることを示した場合。

メッセージ・テーブル (メッセージを含むテーブル) は、プログラム・プロパティー msgTablePrefix に示されます。テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

validatorFunctionMsgKey の値は、メッセージ・テーブルの最初の列のエントリーと一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

validValues

validValues プロパティー (以前の range プロパティー) は、ユーザーが入力できる有効な一連の値を示します。このプロパティーは、数値フィールドまたは文字フィールドに使用されます。 プロパティーの形式は、次のとおりです。
  validValues = arrayLiteral
arrayLiteral
単一および 2 つの値のエレメントからなる配列リテラルで、次の例のようになります。
  validValues = [ [1,3], 5, 12 ]
  validValues = [ "a", ["bbb", "i"]] 
各単一エレメントには、1 つの有効な値が含まれ、2 つの値の各エレメントには、以下のように範囲が含まれます。
  • 数値の場合、左端の値が有効な最下位の値で、右端の値が有効な最上位の値です。前述の例では、値 1、2、および 3 が INT 型のフィールドに有効です。
  • 文字フィールドでは、比較が可能な文字数である場合、ユーザー入力は値の範囲に照らして比較されます。 例えば、範囲 ["a", "c"] には、先頭文字が「a」、「b」、または「c」であるすべての入力データが (有効として) 含まれます。 照合シーケンスでは、ストリング「cat」は「c」より大きくなって いますが、「cat」は有効な入力データです。
    一般的な規則では、範囲内の最初の値は lowValue と呼ばれ、2 番目の値は highValue と呼ばれます。 以下のすべて のテストが実行された場合、ユーザーの入力データは有効です。
    • ユーザー入力が、lowValue または highValue に等しい。
    • ユーザー入力が lowValue より大きく、highValue より小さい。
    • 比較が可能であるかぎり、最初の一連の入力文字は、lowValue 内の最初の一連の文字と一致する。
    • 比較が可能であるかぎり、最初の一連の入力文字は、highValue 内の最初の一連の文字と一致する。
追加の例は、次のとおりです。
  // 有効な値は、1、2、3、5、7、9、および 11
  validValues = [[1, 3], 5, 7, 11]

  // 有効な値は、文字「a」および「z」
  validValues = ["a", "z"]

  // 有効な値は、「a」で始まる任意のストリング
  validValues = [["a", "a"]]

  // 有効な値は、小文字で始まる
  // 任意のストリング
validValues = [["a", "z"]]

ユーザー入力が指定された範囲外の場合、EGL ランタイムは、フィールド・プロパティー validValuesMsgKey に関連して記述されているように、メッセージを表示します。

validValuesMsgKey

validValuesMsgKey プロパティー (以前の rangeMsgKey プロパティー) は、フィールド・プロパティー validValues が設定されているときに、ユーザーが範囲外のデータをフィールドに配置した場合に表示されるメッセージを示します。

メッセージ・テーブル (メッセージを含むテーブル) は、プログラム・プロパティー msgTablePrefix に示されます。テーブル名についての詳細は、『EGL ソース形式の DataTable パーツ』を参照してください。

validValuesMsgKey の値は、メッセージ・テーブルの最初の列のエントリーと一致するストリングまたはリテラルです。

文字キーが想定されるメッセージ・テーブルで数字キーが使用された場合、数値は文字ストリングに変換されます。数字キーが想定されるメッセージ・テーブルで文字列リテラルが使用された場合、ストリング内の値は、符号付きまたは符号なし整数である必要があります。

このプロパティーは、数値フィールドにのみ適用されます。

関連する概念
テキスト書式

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.