オブジェクトのプロパティおよび値の参照

オブジェクトのプロパティと値へのアクセスや変更に使用する参照構文は、次のいずれかの形式になります。

完全修飾
xfa ルートノードで始まるオブジェクトの完全な階層が参照構文に含まれます。完全修飾構文は、参照構文を含む演算やスクリプトの場所に関係なく、オブジェクトのプロパティや値に正しくアクセスできます。

短縮
参照構文およびオブジェクトの構文参照を含む演算やスクリプトから相対的な位置を示すか、ショートカットを使用しているので、参照構文が短縮されています。一般に、短縮参照構文の方が作成時間は短くなりますが、オブジェクトが互いを基準にして同じ場所に配置される場合以外は機能しないという欠点があります。

例えば、以下の図は発注書のサンプルフォームの階層を示しています。

次の図は、txtCondition フィールドの値にアクセスするための完全修飾参照構文を示しています。この構文は、FormCalc および JavaScript で使用できます。フォームにあるオブジェクトの演算やスクリプトの中で、この参照構文を使用することも可能です。

フルサイズのグラフィックを表示
A.
ルートノード

B.
モデル

C.
フォームデザインのルートノード

D.
ページオブジェクト

E.
サブフォーム名

F.
オブジェクト名

G.
プロパティ名またはメソッド名

注意: FormCalc および JavaScript に対して参照構文が共通であるとしても、それぞれのスクリプト言語の変換については確認が必要です。例えば、上の例の参照構文は FormCalc 用として動作します。しかし、JavaScript の場合は、末尾にセミコロン(;)を付ける必要があります。

サブフォームなど、同一コンテナに 2 つのオブジェクトが存在する場合、同じコンテキストを共有するものとして参照されます。同じコンテキストに複数のオブジェクトが存在する場合、オブジェクト名にアクセス対象のプロパティやメソッドを追記しただけの短縮参照構文を使用できます。例えば、上述の例を使用すると、次の短縮参照構文は total サブフォームの任意のフィールドから txtCondition フィールドの値にアクセスできます。

    txtCondition.rawValue

2 つのオブジェクトが異なるコンテナに存在する場合、同じコンテキストは共有されません。この場合も短縮参照構文を使用できますが、2 つのオブジェクトに共通しない、最上位レベルのコンテナオブジェクトの名前から構文を開始します。例えば、上述の階層を使用すると、次の短縮参照構文は txtCondition フィールドから address フィールドの値にアクセスできます。

    header.address.rawValue

XML フォームオブジェクトモデルの構造化手段によって、オブジェクトのプロパティとメソッドがフォームにあるオブジェクトの子オブジェクトに存在する場合があります。こうした子オブジェクトは、XML フォームオブジェクトモデルのみに含まれ、階層パレットとデータ表示パレットには表示されません。子オブジェクトのプロパティとメソッドにアクセスするには、参照構文に子オブジェクトを含める必要があります。例えば、次の参照構文は txtCondition フィールドにツールヒントテキストを設定しています。

    txtCondition.assist.toolTip.value = "Conditions of purchase."  // FormCalc 
    txtCondition.assist.toolTip.value = "Conditions of purchase."; // JavaScript

XML フォームオブジェクトモデルのオブジェクトとその構造について詳しくは、『スクリプティングリファレンス』を参照してください。