+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

endless printing loop


(Guest) #1

Hi
We use LL14.

We have the report with table object in it. The table object has page header, details section and page footer. Details section contains a reference to text field. In run-time a large multiline text value is assigned to this field. After this field is printed, no sufficient room left on a page to print table footer. So, LlPrintFieldsEnd() function returns “wanring” LL_WRN_REPEAT_DATA. In such case L&L Programmer’s reference direct us to call LlPrintFieldsEnd() again in a loop until no warning returns. This pattern can be found in many places within the guide, for example, on the page 41:

(LlPrintFieldsEnd)

(LlPrintFieldsEnd)

The following code implemented in our DLL corresponds to this pattern:

HLLJOB hJob = …;

while(LlPrintFieldsEnd(hJob) == LL_WRN_REPEAT_DATA);

Each such call to LlPrintFieldsEnd() appends a new page to the print and L&L tries to print again those rows that did not fit the previous page. But as details section and page footer still does not fit the new page, the process repeats again and again and never stops.

We asking whether some approach exists to split one “thick” table row into several pages in such a way that a large multiline text would start on the first page and continue on following pages? Or, if such splitting is not possible, which pattern do you suggest to use to prevent endless loop in general regardless structure of particular report?


(Guest) #2

Hi Konstantin,

the question is WHY the footer is so large, and why it cannot be
page-wrapped. Usually LL wraps large footers, unless you explicitly
deny it (or the font is too large, or there never is enough space for
even one line, …).Use the “report structure” tool window, mark your
report, and look at the “line options > footer lines > keep together”
property. Is it TRUE?

Paulchen

“Konstantin Laskovenko” <k.laskovenko@levi…> wrote in message
news:103951113200915325@combit.net

Hi
We use LL14.

We have the report with table object in it. The table object has
page header, details section and page footer. Details section
contains a reference to text field. In run-time a large multiline
text value is assigned to this field. After this field is printed,
no sufficient room left on a page to print table footer. So,
LlPrintFieldsEnd() function returns “wanring” LL_WRN_REPEAT_DATA. In
such case L&L Programmer’s reference direct us to call
LlPrintFieldsEnd() again in a loop until no warning returns. This
pattern can be found in many places within the guide, for example,
on the page 41:

(LlPrintFieldsEnd)

(LlPrintFieldsEnd)

The following code implemented in our DLL corresponds to this
pattern:

HLLJOB hJob = …;

while(LlPrintFieldsEnd(hJob) == LL_WRN_REPEAT_DATA);

Each such call to LlPrintFieldsEnd() appends a new page to the print
and L&L tries to print again those rows that did not fit the
previous page. But as details section and page footer still does not
fit the new page, the process repeats again and again and never
stops.

We asking whether some approach exists to split one “thick” table
row into several pages in such a way that a large multiline text
would start on the first page and continue on following pages? Or,
if such splitting is not possible, which pattern do you suggest to
use to prevent endless loop in general regardless structure of
particular report?