7.74.1 OVERRIDEのパラメータ

LANSA

7.74.1 OVERRIDEのパラメータ


COLHDG

DECIMALS

DEFAULT

DESC

EDIT_CODE

EDIT_WORD

FIELD

INPUT_ATR

LABEL

LENGTH

OUTPUT_ATR

SHIFT

TO_OVERLAY

FIELD

上書きするフィールドの名前を指定します。フィールド名は、先頭文字が#でなければなりません。また、LANSAデータ・ディクショナリに定義されていなければなりません。

LENGTH

上書き後のフィールド長を指定します。値*SAMEを指定した場合、フィールド長は上書きされません。許容されるフィールド長の詳細については、「フィールド・タイプ」を参照してください。

タイプ

Lengthパラメータに関する注意事項

*DECまたは同義の*PACKED

フィールドがRDMLフィールドの場合、フィールド長を31桁以上に変更すると、作業フィールドがRDMLXフィールドになります。

*SIGNED

フィールドがRDMLフィールドの場合、フィールド長を31桁以上に変更すると、作業フィールドがRDMLXフィールドになります。

*DATE

日付は固定サイズ(常に10桁)です。

桁数の増減は*NONEでなければなりません。

増減桁数は*NONEでなければなりません。

*TIME

時刻は固定サイズ(常に8桁)です。

桁数の増減は*NONEでなければなりません。

増減桁数は*NONEでなければなりません。

*DATETIME

19、21〜29

長さによって、秒の小数部の桁数は異なってきます。これについて明確にしておく必要があります。長さ19桁は、秒の小数部がないことを意味し、21〜29桁は、秒の小数部の桁数が1〜9桁であることを意味します。DECIMALSパラメータの影響は受けません。

桁数の増減は*NONEでなければなりません。

増減桁数は*NONEでなければなりません。

「桁数の増減」値は、LENGTHパラメータで*SAMEと組み合わせて使用されます。このフィールドの目的は、フィールド長を特定量だけ増減できるようにすることです。指定できる値は、*PLUS、*MINUS、および*NONEです。

·         *PLUSを指定した場合、フィールド長属性の値が増加します。

·         *MINUSを指定した場合、フィールド長属性の値が減少します。

·         *NONEを指定した場合、フィールド長属性の値は変わりません。

「増減桁数」値は、LENGTHパラメータで*SAME値と組み合わせて使用され、「桁数の増減」値に直接関係しています。このフィールドの目的は、フィールド長の値を増加または減少させる増分値または減分値を指定することです。このフィールドには、数値または値*NONEを指定できます。

注:

リリース4PC E2までのLANSAでは、最大15桁の数値フィールドがサポートされていました。PC E2より、30桁の数値フィールドがサポートされるようになりました。このコマンドを使用して、長さが15桁以下のフィールド長を16桁以上で上書きする場合は、下位互換性を保つために、FUNCTIONコマンドのOPTIONSパラメータで*DBOPTIMISEを指定してください。

同様に、*DBOPTIMISEを指定せずに、15桁以上のフィールド長を15桁未満で上書きしないでください。この制限は、さらに長いフィールドがサポートされるようになったときに、既存のI/Oモジュールでは8バイト・フィールドと16バイト・フィールド間の変換を処理できないという事実に基づいています。

DECIMALS

上書き後のフィールドの小数点以下桁数を指定します。値*SAMEを指定した場合、小数点以下桁数は上書きされません。それ以外の場合は、0〜63の値を指定してください。

「桁数の増減」値は、DECIMALSパラメータで*SAMEと組み合わせて使用されます。このフィールドの目的は、小数点以下桁数を指定量だけ増減できるようにすることです。指定できる値は、*PLUS、*MINUS、および*NONEです。*PLUSを指定した場合、フィールドの小数点以下桁数属性の値が増加します。*MINUSの場合は、フィールドの小数点以下桁数属性の値が減少します。*NONEを指定した場合、フィールドの小数点以下桁数属性の値は変わりません。

「増減桁数」値は、小数点以下桁数パラメータで*SAME値と組み合わせて使用され、「桁数の増減」値に直接関係しています。このフィールドの目的は、フィールドの小数点以下桁数の値を増加または減少させる増分値または減分値を指定することです。このフィールドには、数値または値*NONEを指定できます。

LABEL

このフィールドに割り当てる15文字のラベルを指定します。*SAMEを指定した場合、ラベルは上書きされません。それ以外の場合は、上書き後のラベルを引用符で囲んで指定してください。

DESC

このフィールドに割り当てる40文字の記述を指定します。*SAMEを指定した場合、フィールド記述は上書きされません。それ以外の場合は、上書き後の記述を引用符で囲んで指定してください。

COLHDG

このフィールドに割り当てる3×20文字の欄見出しを指定します。*SAMEを指定した場合、欄見出しは上書きされません。それ以外の場合は、必要な上書き後の欄見出しを引用符で囲んで指定してください。

EDIT_CODE

数値フィールドに対してフィールド編集コードを指定します。*SAMEを指定した場合、フィールド編集コードは上書きされません。それ以外の場合は、上書き後の編集コードとして、以下のリストのいずれかを指定してください。

タイプInteger、Signed、またはPackedのフィールドには、編集コードまたは編集語を指定できます。あるいは、どちらも*SAMEのままにすることもできます。ただし、Integerタイプのフィールドには編集コードWおよびYを使用できません。その他すべてのフィールド・タイプの場合は、EDIT_CODE(*SAME) EDIT_WORD(*SAME)でなければなりません。

LANSAでサポートされる編集コードについては、「標準フィールド編集コード」を参照してください。

EDIT_WORD

フィールドに割り当てる上書き後の編集語を指定します。*SAMEを指定した場合、編集語は上書きされません。それ以外の場合は、必要に応じて上書き後の編集語を指定してください。

LANSAが実行する妥当性検査は単純なため、編集語の使用は経験のあるユーザーに限るべきです。

タイプInteger、Signed、またはPackedのフィールドには、編集コードまたは編集語を指定できます。あるいは、どちらも*SAMEのままにすることもできます。その他すべてのフィールド・タイプの場合は、EDIT_CODE(*SAME) EDIT_WORD(*SAME)でなければなりません。

フィールド長を上書きし、EDIT_WORD(*SAME)を使用すると、データ・ディクショナリに関連付けられた編集語が使用されることに注意してください。ただし、使用するフィールド長または小数点以下桁数がデータ・ディクショナリの定義と異なる場合は、関連付けられた編集語が無効になる可能性があります。このような場合、編集語も上書きする必要があります。

また、オペレーティング・システムによる浮動通貨記号を含む編集語の処理が、画面パネル上とレポート上とで異なることに注意してください。このような場合、レポートの生成用に、別のフィールド(または「仮想」フィールド)を使用することをお勧めします。

編集語がLANSAでRDMLコマンド言語により定義されている場合は、その編集語を単一引用符ではなく三重引用符で囲んでください。

例えば:

末尾に%が必要な5,2の数値フィールドの場合、編集語を上書きする正しい方法は以下のとおりです。

OVERRIDE FIELD(#INCREASE) TYPE(#DEC) LENGTH(5) DECIMALS(2)
         LABEL('Sales Increase') EDIT_WORD('''   .  %''')
 

以下は、末尾に%が必要な5,2の数値フィールドの編集語を上書きする方法として正しくありません

OVERRIDE FIELD(#INCREASE) TYPE(#DEC) LENGTH(5) DECIMALS(2)
         LABEL('Sales Increase') EDIT_WORD('   .  %')
 

詳細については、IBMマニュアルの『Data Description Specifications』を参照してください。キーワードEDTWRDを参照してください。

INPUT_ATR

必要な入力属性の上書き値を指定します。*SAMEを指定した場合、入力属性の上書き値は不要です。

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です。

OUTPUT_ATR

必要な出力属性の上書き値を指定します。*SAMEを指定した場合、出力属性の上書き値は不要です。それ以外の場合は、以下のリストのうち必要な出力属性の上書き値を指定してください。

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アプリケーション設計ガイド』「OS/400のSAA/CUAインプリメンテーション」を参照してください。また、1つのフィールドに指定できる色は1つのみであることに注意してください。複数の色を使用すると、他の属性に影響を与える可能性があります。詳細については、IBMマニュアルの『Data Description Specifications』を参照してください。検討する必要のあるキーワードは、COLOR、DSPATRです。

DEFAULT

フィールドに適用するデフォルト値を指定します。*SAMEを指定した場合、フィールドのデフォルト値の上書き値は不要です。それ以外の場合は、フィールドに適用する上書き後のデフォルト値を指定してください。

RDMLXフィールドにおけるDEFAULT(*DEFAULT)の意味については、「フィールド・タイプ」を参照してください。

指定できるデフォルト値は以下のとおりです。

·         *BLANKS、*ZERO、*DATEなどのシステム変数、またはユーザーがインストール時に明示的に定義したその他の変数

·         BALMAINなどの英数字リテラル

·         1、10.43、-1.341217などの数字リテラル

·         *UP01などのプロセス・パラメータ

·         #ORDNUMなどの別のフィールド名

TO_OVERLAY

上書きするフィールドで、このパラメータで参照するフィールド全体またはその一部をオーバーレイする(すなわち、同じ記憶域の場所を占有する)よう指定します。

RDMLXフィールドのオーバーレイや、RDMLXフィールドによる別フィールドのオーバーレイは無効です。

デフォルト値*NONEを指定した場合、フィールドは、そのフィールド専用の記憶域を占有し、他のフィールドをオーバーレイしません。

*NONE以外にこのパラメータで指定できる値は、このプログラムまたはデータ・ディクショナリで定義されている別のフィールドの名前のみです。この場合、開始位置を指定することもできます。

TO_OVERLAYパラメータは、フィールドが別のフィールドと同じ記憶域(すなわち、メモリー内の場所)を占有することのできる強力な機能です。このパラメータが強力だからこそ、その使用により、どのような処理が行われ、どのような問題が生じる可能性があるかを正確に理解しておく必要があります。

このパラメータを使用する前に、以下の注意事項およびコメントに十分目を通しておいてください。

·         フィールドで、別のフィールドをオーバーレイしているフィールドをオーバーレイしないでください。これは全構文検査で検査されないため、コンパイル・エラーが生じる可能性があります。

·         さまざまなタイプのフィールドをオーバーレイする前に、System iの文字符号付き/ゾーン10進数パック10進数といったデータ記憶域形式について十分に理解しておいてください。フィールドをオーバーレイすると、無効な10進数データが10進数フィールドに配置される可能性があり、これによって予期しない形でプログラムがエラーになる場合があります。

·         このパラメータの開始位置コンポーネントを使用すると、フィールド全体ではなく、特定フィールドの一部のみをオーバーレイできます。開始位置は、パック10進数フィールドを使用する場合も、1バイト単位の位置です。開始位置を指定する際は、オーバーレイされるフィールドの終了位置を超えてフィールドをオーバーレイしないようにしてください

これは、全構文検査で検査されません。この規則に従わないと、危険な結果または予期しない結果になる可能性があります。

·         (いかなる状況でも)配列索引フィールドで他のフィールドをオーバーレイしたり、配列索引フィールドを他のフィールドでオーバーレイしたりしないでください。

·         偶数の長さのパック10進数フィールドで別のフィールドをオーバーレイできますが、RPGコンパイラでは常に、オーバーレイするフィールドが、1桁多い奇数の長さとして解釈されます。例えば、データ・ディクショナリに、#DEC6および#OVR6という、長さ6.0のパック10進数(タイプP)フィールドが保持されている場合、以下のコマンドにより、#DEC6はRPGコンパイラでパック10進数(6,0)値として扱われます。

         OVERRIDE FIELD(#OVR6) TO_OVERLAY(#DEC6)
 

      一方、#OVR6はRPGコンパイラでパック10進数(7,0)値として扱われます。どちらのフィールドも保管に必要なメモリー容量は4バイトで、メモリーの長さに関する問題は生じません。RPGコンパイラの動作が問題になるのは、レポート上に表示する際です。

·         オーバーレイするフィールドに対してデータ妥当性検査コマンドRANGECHECK、VALUECHECK、DATECHECK、CALLCHECK、CONDCHECK、FILECHECKまたは、SET_ERRORを使用すると、オーバーレイされるフィールドに対してもエラーが設定されます。例えば、データ・ディクショナリに、フィールド#INPUT (長さ3文字)、#INPC1 (長さ1文字)、および#INPC3 (長さ1文字)が保持されている場合、以下のコードは、ワークステーションから3文字のフィールド(#INPUT)を受け入れ、最初の文字がA、B、またはCのいずれかであることと、最後の文字がX、Y、またはZのいずれかであることを検証します。

                  OVERRIDE FIELD(#INPC1) TO_OVERLAY(#INPUT 1)
                  OVERRIDE FIELD(#INPC3) 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
 

      VALUECHECKコマンドによって、オーバーレイされるフィールド#INPC1または#INPC3に対してエラーがトリガーされると、オーバーレイされるフィールド#INPUTに対してもエラーがトリガーされます。すなわち、エラーのある状態でREQUESTコマンドが(再)実行されると、フィールド#INPUTは反転表示されます。

·         以下の例のように、すべてのプログラムで繰り返しフィールドをオーバーレイ位置に上書きしている場合は、以下の事柄を考慮してください。

                  OVERRIDE FIELD(#COMPANY) TO_OVERLAY(#ACCOUNT 1)
                  OVERRIDE FIELD(#DEPTMENT) TO_OVERLAY(#ACCOUNT 4)
                  OVERRIDE FIELD(#SECTION) TO_OVERLAY(#ACCOUNT 6)
                  OVERRIDE FIELD(#SUBACC) TO_OVERLAY(#ACCOUNT 7)
 

·         設計全体の基礎となっているデータ・モデルやファンクション・モデルに問題がある可能性が疑われます。明らかに、会社、部門、部署、および「サブアカウント」番号という4つの独立した「要素」がありますが、これらを「アカウント」という1つのフィールドに集約しているのはなぜせしょうか?この操作は本当に必要でしょうか?単に前例に倣っているだけなのでしょうか?他の方法はないのでしょうか?十分な検討と調査がなされた結果なのでしょうか?エンド・ユーザーにとって、このシステムは新たな観点をもたらし、わかりやすいものになっているでしょうか?

·         この構造を実装する場合は、オーバーレイ・ロジックを「仮想フィールド」領域に移動する必要があるでしょう。これにより、このロジックが集中管理され、プログラマがロジックの保守をすべてのプログラムで繰り返す必要がなくなります。

SHIFT

既存のキーボード・シフトを上書きするためのキーボード・シフトを指定します。キーボード・シフトを指定しない場合は、値*SAMEが使用されます。

*DEFAULT以外に、各作業フィールド・タイプで有効なSHIFTの値については、「フィールド・タイプ」を参照してください。

タイプBooleanの作業フィールドの場合、SHIFTは*DEFAULTである必要があります。

*SAMEを指定した場合、キーボード・シフトは上書きされません。

詳細については、IBMマニュアルの『Data Description Specifications』を参照してください。参照する場所は、表示ファイルの35桁目の項目です。