この記事では、変数および配列の定義方法、使用方法、初期化方法を指定します。
Ctrl + Shift + V キーを押すか、GeneXus のメインメニューで
[ 追加 ] > [ 変数 ] を選択すると、
GeneXus オブジェクトに変数を定義できます。その後、
変数の定義を進めることができます。
多次元配列の使用
多次元変数配列は単に共通の変数が定義されたものですが、使用する [
Dimensions ] プロパティ (Scaler、Vector、Matrix) において 1 つまたは 2 つの次元を選択する必要があります。
配列の初期化
配列を初期化する (配列のエレメントに値を割り当てる) には、配列全体 (配列の名前および括弧で示され、サブスクリプトはありません) にエクスプレッションを割り当てます。次に例を示します。
&arr() = 0
&arr() = nullvalue(&arr)
&arr() = attr + 25|&var
メソッドには対応していません。
配列の使用方法
一般的な使用方法として、2D 配列のレポートを生成する場合があります:
レイアウト:
ソース:
&SeatsPerYear() = 0
Print Head
For Each AirlineId
For Each FlightDepartureTime
Where Year(FlightDepartureTime) >= &Year(1)
Where Year(FlightDepartureTime) <= &Year(3)
For &i = 1 to 3
If Year(FlightDepartureTime) = &Year(&i)
&SeatsPerYear += 1
EndIf
EndFor
EndFor
Print Detail
EndFor
パラメーターとして引き渡される配列
呼ぶ側および呼ばれる側の両方のオブジェクトにおいて配列を同じ次元で定義しておきます。定義しない場合、予期しない結果が発生する場合があります。範囲外のサブスクリプトは実行時にのみ検知されます。ただし、数値の定数のサブスクリプトを確認し、配列の次元数を超えないようにしておきます。
配列の行および列
Rows(&Arr()) および
Cols(&Arr()) の関数はそれぞれ、配列に定義された行数 (1 つ目の次元) および列数 (2 つ目の次元) を取得するのに使用します。プログラミングのループ (
Do While) を定義する場合、配列の次元が変更となる場合にループに影響がないよう、これらの関数を使用すると便利です。
次の例は、サブスクリプト (列および行) を合わせたエレメントを持つ 2 次元配列のロード方法を示します:
&i = 1
Do while &i <= rows(&arr()) //このサイクルは、配列の定義に変更があっても継続します。
j = 1
Do while &j <= cols(&arr())
&arr(&i,&j) = &i + &j
&j += 1
EndDo
&i += 1
EndDo
- 変数は配列としてのみ定義できます。一方で、項目属性を配列として定義することはできません。
- NoAccept ルールを使用している場合は、配列の特定のエレメントは参照できません。配列全体を参照するか、またはその配列をまったく参照しないかのどちらかとなります。配列に色を割り当てる場合も同様です。
- トランザクションにおいては、配列をパラメーターとして受け取ることはできません。
オブジェクト: Procedure オブジェクト、
Transaction オブジェクト、
Web Panel オブジェクト
変数の定義
項目属性の定義