TXFAFormStructure

HPDFXFAFormStructure, template destekli form örnekleri için native hazırlama ve kimlik eşlemesi sağlar

Class, TXFADocument'ini ödünç alır, yapısal grafiğinin ve ayrık adaylarının sahibidir ve ödünç aldığı belgeyi hiç serbest bırakmaz

constructor Create(Document: TXFADocument;
  const Limits: TXFADataStructureLimits;
  const OnTick: TXFADataStructureTick);
procedure BeginOperation(const OnTick: TXFADataStructureTick);
procedure EndOperation;
function PrepareUnboundModel: TXFANode;
function EnsureInstance(Definition, DataNode: TXFANode): TXFANode;
function PrepareMaterialization(Definition, Instance: TXFANode;
  out Aliases: TXFAFormStructureAliases): TXFANode;
function ReplaceInstance(Instance, Prepared: TXFANode): TXFANode;
procedure DiscardPrepared(Node: TXFANode);
property Graph: TXFADataStructure;

Operasyon kapsamı

Yapısal çalışmadan önce BeginOperation çağırın ve EndOperation'u bir finally bloğunda çağırın

Sağlanan callback, sınırlı dolaşım, kopyalama ve graph ön-kontrolü boyunca çağrılır ve operasyonu iptal etmek için bir exception raised edebilir

Graph.DetachedRoots, gözlem ve koordine edilmiş snapshot geri yüklemesi için grafiğin sahiplik koleksiyonunu açar; çağıranlar hâlâ o koleksiyona ait node'ları kendi başlarına serbest bırakmamalıdır

Hazırlama ve benimseme

PrepareMaterialization, bir template tanımından ve var olan isteğe bağlı bir örnekten ayrık form adayı oluşturur ve kaynak-aday çiftlerini TXFAFormStructureAliases içinde döndürür

TXFAFormStructureAlias.Source ve Target, önceki örneği serbest bırakmadan önce dış kimlikleri yeniden eşlemek için ödünç node referanslarıdır

ReplaceInstance hazırlanan adayı benimser ve önceki örneği grafiğe ait ayrık bir node olarak döndürür

Döndürülen önceki örnek üzerinde DiscardPrepared çağırmadan önce bağımlı referansları yeniden hedefleyin

DiscardPrepared, aynı grafiğe ait ayrık bir adayı serbest bırakır ve bağlı bir canlı örneği kaldırmaz

Başlangıç ve seyrek örnekler

PrepareUnboundModel boş bir birleştirme için ayrık bir form modeli döndürür; yazılan template içeriğini korur ve desteklenen subform occurrence'larını bağımsız native node'lara açar

EnsureInstance var olan canlı bir form node'u döndürür ya da bir template tanımı ve onun canlı veri bağlamı için gereken seyrek örnek yolunu oluşturur

EnsureInstance birkaç canlı node'u değiştirebilir; bu yüzden bileşik-operasyon rollback'i çağıranın çevreleyen belge işlemine aittir

TXFAWidgetRuntime, native belge ve ayrık kimlik geri yüklemesi dâhil, genel script olayları için bu işlemi sağlar

Yardımcı fonksiyonlar

FonksiyonAmaç
HPDFXFAEmptyMergeCountBir occurrence bildirimini doğrular ve boş-birleştirme sayısını döndürür; açık initial ya da minimumu kullanır
HPDFXFAIsMaterializedFormNodeAçık bir dolaşım bütçesi altında namespace-nitelikli maddelenme işaretini kontrol eder
HPDFXFAResolveMaterializedDefinitionBir tanım ve veri bağlamı için etkili form node'unu çözer ve maddelenmiş modelin yetkili olup olmadığını bildirir
HPDFXFAResolveActualFormScopeGerçek bir yinelenen form örneğinin canlı veri kapsamını, template bildirimini yeniden yinelemeden çözer

Kaydedilen işaret, çarpışmaya-kapalı bir önekle urn:hotpdf:xfa:form-structure:1 kullanır; native form node'ları ise XFA form namespace'ini kullanır

Tek başına çalışan native çağıranlar, belgeyi class ömrü boyunca tutmalıdır; cancellation ya da başka bir başarısızlık önceki başarılı adımları geri yükleyecekse bileşik graph operasyonları çevresinde rollback sağlamalıdır