سؤال

أنا أستخدم ملفات Adobe LiveCycle Designer و XML لإنشاء بعض نماذج PDF للمشروع. لقد قمت بإنشاء XSD ، والذي يحتوي من بين أمور أخرى على سلسلة غير محدودة من الخيارات ، على سبيل المثال شيء مثل ما يلي:

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

لتمثيل هذا في Adobe LiveCycle Designer ، لدي شيء مثل ما يلي:

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

عندما يضغط شخص ما على AddItem1button ، أقوم بإنشاء مثيل جديد لـ apitssubform باستخدام ما يلي:

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

والشيء المعاكس لـ Additem2button.

المشكلة هي أنه بصرف النظر عن إدخال العناصر يدويًا ، أريد أيضًا أن أكون قادرًا على استخدام ملف XML ، ولهذا السبب قمت بإنشاء XSD أعلاه. أستخدم أيضًا الارتباطات لربط عناصر Item1 و Item2 من XSD باستخدام item1wrapper و item2wrapper على التوالي. تكمن المشكلة في أنه بمجرد أن يكون لدي عنصر item1 في XML ، يتم إنشاء كل من Item1Wrapper و Item2Wrapper (والشيء نفسه مع Item2). هل هناك أي طريقة للتحكم في التحميل من أجل إخفاء الغلاف المعني؟

أود أن أبلغكم أنه للأسف لا يمكنني تغيير PDFFORM أو XSD.

هل كانت مفيدة؟

المحلول

إذا فهمت لك بشكل صحيح ، فيجب أن يقتصر الحل على تغيير ملف XML.

لا أعتقد أنك ستتمكن من حل هذا دون تغيير نموذج PDF ، حيث تقوم بإعداده دائمًا لإدراج كلا من الأطفال في العناصر.

يجب أن تستخدم إما إعدادات فرعية خيار أو تكرار المرتبطة بكل عنصر؟ WRIPPER (كرر لكل عنصر بيانات ، MIN COUNT = 0).

نصائح أخرى

إذا كانت الخيارات بسيطة إلى حد ما ، فيمكنك استخدام XSD: التعداد. وإلا فإن نوعك المعقد يجب أن يبدو هكذا:

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

وينبغي أن يكون روابطك في الحوار "خصائص عناصر القائمة"

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

على افتراض أنك وضعت myItems عنصر فقط تحت عنصر الجذر في مخططك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top