オブジェクトのオカレンス値

角括弧([ ])表記はオブジェクトのオカレンス値を表します。

アラビア語、ヘブライ語、タイ語およびベトナム語に特化したフォームでは、(右から左に表記する言語であっても)参照構文が常に右側にあります。

表記法

[ ]

オカレンス値の参照を作成するには、オブジェクト名の後ろに角括弧([ ])を置き、括弧内に以下のいずれかの値を入れます。

  • [ n ]n は、0 から始まる、オカレンスの絶対インデックス番号です。オカレンス値が範囲外の場合は何も値を返しません。以下に例を示します。

    xfa.form.form1.#subform.Quantity[3]

    は、Quantity オブジェクトの 4 番目のオカレンスを参照します。

  • [ +/- n ]n は、参照を作成するオブジェクトのオカレンスと相対的なオカレンスを示します。正の値を指定するとオカレンス値は大きくなり、負の値を指定するとオカレンス値は小さくなります。以下に例を示します。

    xfa.form.form1.#subform.Quantity[+2]

    この参照では、参照を作成するコンテナのオカレンス値よりもオカレンス値が 2 だけ大きい Quantity の値が出力されます。例えば、この参照を Quantity[2] オブジェクトに追加すると、参照は以下と同じになります。

    xfa.template.Quantity[4]

    計算されたインデックス番号が範囲外の場合は、エラーを返します。

    この構文は、特定のオブジェクトの前または次のオカレンスを検索するときに最も一般的に使用します。例えば、Quantity オブジェクトのオカレンス(1 つ目は除く)はすべて、Quantity[-1] を利用して前の Quantity オブジェクトの値を得ます。

  • [*] はオブジェクトの複数のオカレンスを示します。名前が付いた最初のオブジェクトが検出され、そのオブジェクトの兄弟で同名のオブジェクトが返されます。この表記法を使用すると、オブジェクトのコレクションが返されます。以下に例を示します。

    xfa.form.form1.#subform.Quantity[*]
  • この式は、参照で検出された最初の Quantity の兄弟で、Quantity という名前を持つすべてのオブジェクトを参照します。

上記のツリーを参照した場合、以下の式が返すオブジェクトはそれぞれ次のとおりです。

  • Subform_Page.Subform1[*] は両方の Subform1 オブジェクトを返します。

  • Subform_Page.Subform1.Subform3.TextField2[*] は、2 つの TextField2 オブジェクトを返します。Subform_Page.Subform1 は左側の最初の Subform1 オブジェクトに解決され、TextField2[*]Subform3 オブジェクトを基準にして評価されます。

  • Subform_Page.Subform1[*].TextField1 は両方の TextField1 インスタンスを返します。Subform_Page.Subform1[*] は両方の Subform1 オブジェクトに解決され、TextField1 は、Subform1 オブジェクトを基準にして評価されます。

  • Subform_Page.Subform1[*].Subform3.TextField2[1]returns the second and fourthTextField2objects from the left.Subform_Page.Subform1[*] は両方の Subform1 オブジェクトに解決され、TextField2[1]Subform3 オブジェクトを基準にして評価されます。

  • Subform_Page.Subform1[*].Subform3[*] は両方の Subform3 オブジェクトのインスタンスを返します。

  • Subform_Page.*Subform1 オブジェクトおよび Subform2 オブジェクトを返します。

  • Subform_Page.Subform2.*NumericField2 オブジェクトの 2 つのインスタンスを返します。

  • resolveNode メソッドでは、"[ ]"(角括弧)構文を JavaScript と共に使用できます。