Hi Russell,
Print preview is essentially the same as printing, but you see what will print on the screen instead with a blue margin.
For the calculation with A4 printing the printable area is 4300 high when the top and bottom margins are both 96 high (default ). Y = 4300 - myobject.height.
Where you set the print preview mode, save the current y, then recalculate the y for print preview and set printpreview. For example:
iiY = integer ( dw_1.Describe ( 't_1.y))
linewY = 4300 - integer ( dw_1.Describe ( 't_1.height))
dw_1.modify ( 't_1.y=' + string ( linewY) )
dw_1.modify ( 'datawindow.print.preview=yes' )
Setting it back:
dw_1.modify ( 't_1.y=' + string ( iiY) )
dw_1.modify ( 'datawindow.print.preview=no' )
NOTE: even though you have objects "floating" in foreground, you should still have your footer have a height.
Remember the purpose of using foreground was to avoid resizing and constraints in grid view,
HTH
Lars