>lnRow1=1
>
>select MyCursor
>scan
>lcOrder=trim(MyCursor.OrderID)
>lcDetail=trim(MyCursor.detail)
>
>@ lnRow1, 1 Say lcOrder font "arial", 14 Style "B"
>@ lnRow1, 12 Say lcDetail
>
>lnRow
1=lnRow
1+1
>
>endscan
Two things - first, Arial+14+B is quite big and, depending on the size of the orderid field, may be too big, and may get chopped by the second SAY command. Try to adjust this second Say command with a number bigger than 12. You can use $ (shorthand for "current @say column") as the column coordinate, or even better $+1 - that's an old xBase trick (though probably documented somewhere in the help for Say and Get commands, in some earlier version of the Fox help), and since you're trimming the lcOrder, it will bring the printed content close to wherever this string ends. That should take care of the chopping from the right side.
Second, the row counter should be lnrow1 - note the bold.
As far as vertical chopping is concerned, I thought you may need to print a single space at the end of the line at the size of the largest font you're using in that line, but that doesn't work - the height of the line is not calculated from the largest font you use for that line, but from the default font for the printer (screen in my case - I tested it on screen). The @ say coordinates are calculated in terms of this default font. You can either change the default font for your printing session (see Set Printer ... Font in help) or by manual calculation of coordinates - I tried lnRow
1=lnRow
1+1.4 and it worked. This second thing is also easier to use, if you consider the need to calculate the page height, i.e. when do you want to reset this variable to zero to force a page break.