Well, I still do it much the same way. I just include the 'Pre-Printed" elements in the array / list of Items. I have tried a number of variations on the approach, but unless you are going to the thrid party stuff (Crystal Reports) it is really just that - variations on the theme.
Make the list of 'objects' to print with their attributes. Get the Dynamic elements (fields). Loop throuhg the list setting the position and (Font) attributes. Do the next one. For the general condition of reporting (the columar list of many instances of the object), you need to keep track of the used / available real estate, so when the Vertical position runs off the bottom of the page, you can finish the current page and start the next one (with the sam / different "header" section. Likewise, you need to "justify" the fields within their allocated space, but it is really simple - just tedious.
MichaelRed
mred@att.net
There is never time to do it right but there is always time to do it over