Transactional data page breaks

I am not understanding something fundamental in the way Connect works.

Datamapper extracts data by record, including all pages within the record defined by set boundaries. But how do I then define which data goes on which page in the template (print context)?

We print lots of transactional data, both account statements for credit unions and water utility bills. Since we mail everything we print, our data is presorted and output as page-delimited text. Pages are already delimited, and often the first (or second) page is different than all following pages.

In PlanetPress, we used channel-skip emulation to delimit pages and conditional logic for Page 1 vs Page N.

For the same data in Connect, I used a repeat loop to extract the transaction lines into a detail table, created a dynamic table and all the transaction lines run right off the bottom of the page.

Page delimiters are defined in Datamapper, but I don’t know how to utilize them in template creation. Page 2 of this particular statement is a static recon form with no data, and the following pages are a different format than Page 1. This table has all the transaction lines for 3 pages just running off the bottom of the Page 1.

What am I missing? Any insight would be appreciated.

Datamapper does not define page limits or page breaks, it just defines record boundaries.

Page breaks are done by Connect when it comes to create paginated output.

How did you set up your detail table?

If you let Connect creating the detail table rows, page breaks are done automatically.

I am not sure how to answer that. I used the Dynamic Table wizard, but the options seemed pretty sparse. Here is the HTML.

<table id="trans" data-column-resize="" data-hide-when-empty="" anchor="page_media_0" cellspacing=".125"
style="width: 6.6in; height: 712px; position: absolute; top: 439.021px; left: 75.2957px; page-break-before: always;"
data-expander="2019" offset-x="76.2624" offset-y="439.9876666388512">
    <thead>
        <tr>
            <th style="text-align: left; width: 99.37%;">
                <br>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr data-repeat="detail">
            <td style="text-align: left;">{{{line}}}</td> 
        </tr>
    </tbody>
</table>

I don’t remember seeing any settings in the wizard to define page breaks. And you can see the transaction lines run right off the page.

How does Connect determine page breaks, in a detail table or not. I also have several fields that appear at the top of every page (account number, statement date, page number) that are not part of a detail table. I tired capturing these fields on subsequent data pages, but getting them onto the template page is confusing.

This seems like entry-level stuff. I have done some complicated tasks in Connect with PDF data sources, dynamic forms, web templates. But this process right here is essential as we try and migrate 16 years of PlanetPress 7 jobs to Connect. This is the format of all our data. I cannot comprehend how data page does not equal printed page.

Perhaps this is too complicated an issue to post on this forum. I expect I will need to schedule some support/training for for some instruction using our specific data files. But if anyone has ideas or suggestions on where to find these answers, please advise.

As for a detail table, it is possible to force a page break on table row level by adding the attribute data-breakable to a <tr>-element, example:

<tr data-repeat="detail" data-breakable>
	<td style="text-align: left;">{{{line}}}</td>
</tr>

Please keep in mind that it isn’t possible to force a page break on the content of a table row.

In case the content needs to be shown at the top of each page, I recommend to add the content
to the master page(s) applied to the print section.

@rdaneel72 based on your screenshot it looks like the table is inside a <div>.

A <div> is never split, which also applies to its child elements.

IIRC the only top-level elements (i.e. direct children of <body>) that break across pages are <table> (based on rows), <p> (based on line boxes), <ul> and <ol> (based on list items).

If a <table>, <p>, <ul>, or <ol> is not top-level it will only break across pages if it appears in a structural element like <article>, <section>, or (not 100% sure about this one) <span>.

Thank you for the replies.

@Sander, thank you for the information, but this table is not inside a div. This table is actually the very first element in the source code.

@Marten, duplicating your code example had no effect.

As for your suggestion of adding elements to the Master Page, will that work if the field values change from page to page, such as “Page 2 of 4, Page 3 of 4?”

I wonder if the problem is in my Datamapper itself. I need a refresher on that section of the training course OL provided years ago (luckily the lessons were recorded). I know there was an exercise building an invoice from similarly formatted data, and I remember thinking this would be the way we handle most of the jobs we produce.

Does this have anything to do with it?

I found this in the OL Connect Help

But the option for inside breaks is not in the Table Formatting dialog box

I am using Version 2025.2.1.27910 • Professional.

???

@rdaneel72 no, the page-break-inside style is not relevant.

The cause is clear, sorry for overlooking it before. The problem is that the dynamic table is absolute positioned, which removes it from the flow. Only flow elements can break across pages.

How you managed to get to this state is not clear to me. You said you used the dynamic table wizard, but that wizard has no “absolute” checkbox:

image

Only the regular table wizard has that checkbox:

To fix this, you could remove the table and go through the dynamic table wizard again. Alternatively, remove the following from the table:

  • The inline position: absolute style
  • The anchor attribute
  • The offset-x attribute
  • The offset-y attribute

You may then also have to change the element order in the Source tab to make sure the table appears at the end.

1 Like

@Sander Thanks you for this information. It is good to know absolute-positioned elements will not flow across pages. Is there another position attribute that I should use?

I made the changes you suggested but they had little effect.

Here is the source code for the transaction table. It is currently the last element in the Source tab.

<table id="table_trans" data-column-resize="" data-hide-when-empty="" anchor="null"
style="width: 6.6in; top: 4.2in; left: 1in; position: fixed; height: 5.75in;" data-expander="2019" offset-x="null" offset-y="null">
    <tbody>
        <tr data-repeat="detail">
            <td style="text-align: left; width: 95.09%;">{{{line}}}</td> 
        </tr>
    </tbody>
</table>

I really do not understand how Connect breaks pages, and how I can ensure the data is imaged on the correct page.

Hi @rdaneel72,

Have you tried the idea of master pages and adding header/footer margins


The aim is to set the margins you want, then apply the master pages to your conten section, like the image below.

This needs to be used with content in <p>content here</p> not positional <div> boxex for it to work. Then re-adjust the margins until you hit a sweet-spot for your liking. Just something you could look into.

@rdaneel72 position:fixed is very similar in behavior to position:absolute, in both cases you are pulling the element out of the flow. You should not use any position style.

@Sander My apologies. I was mistaken, with a position:fixed, the table runs off the page…onto another page. The data breaks at exactly the point it should. So it does seem to be working as intended.

Of course, I have a long way to go. The second page (the back of page 1) is a static recon form that should not have any transaction lines, and all following pages have a slightly different format without the address block, but at least this is progress.

@james123456 Thank you for the suggestion. I did set up a Master Page with the logo and watermark, but without your advice I would not have even thought that the Master Page also has a Source tab. I will explore this option further

I have used PlanetPress for over 16 years, and Xerox VIPP/Freeflow for 10 years before that. I am really having trouble translating those skills to Connect. It operates much differently than anything I have used before, so thank you at all who have offered advice.

As a suggestion since you are struggling, we do have a Upland University where you can get online training on both Connect and the newly arrived Automate.
Check with your sales rep for more info on this. You can go at your pace.

Hi @rdaneel72,

Just as a starting point, I have attached a sample template and datamapper you can have look at. You can adopt it to your needs.
Sample.OL-template (19.8 KB)
Sample.OL-datamapper (4.1 KB)

Kind regards,
James.

Thank you for this example. This is the solution to a static page 2 form that I would have never thought of. Then, the detail lines can continue on page 3 and beyond.

I had made the static recon form a separate section, but I was at a loss as to how to insert it between 2 pages of detail lines. This bypasses that problem entirely.

Thanks to the support and advice of the members of this forum, I feel like I am going to figure this out, eventually.

1 Like

Guess I spoke too soon.

I have allowed content on front only of the first sheet. I feel like all settings are identical to the sample provided above.

Can you share an anonymized version of your project and share it hereor if you want in private? I’d like to play with it to see what’s what.

Thank you for the offer

ziastmts.OL-package (435.9 KB)
Please let me know if this is sufficent.

At the top of this thread is a screenshot of the PlanetPress ver7 job I am trying to reproduce. I have lots of scripting work to do the format each transaction line, which I thought would be the hard part. But I can’t really start painting the house until the walls are built.

I know this forum is not the place for in-depth project design help, but I wanted to try to get as far as I could before pulling the rip-cord for technical support. If you can determine what i am doing wrong, I would greatly appreciate it.

Can you also provide the same data thing but in PP7 form? That’ll give me something to compare for the result expected.

For your overflow issue, the problem is that you are calling dynamic table but telling it also to be specific heights, fixed position and x and y offset.

That can’t be if you want the overflow (pagination) of Connect to do its magic.
Also, refrain from putting everything in span inside dynamic table unless you really need to have some part of a text to be different than the rest of the same cell.

ziastmts_tableChanged.OL-package (457.9 KB)