XFA choice item scripting

Birim: HPDFXFARuntime

ui.choiceList'li bir field, native JavaScript ve FormCalc event yürütmesi sırasında choice item method'ları açığa çıkarır — tekrar-field instance'ları ve script object'ler tarafından tutulan alias'lar dâhil

Method'lar ve özellikler

ÜyeDavranış
lengthMevcut export item'larının read-only sayısı
selectedIndexİlk seçili zero-based indeks, hiçbiri seçili değilken -1; herhangi bir negatif integer atamak seçimi temizler, aralık-dışı negatif-olmayan bir value veya noninteger ise onu değiştirmeden throw eder
getDisplayItem(index)İndeksteki display metni, indeks geçersizse null
getSaveItem(index)İndeksteki export metni, indeks geçersizse null
boundItem(display)İlk tam-eşleşen display metni için export metni, eşleşen display metni yoksa null
getItemState(index)Item'ın seçili olup olmadığı; geçersiz indeks throw eder
setItemState(index, selected)Item'ın seçimini güncelleyin; bir item seçmek, tek-select field için önceki seçimi değiştirir ve multi-select field için diğer seçili indeksleri korur
addItem(display, bound)Mevcut seçili item'ları değiştirmeden bir item ekleyin; ikinci argümanı atlamak boş bir export string kullanır
deleteItem(index)Bir item silin ve sonraki indeksleri, hayatta kalan item alias'larının identity'sini korurken kaydırın; geçersiz indeks için false döndürün
clearItems()Mevcut item'ları kaldırın ve seçimi temizleyin; açıkça boş bir runtime liste, save ve reload sonrasında boş kalır
setItems(text, columns)Mevcut item'ları virgülle-ayrılmış sütunlardan değiştirin ve seçimi temizleyin; columns default'ta 1'dir, tek-sütunlu bir row hem display hem export metnini sağlar ve daha uzun bir row ilk sütununu display metni, son sütununu export metni olarak kullanır; sütun sayısı geçersizse veya input field sayısını bölmiyorsa false döndürün

İndeksler integer'dır ve string'lerden asla coerce edilmez; item method'ları belgelenmiş argüman sayılarını gerektirir — opsiyonel ikinci argüman addItem ve setItems tarafından kabul edilir

Item value'ları Unicode'u, baştaki ve sondaki boşlukları, açık boş export'ları ve line break'leri korur; geçersiz XML kontrol character'ları ve eşleşmemiş UTF-16 surrogate'ler liste mutation'ından önce reddedilir

Anlık state ve alias'lar

Yeni item'lar, item method'ları ve property DOM üzerinden hemen görünür ve silinmiş bir item alias'ı, silinmiş indekse taşınan hayatta-kalan bir item'a yönlendirilemez

Listeyi değiştirmek veya temizlemek, ayrık replacement identity'leri oluşturur; kaldırılan item'lara tutulan script-object alias'ları sonraki okuma ve yazmalarda başarısız olurken, hayatta kalan alias'lar event yürütmeleri boyunca aynı item'ı adreslemeye devam eder

Doğrudan bir rawValue ataması, bağlı bir Data DOM yazması, public widget value commit'i veya export-item scalar mutation'ı, cache'lenmiş açık indeksleri geçersiz kılar — aynı ham string'i koruyan atamalar dâhil

Persistence ve kesin seçim

SaveToBytes, gerçek instance-başına form item'larını ve eşzamanlanmış value'ları yazar; bir tekrar-instance'ı değiştirmek diğer instance'ları ve data scope'larını korur

Duplicate ve boş export'lar, item API'siyle kesin indeksler üzerinden seçilebilir; kayıtlı form field, urn:hotpdf:xfa:runtime namespace'inde opsiyonel attribute'larla kanonik indeksleri ve eşleşen ham value'yu kaydeder

Standart XFA item'ları ve value node'ları, bu opsiyonel attribute'lardan bağımsız mevcut kalır; sonraki value yazmaları attribute'ları geçersiz kılar — böylece bayat indeksler yanlış duplicate export'u seçemez

Native PDF tüketicisi, eşleşen /Opt export/display çiftlerini, kesin /I indekslerini ve /V string'lerini veya array'lerini yazar ve görünümleri seçilen display label'lardan kurar

Transaction'lar ve limitler

Item değişiklikleri, mevcut event transaction'ına ve script journal'ına katılır; native bir value-limit başarısızlığı, çağıran cancellation'ı veya yakalanmamış bir event exception'ı, sonraki retry'den önce kayıtlı XDP'yi, script lexical state'ini ve binding'leri geri alır

Node tahsisleri, input sütunları, UTF-8 value'ları, XML operation payload'ları, native property traversal'ı ve klonlama, yapılandırılmış script ve runtime bütçelerini ve cancellation check'lerini tutar

Örnek

var list = this.parent.choice;
list.clearItems();
list.addItem("Display A", "same");
list.addItem("Display B", "same");
list.selectedIndex = 1;
if (list.getDisplayItem(list.selectedIndex) !== "Display B")
    throw new Error("Unexpected selected label");

Scalar value'su yerine bir field tutan FormCalc variable'ları için, item method'larını çağırmadan önce var list = Ref($.parent.choice) kullanın

Method vocabulary'si ve sütun argümanları, Adobe Designer Scripting Reference'ı izler; runtime, Adobe'un HTML5 forms scripting support içinde anlatıldığı gibi setItems için replacement semantiği kullanır