When it comes to detail lines of a document, then you of course need to use a repeat loop, that iterates across all of the detail lines of your input file.
(You can find that in the document Library of InterFormNG2 under Demo/Demo_invoice.xml).
Here the question is: What is the best way to map the nodes inside the detail lines?
If the detail lines are not wrapping to a new page, then you should check out this section: Why detail lines are not overflowing to a new page.
In short you normally have four options:
It is hard to say, what it the best solution, but each solution has their own advantages and disadvantages.
This will hopefully help you to take the right decision.
If you want this output:
Then you can define your template like this:
(Here we use a header to include header on all the output pages).
The important thing is, that the container is dynamically positioned even though the texts are fixed positioned inside the container.
If you want this output:
Then you can define your template like this:
In this setup the Container is setup to use Row as the Flow direction, which is setup here:
We set the dimensions of the container to be dynamic in both directions.
With this flow direction the texts are placed beside each other, but now we need to set a specific width for each text in order to output columns, that have the same width independently on how wide the specific text is:
It is a good idea to only set a fixed width and use a dynamic height on the texts as this will make the container expand in the height to the required height depending on the font size used.
If you want more space between the texts, then you should consider to add a margin to the texts.
If you want to insert multiple output lines within the container, then you should consider to insert the Line break element, which you can find as indicated below:
You can also use the line spacing option on the text to add relatively more space in the vertical direction. The line spacing is setup on the text here:
If you want this output:
Then you can define your template like this:
(Here we use a header to include header on all the output pages).
The important thing is, that the table is dynamically positioned and the texts inside are dynamically positioned inside the cells.
If you want this output:
Then you can define your template like this:
(Here we use a header to include header on all the output pages).
The important thing is, that the table is dynamically positioned and the texts inside are dynamically positioned inside the cells.
The special thing about this solution is, that the repeat is activated on a row.