独立したフィールドと同じように、データ構造またはそのサブフィールドの内容を表 示します。 内容全体を参照するために EVAL の後にデータ構造名を使用するか、 あるいはサブセットを参照するためにサブフィールド名を使用するだけです。
データ構造が修飾されている場合は、次の表記のいずれかを使用してサブフィールドを指定します。
EVAL subfield-name OF datastructure-name
EVAL datastructure-name.subfield-name:
例えば、修飾されたデータ構造 INFO のサブフィールド NAME を表示するには、以下のいずれかを入力します。
EVAL NAME OF INFO
EVAL NAME OF INFO EVAL INFO.NAME
複数回繰り返しデータ構造を表示する時に、データ構造名に対して EVAL を 使用すると、現行指標を使ってサブフィールドが表示されます。 特定の オカレンスを指定するには、データ構造名の後の括弧内に指標を指 定してください。 例えば、DS1 の 2 番目の内容を表示するには次を入力してください。
EVAL DS1(2)
同様に、サブフィールドの特定のオカレンスの内容を表示するためには、 指標表記法を使用してください。
現行指標の値を決定するには、次のコマンドを入力してください。
EVAL _QRNU_DSI_name
ここでは name は該当のデータ構造名を表します。
あるサブフィールドが別のサブフィールドの配列オーバーレイとして定義されてい る場合に、そのオーバーレイ・サブフィールドの内容を表示するためには 、%INDEX 組み込み関数を使用してオカレンスを指定し、指標表記法を使用して配列を指 定することができます。
配列オーバーレイであるサブフィールドを表示するもう 1 つの方法として、次 の表記法を使用することができます。
EVAL subfield-name(occurrence-index,array-index)
ここで、変数 subfield-name は表示したいサブフィールドの名前で、 occurrence-idex は表示する配列オカレンスの番号、 array-index は表示する要素の番号です。
図 120 は、DBGEX で定義されたデータ構造に対して EVAL を使 用するいくつかの例を示したものです。
** データ構造名またはサブフィールド名を入力できることに注意してください。**
> EVAL DS3
TITLE OF DS3 = 'Mr. ' 5A INZ('Mr. ')
LASTNAME OF DS3 = 'Jones ' 10A INZ('Jones ')
FIRSTNAME OF DS3 = 'Fred ' 10A INZ('Fred ')
> EVAL LastName
LASTNAME = 'Jones '
> EVAL DS1 OCCURS(3)
FLD1 OF DS1 = 'ABCDE' 5A INZ('ABCDE')
FLD1A OF DS1(1) = 'A' 1A DIM(5) OVERLAY(Fld1)
FLD1A OF DS1(2) = 'B' 5B 2 INZ(123.45)
FLD1A OF DS1(3) = 'C'
FLD1A OF DS1(4) = 'D'
FLD1A OF DS1(5) = 'E'
FLD2 OF DS1 = 123.45
> EVAL _QRNU_DSI_DS1 ** 現行指標値の判別 **
_QRNU_DSI_DS1 = 1
> EVAL DS1=%INDEX(2) ** DS1 のオカレンスの変更 **
DS1=%INDEX(2) = 2
> EVAL Fld1 ** サブフィールドの表示 **
FLD1 = 'ABCDE' (現行オカレンス)
> EVAL fld1(2)
FLD1(2) = 'ABCDE' (2 番目のオカレンス)
> EVAL Fld1a ** 配列オーバーレイ・サブフィールドの表示 **
FLD1A OF DS1(1) = 'A' (現行オカレンス)
FLD1A OF DS1(2) = 'B'
FLD1A OF DS1(3) = 'C'
FLD1A OF DS1(4) = 'D'
FLD1A OF DS1(5) = 'E'
> EVAL Fld1a(2,1) ** 2 番目のオカレンスの表示、最初の要素 **
FLD1A(2,1) = 'A'
> EVAL Fld1a(2,1..2) ** 2 番目のオカレンスの表示、1 番目 〜 2 番目の要素 **
FLD1A(2,1) = 'A'
FLD1A(2,2) = 'B'
> EVAL QUALDS.ID_NUM ** 修飾された DS のサブフィールドの表示
QUALDS.ID_NUM = 1100022
> EVAL LIKE_QUALDS.ID_NUM ** 別の DS の同じサブフィールドの表示
LIKE_QUALDS.ID_NUM = 0
> EVAL LIKE_QUALDS.COUNTRY(1) ** 修飾された DS からの配列要素
LIKE_QUALDS.COUNTRY(1) = 'CANADA'
> EVAL cust(1).parts.item(2).Id_Num ** 複雑な構造のサブフィールドを表示
CUST(1).PARTS.ITEM(2).ID_NUM = 15
サブフィールドが定義されていないデータ構造を表示するためには、以下に説明 する EVAL の文字表示機能を使用しなければなりません。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.