Pregunta

Estoy usando archivos XML de diseño y Adobe LiveCycle para crear algunos formularios PDF para un proyecto. He creado un XSD, que entre otras cosas contiene una secuencia ilimitada de opciones, por ejemplo, algo como lo siguiente:

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

Para representar esto en Adobe LiveCycle Designer, estoy teniendo algo como lo siguiente:

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

Cuando alguien presiona AddItem1Button, se crea una nueva instancia ItemsSubForm utilizando la siguiente:

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

Y lo opuesto para AddItem2Button.

El problema es que, además de la inserción de elementos de forma manual, también quiero ser capaz de utilizar un archivo XML, y por eso creé el XSD anteriormente. También uso fijaciones para asociar elementos Item 1 y ELEMENTO2 del XSD con Item1Wrapper y Item2Wrapper respectivamente. El problema es que una vez que tenga un elemento Elemento1 en el XML, se crean tanto Item1Wrapper y Item2Wrapper (y lo mismo con Item2). ¿Hay alguna manera de controlar la carga con el fin de ocultar el respectivo envoltorio?

Me gustaría informarle que lamentablemente no puedo cambiar ya sea el PDFform o el XSD.

¿Fue útil?

Solución

Si he entendido bien, la solución tiene que limitarse a cambiar el archivo XML.

No creo que usted será capaz de resolver esto sin cambiar el formato PDF, que se ha ajustado hasta SIEMPRE Inserte ambos hijos de ItemsSubForm.

Usted debería haber utilizado ya sea un subformulario elección o ajustes de repetición asociados a cada artículo? Envoltura (repetir para cada elemento de datos, Min Count = 0).

Otros consejos

Si las opciones son en realidad bastante simple Se podría utilizar un xsd: enumeración. De lo contrario su tipo complejo debería tener este aspecto:

<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"/>

y sus fijaciones en diálogo de propiedades dinámicas de los elementos de lista '' debe ser

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

suponiendo que se pone el elemento myItems justo debajo del elemento raíz en ti esquema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top