Domanda

Sto utilizzando file XML Designer e Adobe LiveCycle per creare alcuni moduli PDF per un progetto. Ho creato un XSD, che tra l'altro contiene una sequenza infinita di scelte, per esempio qualcosa di simile al seguente:

<xs:sequence maxOccurs="unbounded">
  <xs:choice>
    <xs:element name="Item1" type="xs:string" />
    <xs:element name="Item2" type="xs:string"/>
  </xs:choice>
</xs:sequence>

Per rappresentare questo in Adobe LiveCycle Designer, sto avendo qualcosa di simile al seguente:

MyForm (Subform)
  ItemsSubForm (Subform, repeated for many items)
    Item1Wrapper (Subform)
      Item1 (TextField)
    Item2Wrapper (Subform)
      Item2 (TextField)
  AddItemsButtonsSubForm
    AddItem1Button (Button)
    AddItem2Button (Button)

Quando qualcuno preme AddItem1Button, creo una nuova istanza ItemsSubForm usando la seguente:

this.parent.parent._ItemsSubForm.addInstance();
xfa.resolveNode("this.parent.parent.ItemsSubForm[" +(this.parent.parent.ItemsSubForm.instanceManager.count - 1) + "]").Item2Wrapper.presence = "hidden";

E la cosa opposta per AddItem2Button.

Il problema è che, a parte l'inserimento di elementi manualmente, anche io voglio essere in grado di utilizzare un file XML, e per questo motivo ho creato il XSD sopra. Inoltre uso binding per associare elementi Item1 e BENE2 dal XSD rispettivamente Item1Wrapper e Item2Wrapper. Il problema è che una volta che ho un elemento Item1 nel XML, vengono creati sia Item1Wrapper e Item2Wrapper (e lo stesso con Item2). C'è un modo per controllare il carico in modo da nascondere il rispettivo involucro?

Vorrei informarvi che purtroppo non posso cambiare sia la PDFForm o XSD.

È stato utile?

Soluzione

Se ho capito bene, la soluzione deve essere limitato a cambiare il file XML.

Non credo che sarete in grado di risolvere questo senza cambiare il modulo PDF, come lo si imposta a SEMPRE Inserire entrambi figli di ItemsSubForm.

Si dovrebbe aver usato sia una sottomaschera scelta o impostazioni di ripetizione associati a ciascun elemento? Wrapper (ripetere per ogni voce di dati, il conte Min = 0).

Altri suggerimenti

Se le scelte sono davvero abbastanza semplice che si potrebbe usare un XSD: enumerazione. In caso contrario, il tipo di complesso dovrebbe essere simile a questo:

<xs:complexType name="ItemList">
    <xs:sequence>
       <xs:element name="item" type="xs:string" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="myItems" type="ItemList"/>

e le associazioni nella finestra delle proprietà dinamiche delle 'voci di elenco dovrebbero essere

Items:   $record.myItems.item[*]
Item Text:   $
Item Value:  $

supponendo che si mette l'elemento myItems appena sotto l'elemento principale in voi schema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top