%ELEM (要素数の検索)
%ELEM(table_name)
%ELEM(array_name)
%ELEM(multiple_occurrence_data_structure_name)
%ELEM は、指定された配列、テーブル、または複数オカレンス・データ構造の中の要素の 数を戻します。 戻り値は符号なし整数形式 (タイプ U) です。 これは、数値定数が使用できる定義仕様書または拡張演算項目 2 フィールドの 式のどこにでも指定することができます。
パラメーターは、配列、テーブル、または複数オカレンス・データ構造の名前としなけれ ばなりません。
パラメーターに複合修飾名を指定することはできません。
複合修飾サブフィールドの要素数を知りたい場合は、必要なサブフィールドを
含んでいるデータ構造サブフィールドを定義する LIKEDS キーワードに使用されているデータ構造を
指定します。
例えば、INFO.CUST.ORDERS の要素数を知りたい場合、
データ構造 INFO の CUST サブフィールドが
キーワード LIKEDS(CUST_T) で定義されているとすると、%ELEM(CUST_T.ORDERS) と指定します。
詳細については、配列命令または 組み込み関数を参照してください。
図 1. %ELEM の例
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++
D arr1d S 20 DIM(10)
D table S 10 DIM(20) ctdata
D mds DS 20 occurs(30)
D num S 5p 0
* like_array will be defined with a dimension of 10.
* array_dims will be defined with a value of 10.
D like_array S like(arr1d) dim(%elem(arr1d))
D array_dims C const (%elem (arr1d))
/FREE
num = %elem (arr1d); // num is now 10
num = %elem (table); // num is now 20
num = %elem (mds); // num is now 30
/END-FREE