` Printed Icetips Article

Icetips Article



Par2: Printing large memos
1998-03-23 -- Jeff Berlinghoff
 
The only way I've found to do this is with two report controls on different
detail bands. Make a text control on a band that you never print. Make it
the correct width, etc, then on another detail (RPT:MemoLine), make a
variable string (?String1) as wide as the memo.

Assign the value to the memo. (In a rather complicated report I have done,
I have several memo fields for one report, so you need to
?TextControl{prop:use}=fil:memofld)

Then make a loop:
LOOP Line# = 1 TO ?TextControl{prop:LineCount}
  ?String{prop:text}=?TextControl{prop:Line,Line#} !get one line of text
  DO CheckEndOfPage
  PRINT(RPT:MemoLine)
END

The last thing to do, of course, is to write the CheckEndOfPage Routine.
I'm going from memory on this one, don't have that source right here, but
basically need to check to see if the current YPos on the page is greater
than the YPos of your page footer, if it is, call EndPage(), and reset the
XPos to just below the Header.

If you only have one Memo to do, you can just put the code inside the loop,
but I recall doing all kinds of things where I needed to be able to check
for the end of the page, so I made it into a routine.



Printed April 28, 2024, 4:18 pm
This article has been viewed/printed 35115 times.