I also had the same problem. what ever settings u do the page ejection is not proper in most of the dot matrix printers. so i always use program which writes to a ascii text file. here is the code to write labels to a ascii text file.
customer.dbf has custid,custname,add1,add2,add3,pin and has 1000 records
my program will be (this program will print 16 labels 2 across in one page)
nrou = 0 &&relative row position variable
pctr = 0 &&counter to keep track of how many addresses printed on one page
set device to file dlrlbl.txt &&the output will be directed to a ascii text file
sele a
use customer
go top
do while !eof()
scat memv &&the first records values will be assigned to memory variables
&&like m.custid,m.custname etc
if !eof()
skip &&skips to the next record to print second record
endif
@ nrou,000 say m.custid pict '!XXXX' &&prints first record
@ nrou,032 say custid pict '!XXXX' &&prints second record
@ nrou,000 say m.custname pict '!XXXX' &&prints first record
@ nrou,032 say custname pict '!XXXX' &&prints second record
@ nrou,000 say m.add1 pict '@!' &&prints first record
@ nrou,032 say add1 pict '@!' &&prints second record
@ nrou,000 say m.add2 pict '@!' &&prints first record
@ nrou,032 say add2 pict '@!' &&prints second record
@ nrou,000 say m.add3 pict '@!' &&prints first record
@ nrou,032 say add3 pict '@!' &&prints second record
@ nrou,000 say 'Zip - : ' + allt(m.pin) &&prints first record
@ nrou,032 say 'Zip - : ' + allt(pin) &&prints second record
nrou = nrou + 2 &&2 lines space betwen labels
pctr = pctr + 1 &&pctr is incrimented to find out how many
&&lables printed on each page
if pctr = 8 &&if i print 16 lables (2 across)
&&(I.e. 8 * 6 = 48 lines), then i eject
nrou = 0 &&this puts the eject char in the text file
nrou = nrou + 1
pctr = 0 &&the label tracker variable is reset to 0 for next page
endif
sele dealer
if !eof()
skip
endif
enddo
set devi to screen
modi comm dlrlbl.txt
note : the pctr variable can be changed to suit your paper settings.
thanks
(lakshminarayana r)
EMail@HideDomain.com