HPDFXFAResolveFieldValueNode

ユニット: HPDFXFA

宣言

function HPDFXFAResolveFieldValueNode(Document: TXFADocument;
  FieldNode, DataNode: TXFANode; CreateNode: Boolean= False;
  MaxNodes: Integer= 65536): TXFANode; overload;

function HPDFXFAResolveFieldValueNode(Document: TXFADocument;
  FieldNode, DataNode: TXFANode; CreateNode: Boolean;
  MaxNodes: Integer; var RemainingOperations: Integer; Deadline: Int64;
  DeadlineCheck: TXFABindingDeadlineCheck = nil): TXFANode; overload;

パラメータ

パラメータ意味
Documentフィールド、データ、フォームの各パケットを所有するネイティブ XFA ドキュメント
FieldNode実効値が要求されるテンプレートフィールド
DataNodedatasets の出現コンテキスト。繰り返しフィールドは自身の出現コンテキストを必要とします
CreateNodeFalse は読み取り可能なデータ、フォーム値、テンプレート既定値を解決します。True は書き込み可能なインスタンス値を返します
MaxNodesネイティブフォームインスタンス作成に渡される出現上限

動作

既存のバインド済み datasets ノードは、内容が空でも優先されます。ノードが見つからない場合は対応するネイティブフォーム値へ、それもなければテンプレートフィールドの最初の value 子へフォールバックします

読み取り専用の検索は datasets やフォームノードを作成せず、これらの値ソースがどれも存在しないとき nil を返します

CreateNode True のとき、通常のデータバインディングは書き込み可能な datasets ノードを作成または返します。バインドされていないフィールドや書き込み可能な datasets を持たないドキュメントは、代わりに別のネイティブフォーム値を使います

新しく作成された datasets ノードは当初空でもかまいません。以前返されたテンプレート既定値経由で代入するのではなく、呼び出し側がコミットする値を供給してください

返されたノードは Document に属し、呼び出し側が解放してはなりません。読み取り専用検索は共有テンプレートノードを返すことがあるため、内容を変更する前に CreateNode True で書き込み可能なノードを取得してください

null の Document や FieldNode は nil を返します。過度なネイティブフォーム出現インデックスや祖先の深さは、フォームリゾルバを通じて EHPDFXFAError を送出します

コンシューマ

予算付きオーバーロードは、ネイティブバインディング解決と呼び出し側の操作許容量と期限を共有します。RemainingOperations の 0 は枯渇、負は呼び出し側許容量の無効化、負の Deadline は経過時間検査の無効化です

DeadlineCheck は呼び出し側のクロックドメインを供給できます。nil なら GetTickCount64 のミリ秒を使い、インタラクティブランタイムは設定された単調な期限検査を供給します

バインディング走査は固定のセグメント、走査深さ、課金ステップの上限を保ちます。予算失敗は EHPDFXFAError を送出し、インタラクティブトランザクションはネイティブスナップショットを復元します

バインディング予算とコールバックの契約はHPDFXFAResolveBoundDataNode とTXFABindingDeadlineCheck を参照してください

インタラクティブランタイムと XFA AcroForm 変換はこのリゾルバを共有し、欠落した既定値、明示的に空のデータ、繰り返し出現値の一貫性を保ちます

インタラクティブな編集と計算はコミット前に書き込み可能なインスタンスノードを再取得し、他のインスタンスのためのテンプレート既定値を保持します

関連 API

ネイティブ XFA フィールド既定値、HPDFXFAResolveFormInstanceNode、インタラクティブ動的 XFA ウィジェットランタイム