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
| Üye | Davranış |
|---|---|
length | Mevcut 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