2016-03-30 1 views
0

Je dois créer un formulaire pdf dans lequel vous pouvez cliquer sur différents enregistrements d'une source de données XML, similaire au ODBC version shown here.Contrôles de données au format pdf - Livecycle + XML Datasource

Pour ODBC les API suivantes ont été utilisées:

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

Cependant xfa.sourceSet n'est pas disponible avec une connexion de données XML (au moins en ES4). Comment créer cette même fonctionnalité avec XML Data Source?

Voici une version simplifiée de la forme et 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> 

Si je change manuellement la liaison pour subform book (montré avec la flèche bleue en capture d'écran) pour $record.book[1] les détails pour le deuxième enregistrement sont affichés dans le pdf généré. Est-il possible de changer les liaisons via javascript?

Voici un lien vers un copy of the form et the xml.

Répondre

0

Le formulaire est lié lors de son premier rendu, donc la modification de la valeur de la liaison via Javascript ne fonctionnera pas.

Quelques alternatives:

rendre le sous-formulaire répéter et mettre Javascript sur les boutons pour masquer toutes les instances sauf celle concernée.

Liez les données du livre à un sous-formulaire récurrent caché distinct et utilisez Javascript pour remplir les champs de l'instance pertinente des sous-formulaires masqués.

Ne liez pas le sous-formulaire et utilisez Javascript pour accéder directement au modèle de données afin de remplir les champs.

+0

Merci! Je suis venu avec une solution comme votre première suggestion. – JeremyK