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
| Fonksiyon | Amaç |
|---|---|
HPDFXFAEmptyMergeCount | Bir occurrence bildirimini doğrular ve boş-birleştirme sayısını döndürür; açık initial ya da minimumu kullanır |
HPDFXFAIsMaterializedFormNode | Açık bir dolaşım bütçesi altında namespace-nitelikli maddelenme işaretini kontrol eder |
HPDFXFAResolveMaterializedDefinition | Bir tanım ve veri bağlamı için etkili form node'unu çözer ve maddelenmiş modelin yetkili olup olmadığını bildirir |
HPDFXFAResolveActualFormScope | Gerç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