Thanks Cynthia
I'm following a 'house style' for this output. The code for manually creating the by-lines and column headers is already there and works pretty well using compute blocks. The main difference with the standard report output is that the column headers are only ever printed once per page.
The new piece that I'm doing is to put consecutive reports on the same page, if they'll fit, controlling page breaks with the STARTPAGE=NO option and the PAGE option on the BREAK statement. What I've done works OK, except that it sometimes wrongly estimates how many lines remain on a page.
The key calculation comes from:
nFlowLines = max(ceil(length(cValue) / nColWidth),nFlowLines);
where nFlowLines is the number of lines needed to print an observation,
cValue is the text to be printed (or formatted text of a numeric value), and
nColWidth is the column width assigned for the column. This loops around for every cell of the table being printed.
This sometimes underestimates the actual number of rows that ODS PDF will use with the result that the output spills over the page.
Can you suggest a better way of estimating the number of lines that ODS PDF will use?
Regards
Steff
... View more