Expand my Community achievements bar.

SOLVED

How to binding the same Data View Table item in several tables - SAP Cloud

Avatar

Level 1

Hello Experts,

I need to create an Adobe for Billing Document in SAP Cloud, with a items summary in the first page, and each item details in each next pages. So i will have to print Items table twice or more.

 

So, i am trying to binding the table for a first time in the first page and another time in the next page, doing page breaking by item. I tried to do a simple binding twice, but in the second page the table was printed as blank, it only print the content of table once, in the first time/page.

 

How can i binding the same table twice?

And how can i page break from second page now on, by FIELDS CONTENTS?

 

Remembering: it is for SAP Cloud, so, no interface option, and no chance to do some abap work before. I can only use LiveCycle resources && || javascript.

 

Forms Scheme nodes:

 

PrincipalFirstPage (Page - binding: $.BillingDocumentsNode)

---|formSummary (subform)

-----|table_Items (table binding first time - binding: $.Items)

-------|rowBillingDocumentItem(row - binding $.BillingDocumentItemNode[*])

---------|Material                    (field - biding: $Material)

---------|Material Description (field - biding: $.BillingDocumentItemText)

---------|Amount                     (field - Calculated)

 

 

NextPage (Page2 - binding: $.BillingDocumentsNode - AGAIN)

---|formSummary (subform)

-----|table_Items (table binding first time - binding: $.Items - AGAIN)

-------|rowBillingDocumentItem(row - binding $.BillingDocumentItemNode[*])

---------|Material                     (field - biding: $Material)

-------|rowBillingDocumentItem(row - binding $.ItemPricingConditionsNode[*])

---------|ConditionType           (field - biding: $.ConditionType)

---------|ConditionTypeName (field - biding: $.ConditionTypeName)

---------|ConditionAmount      (field - biding: $.ConditionAmount)

1 Accepted Solution

Avatar

Correct answer by
Employee

Using the same data in an XML for >1 dynamic table in a form will not work as the data gets "consumed" by the first table and will not reset.

 

That is actually as designed. The data you use in your form gets consumed sequentially, once you are through (by rendering the original table) there is no way to "go back".

Simply coping the table design will not work. You will have to use scripting which force feeds the data into the second table OR you duplicate the data in the XML under a second tag which is then assigned to your copy. The second is a bit clunky, the first requires scripting skills.

A sample of how the coping could be done:

https://acrobatusers.com/forum/forms-livecycle-designer/how-duplicate-table-form-another-table/

View solution in original post

2 Replies

Avatar

Correct answer by
Employee

Using the same data in an XML for >1 dynamic table in a form will not work as the data gets "consumed" by the first table and will not reset.

 

That is actually as designed. The data you use in your form gets consumed sequentially, once you are through (by rendering the original table) there is no way to "go back".

Simply coping the table design will not work. You will have to use scripting which force feeds the data into the second table OR you duplicate the data in the XML under a second tag which is then assigned to your copy. The second is a bit clunky, the first requires scripting skills.

A sample of how the coping could be done:

https://acrobatusers.com/forum/forms-livecycle-designer/how-duplicate-table-form-another-table/

Avatar

Level 1

Not sure why this would be beneficial in any scenario, but ok it is what it is.

 

If I may, I would like to ask a follow-up question. What I don't understand is how the data gets consumed even when the element presence is set to "hidden" or ïnactive".

 

I have a simple table which contains all data. Then I have two possible layouts for printing that data. Each layout is its own Table element, which contains a small script in the initialize event. The first table is only printed in case of "A", the second only in case of "B".

 

The result still is that the data gets consumed by the first Table element, whether it is visible/active or not. So if I print table layout A, everything is fine. If I need B, table is empty. If I switch the Table element positions, layout B works and layout A is empty.

 

Does it matter on which level you set the binding? If I wrap the Table elements in subforms and check for layout A/B in the subform, does the data still get consumed even though I'm not even touching the Table element?