AD - 属性定義

このセッションパラメータで、フィールド/エレメントレベルまたはステートメントレベルでフィールド属性を指定します。

関連するセッションパラメータ:CD - カラー定義

可能な設定 下記の「AD パラメータの構文」を参照してください。 複数の属性を任意の順序で指定できます。
デフォルト設定 下記を参照してください。  
適用可能なステートメント FORMAT  

DISPLAY
INPUT
NEWPAGE WITH TITLE
PRINT
REINPUT
WRITE
WRITE TITLE
WRITE TRAILER

パラメータはステートメントレベルでもエレメントレベルでも指定できます。

ASSIGN
CALLNAT
CALLDBPROC
COMPUTE
MOVE
PERFORM
SEND METHOD

パラメータはエレメントレベルで指定できます。ただし、使用できるのは、関連ステートメント記述に指定された属性のみです。
適用可能なコマンド なし

注意:
AD パラメータはファンクションコールでも指定できます。ただし、使用できるのは、「ファンクションコール」セクション(『プログラミングガイド』)で指定されている属性のみです。

以下では次のトピックについて説明します。


AD パラメータの構文

AD=[field-representation] [field-alignment] [field-i/o-characteristics] [interpretation-of-alphanumeric-fields] [mandatory-input] [input-value-length] [field-upper/lower-case] [filler-character]

複数の属性を任意の順序で指定できます。可能な値は次のとおりです。

AD=

B
C
D
I
N
U
V
Y

 

L
R
Z

 

A
M
O
P

 

E
F

 

G
H

 

T
W

 

'c'

属性および有効な値の意味を次に説明します。

例:

DISPLAY #FIELDA (AD=R) 
INPUT #FIELDB (AD=M) 
INPUT (AD=IM) #FIELDA #FIELDB

フィールド表現

Value 意味 ステートメント 説明
B 点滅(*)

ASSIGN
COMPUTE
MOVE
DISPLAY
FORMAT
INPUT
PRINT
REINPUT
WRITE

フィールドの値は点滅(ブリンク)して表示されます。
C 手書き/斜体(*) フィールドの値はイタリックで表示されます。
D デフォルトの輝度 フィールドの値は標準輝度で表示されます(つまり、強調表示されない)。これはデフォルト値です。
I 高輝度 フィールドの値は高輝度で表示されます。
N 非表示 フィールドに入力した値は表示されません。
U 下線付き フィールドの値は下線付きで表示されます。
V 反転表示(*) フィールドの値は反転して表示されます。
Y ダイナミック属性

INPUT
DISPLAY
PRINT
WRITE

属性制御変数(フォーマット C)を使用して属性を制御することを示します。

* アスタリスク(*)の付いたフィールド表現属性では対応するハードウェア機能が必要です。これらの機能がないと、ランタイムに無視されます。

フィールド揃え

Value 意味 ステートメント 説明
L 左詰め

DISPLAY
FORMAT
INPUT
PRINT
REINPUT
WRITE

フィールドの値は左詰めで表示されます。英数字フィールドのデフォルト値です。
R 右詰め フィールドの値は右詰めで表示されます。数値フィールドのデフォルト値です。
Z 先頭のゼロ 数値は先頭にゼロを付けて右詰めで表示されます。

フィールド入力/出力特性

Value 意味 ステートメント 説明
A 入力フィールド、非保護

INPUT
FORMAT

INPUT ステートメントに対応してフィールドの値を入力します。これはデフォルト値です。
入力のみ

CALLNAT
CALLDBPROC
PERFORM
SEND METHOD
ファンクションコール

AD=A でパラメータをマークすると、その値は呼び出し先オブジェクト(サブプログラム、ストアドプロシージャ、サブルーチン、ダイアログ、メソッド)に渡されませんが、呼び出し先オブジェクトからの値を受け取ります。

呼び出し先オブジェクトのパラメータデータエリアに BY VALUE で定義されたフィールドの場合、呼び出し元オブジェクトは値を受け取ることができません。この場合、AD=A では、オブジェクトが呼び出される前に、フィールドを個々のフォーマットの低い値(英数字には空白、バイナリにはバイナリゼロ、および数値フィールドにはゼロ)にリセットするだけです。

CALLNAT の場合、AD=A は、クライアント/サーバー環境で Natural RPC 経由で実行されたリモートサブプログラムにおいて、送信されたデータの負荷を軽減するために役立つことがあります。サブプログラムがローカルに実行される場合、AD=A フィールドは、オブジェクトが呼び出される前に、個々のフォーマットの低い値にリセットされます。

SEND METHOD の場合、メソッドは Natural に実装されず、動作はメソッド実装に応じて異なります。そして、パラメータは初期化された変形として渡されます。外部コンポーネントが値を返すことができるかどうかは、外部コンポーネントのドキュメントに記載されています。Natural コンポーネントブラウザでも表示できます。

M 出力フィールド、変更可能

INPUT
FORMAT

フィールドの値は INPUT ステートメントの実行中に表示され、ユーザーはこの値を変更できます。フィールドは変更可能な出力フィールドです。
変更可能

CALLNAT
CALLDBPROC
PERFORM
SEND METHOD
ファンクションコール

デフォルトでは、パラメータの渡された値は呼び出し先オブジェクト(サブプログラム、ストアドプロシージャ、サブルーチン、ダイアログ、メソッド)で変更できます。また、変更した値を呼び出し元オブジェクトに戻すことができます。ここで元の値を上書きします。

呼び出し先オブジェクトのパラメータデータエリアに BY VALUE で定義されたフィールドの場合、値は戻されません。

SEND METHOD の場合、メソッドは Natural に実装されず、動作はメソッド実装に応じて異なります。そして、パラメータは BY REFERENCE で渡されます。外部コンポーネントが参照パラメータごとに受け入れるのか値パラメータごとに受け入れるのかについては、外部コンポーネントのドキュメントを参照してください。Natural コンポーネントブラウザでも表示できます。

O 出力フィールド、書き込み保護

INPUT
FORMAT

フィールドの値は INPUT ステートメントの実行中に表示されます。フィールドは変更不可の出力フィールドです。
変更不可

CALLNAT
CALLDBPROC
PERFORM
SEND METHOD
ファンクションコール

AD=O でパラメータをマークした場合、渡された値は呼び出し先オブジェクト(サブプログラム、ストアドプロシージャ、サブルーチン、ダイアログ、メソッド)で変更できますが、変更した値を呼び出し元オブジェクトに戻すことはできません。つまり、呼び出し元オブジェクトのフィールドには元の値が維持されます。

内部的に、AD=O は値による呼び出しと同じ方法で処理されます(DEFINE DATA ステートメントの説明の「パラメータデータ定義」セクションにある「BY VALUE」を参照)。

SEND METHOD では、メソッドが Natural で実装される場合、パラメータは、メソッドのパラメータデータエリアに BY VALUE で定義されたように処理されます(INTERFACE ステートメントの説明の「PARAMETER 節」を参照)。

SEND METHOD の場合、メソッドは Natural に実装されず、動作はメソッド実装に応じて異なります。そして、パラメータは BY VALUE で渡されます。外部コンポーネントがコールを参照パラメータごとに受け入れるのか値パラメータごとに受け入れるのかについては、外部コンポーネントのドキュメントを参照してください。Natural コンポーネントブラウザでも表示できます。

P 一時保護

INPUT
REINPUT

属性制御変数(フォーマット C)、DY パラメータ(ダイナミック属性)、REINPUT ステートメントとともに使用します。

注意:
AD パラメータのフィールド入出力特性 AM、および O は、ファンクションコールでも指定できます。

英数字フィールドの解釈

Value 意味 ステートメント 説明
Q 英数字フィールドを数値フィールドのように表示します。

ASSIGN
COMPUTE
MOVE
DISPLAY
FORMAT
INPUT
PRINT
REINPUT
WRITE

この属性はメインフレームコンピュータでのみ利用可能です。対応するハードウェア機能が必要です。

英数字フィールドは、数値フィールドのように解釈されます。フィールドがプロファイルパラメータまたはセッションパラメータ PM=I の範囲内で表示された場合、フィールドの値は、右から左へではなく、左から右へ解釈されます。

必須入力

Value 意味 ステートメント 説明
E 必須入力

INPUT
FORMAT

INPUT ステートメントに対応してフィールドに値を入力する必要があります。入力がない場合、エラーメッセージが発行されます。これは入力専用フィールド(AD=A)のみに関連しています。
F 任意入力

INPUT
FORMAT

INPUT ステートメントに対応してフィールドに値を入力できます。ただし、入力しなくてもかまいません。これはデフォルト値です。

入力値の長さ

Value 意味 ステートメント 説明
G 値のサイズ

INPUT
FORMAT

INPUT ステートメントに対応して入力する値は、フィールド長と同じにする必要があります。これは入力専用フィールド(AD=A)のみに関連しています。
H 値のサイズ

INPUT
FORMAT

INPUT ステートメントに対応して入力する値は、フィールド長より短くてもかまいません。これはデフォルト値です。

フィールド大文字/小文字特性

Value 意味 ステートメント 説明
T 小文字から大文字への変換

INPUT
FORMAT

入力値は大文字に変換されます。
W 小文字可

INPUT
FORMAT

小文字の値を入力できます。AD=W はデフォルト値です。

注意:
AD=W を有効にするには、Natural プロファイルパラメータ LC に値 ON を指定する必要があります。

充填文字

Value 意味 ステートメント 説明
'c' 充填文字

INPUT
FORMAT

AD=A(入力フィールド、非保護)または AD=M(出力フィールド、変更可能)が指定されている場合、空フィールドに文字 c が充填されます(表示のみ)。

値が変更可能フィールド(AD=M)に表示される前に、値で占有されていないフィールド位置は、次のように特定の充填文字で充填されます。

  • フォーマット I、N、および P フィールドの場合、先頭位置または末尾位置(フィールド揃えに基づく)が充填されます。

  • フォーマット A フィールドの場合、末尾位置が充填されます。

ユーザーが INPUT ステートメントに対応して値を入力すると、値がフィールドに割り当てられる前に、次のようになります。

  • フォーマット I、N、および P フィールドの場合は先頭および末尾の充填文字の両方が削除されます。

  • フォーマット A フィールドの場合は末尾の充填文字が削除されます。

注意:
先頭位置または末尾位置の値の一部として存在する可能性のある充填文字は、予期しない結果が生じないように避ける必要があります。例えば、充填文字 "0"(ゼロ)をフォーマット N5 のフィールドに定義し、値 00100 を入力データとして入力した場合、先頭のゼロと末尾のゼロが削除され、残った値 1 のみがフィールドに割り当てられるようになります。同様の理由で、マイナス記号 "-" を数値フィールドの充填文字として使用することは避ける必要があります(負の値が入力されるため)。