2016-03-30 6 views
0

Ich muss ein PDF-Formular erstellen, in dem Sie durch verschiedene Datensätze aus einer XML-Datenquelle klicken können, ähnlich der ODBC version shown here.Datensteuerelemente im PDF-Format - Livecycle + XML Datenquelle

Für ODBC die folgenden APIs wurden verwendet:

xfa.sourceSet.DataConnection.last(); 
xfa.sourceSet.DataConnection.first(); 
xfa.sourceSet.DataConnection.previous(); 
xfa.sourceSet.DataConnection.next(); 
xfa.sourceSet.DataConnection.addNew(); 
xfa.sourceSet.DataConnection.delete(); 

jedoch xfa.sourceSet mit XML-Datenverbindung nicht verfügbar ist (zumindest in ES4).

Wie kann ich dieselbe Funktionalität mit XML Data Source erstellen?

Hier sind eine vereinfachte Version des Formulars und xml: enter image description here

<?xml version="1.0" encoding="UTF-8"?> 
<bookstore> 
    <book category="cooking"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    </book> 
    <book category="children"> 
    <title lang="en">Harry Potter</title> 
    <author>J K. Rowling</author> 
    </book> 
    <book category="web"> 
    <title lang="en">XQuery Kick Start</title> 
    <author>James McGovern</author> 
    </book> 
    <book category="web" cover="paperback"> 
    <title lang="en">Learning XML</title> 
    <author>Erik T. Ray</author> 
    </book> 
</bookstore> 

Wenn ich die Bindung für subform book (im Bild mit dem blauen Pfeil in Screenshot) manuell ändern, um $record.book[1] die Details für den zweiten Datensatz werden in der generierten pdf angezeigt. Ist es möglich, die Bindungen per Javascript zu ändern?

Hier ist ein Link zu einer copy of the form und the xml.

Antwort

0

Das Formular ist gebunden, wenn es zum ersten Mal gerendert wird, daher wird es nicht funktionieren, den Wert der Bindung durch Javascript zu ändern.

Einige Alternativen:

das Unterformular Stellen wiederholen und setzen Javascript auf die Tasten alle Instanzen mit Ausnahme der relevanteste zu verstecken.

Binden Sie die Buchdaten an ein separates ausgeblendetes wiederholendes Teilformular und verwenden Sie Javascript, um die Felder aus der relevanten Instanz der ausgeblendeten Teilformulare zu füllen.

Binden Sie das Unterformular überhaupt nicht und verwenden Sie Javascript, um direkt auf das Datenmodell zuzugreifen, um die Felder zu füllen.

+0

Danke! Ich habe eine Lösung wie Ihren ersten Vorschlag gefunden. – JeremyK