XFA choice item scripting

Unit: HPDFXFARuntime

Pole z ui.choiceList odsłania metody itemów choice podczas natywnego wykonania zdarzeń JavaScript i FormCalc, łącznie z powtarzalnymi instancjami pól i aliasami zachowanymi przez obiekty skryptowe

Methods and properties

CzłonekZachowanie
lengthLiczba bieżących itemów eksportu tylko do odczytu
selectedIndexPierwszy wybrany indeks oparty na zerze albo -1, gdy nic nie jest wybrane; przypisanie dowolnej ujemnej liczby całkowitej czyści wybór, a poza zakresem nieujemna wartość albo niecałkowita rzuca przed jego zmianą
getDisplayItem(index)Tekst display na indeksie albo null, gdy indeks jest niepoprawny
getSaveItem(index)Tekst eksportu na indeksie albo null, gdy indeks jest niepoprawny
boundItem(display)Tekst eksportu dla pierwszego dokładnie pasującego tekstu display, albo null, gdy żaden nie pasuje
getItemState(index)Czy item jest wybrany; niepoprawny indeks rzuca
setItemState(index, selected)Aktualizuje wybór itemu; wybranie itemu zastępuje poprzedni wybór dla pola pojedynczego wyboru i zachowuje inne wybrane indeksy dla pola wielokrotnego wyboru
addItem(display, bound)Dokleja item bez zmieniania istniejących wybranych itemów; pominięcie drugiego argumentu używa pustego ciągu eksportu
deleteItem(index)Usuwa item i przesuwa późniejsze indeksy, zachowując tożsamość przeżywających aliasów itemów; zwraca false dla niepoprawnego indeksu
clearItems()Usuwa bieżące itemy i czyści wybór; jawnie pusta lista runtime pozostaje pusta po zapisie i przeładowaniu
setItems(text, columns)Zastępuje bieżące itemy z kolumn oddzielonych przecinkami i czyści wybór; columns domyślnie 1, wiersz jednokolumnowy dostarcza i tekst display, i eksportu, a dłuższy wiersz używa pierwszej kolumny jako tekstu display i ostatniej jako tekstu eksportu; zwraca false, gdy liczba kolumn jest niepoprawna albo nie dzieli liczby pól wejścia

Indeksy są liczbami całkowitymi i nigdy nie są koercjonowane z ciągów; metody itemów wymagają swoich udokumentowanych liczb argumentów, z opcjonalnym drugim argumentem akceptowanym przez addItem i setItems

Wartości itemów zachowują Unicode, spacje wiodące i końcowe, jawne puste eksporty i złamania linii; niepoprawne znaki kontrolne XML i niedobite surrogate UTF-16 są odrzucane przed mutacją listy

Immediate state and aliases

Nowe itemy są natychmiast widoczne przez metody itemów i DOM właściwości, a alias usuniętego itemu nie może przekierować do przeżywającego itemu, który przesunie się na usunięty indeks

Zastąpienie albo wyczyszczenie listy tworzy odrębne tożsamości zastępcze; zachowane aliasy skryptowe usuniętych itemów zawodzą przy późniejszych odczytach i zapisach, podczas gdy przeżywające aliasy nadal adresują ten sam item między wykonaniami zdarzeń

Bezpośrednie przypisanie rawValue, zapis związany Data DOM, publiczny commit wartości widgeta albo mutacja skalarna itemu eksportu unieważnia cache'owane jawne indeksy, łącznie z przypisaniami zachowującymi ten sam surowy ciąg

Persistence and exact selection

SaveToBytes zapisuje rzeczywiste per-instance itemy formularza i zsynchronizowane wartości; modyfikacja powtarzalnego wystąpienia zachowuje inne wystąpienia i ich scope danych

Zduplikowane i puste eksporty mogą być wybierane dokładnymi indeksami przez API itemów; zapisane pole formularza rejestruje kanoniczne indeksy i pasującą surową wartość w opcjonalnych atrybutach w przestrzeni nazw urn:hotpdf:xfa:runtime

Standardowe itemy XFA i węzły value pozostają obecne niezależnie od tych opcjonalnych atrybutów; późniejsze zapisy wartości unieważniają atrybuty, żeby przestarzałe indeksy nie mogły wybrać złego zduplikowanego eksportu

Natywny konsument PDF zapisuje pasujące pary eksport/display /Opt, dokładne indeksy /I i napisy albo tablice /V i buduje wyglądy z wybranych etykiet display

Transactions and limits

Zmiany itemów uczestniczą w istniejącej transakcji zdarzeń i dzienniku skryptów; natywna awaria limitu wartości, anulowanie wywołującego albo nieprzechwycony wyjątek zdarzenia przywraca zapisane XDP, leksykalny stan skryptów i powiązania przed późniejszym ponowieniem

Alokacje węzłów, kolumny wejścia, wartości UTF-8, ładunki operacji XML, natywny traversalu właściwości i klonowanie zachowują skonfigurowane budżety skryptów i runtime oraz sprawdzenia anulowania

Example

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");

Dla zmiennych FormCalc zachowujących pole zamiast wartości skalarnej użyj var list = Ref($.parent.choice) przed wywołaniem metod itemów

Słownik metod i argumenty kolumn podążają za Adobe Designer Scripting Reference; runtime używa semantyki zastępowania dla setItems, jak opisano w wsparciu skryptowania formularzy HTML5 Adobe