[Simple Reports] SimpleReports for OutSystems 11

Forge Component
(25)
Published on 4 Apr (3 weeks ago) by Marcos Galigarcia
25 votes
Published on 4 Apr (3 weeks ago) by Marcos Galigarcia

Any plans for supporting OS11?

Edit: I am using OS11 and the OS version does not seem to be causing my issue.

Marcos,

I have been using the Simple Reports component in its current version with Outsystems 11 with no issues in a recent project.

Have you encountered issues in usage?

Carina

I'm having an issue with a ListRecords and am currently diagnosing. I'm not getting any errors, but when I include the ListRecords, the page goes into an endless loop generating the report. While debugging in Chrome, I can see that the offset of the page-content-remaining-to-process is always less than the offset of the current-page so it never gets processed. I'm still working on finding the cause but it might be something in the data I'm using...

It seems one of my records doesn't fit on a page and this causes an endless loop. I'm not sure how I could detect this and respond to it.

Have you perhaps enclosed the ListRecord in a printcontainer? 

ListRecord and TableRecord need to be outside the Print Containers to properly display them on your page without bugs like the one you described arising. 

It is not in a Print Container. It is at the top level of a PageContentArea of a Page element. The problem is that since the element is taller than the page, the following is always false.

// Check if Element is between Top and Bottom Page
        if ( (elementTop >= currPageContentTop) && ((elementTop + elementHeight) <= currPageContentBottom ) ) {
          // Its inside
          return true;
        } else {
          // Its outsite
          return false;
        }

If an element doesn't fit on the current page, a new page is created and the attempt is repeated. Since it is taller than the page, the element will never fit so the loop continues forever. In the case of ListRecords the smallest chunk is defined by:

$(this).find("> div").each(function()

This grabs an entire record from the ListRecords. It seems I need to find a smaller chunk (than > div) that doesn't break the html, as the text can include bullets, bold, and colors.

I am testing with:

$(this).find("> div > *").each(function()

So far it seems to work.

I have updated the title of the question as it's clear to me that the problem is not related to OS11.

Solution

There is now a development version that allows for content that is taller than a page. Each row of a TableRecords still needs to fit on a page, but everything else (so far) is splitting into different pages as needed.

Solution