Function PRow() Foundation
Determines the row position of the print head.
PRow() --> nRow
The return value of PRow() is a positive integer which corresponds to the current print row. The first row position has the value zero.
The row position of the print head is determined using the environment function PRow(). The function manages an internal counter which is only updated when output to a printer occurs due to SET DEVICE TO PRINTER or SET PRINTER ON. The internal counter has the value zero at the start of the program. Following the command EJECT the counter is set back to zero. Otherwise PRow() works like the function Row(), except that it tracks the printer and not the screen.
The internal counter is updated to correspond with the print row when characters are output with ?, QOut() or @..SAY. When control characters like Line-Feed (Chr(10)) or Form-Feed (Chr(12)) are sent to the printer and directly change the row position of the print head, the internal counter of PRow() differs from the current position of the print head. PRow() does not recognize these control characters. In this case the value of PRow() must be set to the correct value using the function SetPrc().
The function PRow() is used along with the function PCol() for formatting the output of forms or tables where the print position occurs relative to the last position of the print head.
// The example shows a print program for address labels
// which are printed using SetPrc(), PRow() and PCol().
PROCEDURE Main
USE Customer NEW EXCLUSIVE
INDEX ON Upper(Lastname+Firstname) TO CustA
SET DEVICE TO PRINTER
SetPrc( 2, 0 )
DO WHILE .NOT. Eof()
@ PRow() , 0 SAY Trim( Firstname )
@ PRow() , PCol()+1 SAY Trim( Lastname )
@ PRow()+1 , 0 SAY Address
@ PRow()+1 , 0 SAY Trim( City ) + ","
@ PRow() , PCol()+1 SAY Trim( State )
@ PRow() , PCol()+1 SAY Zip
SKIP
SetPrc( 2, 0 )
ENDDO
SET DEVICE TO SCREEN
CLOSE Customer
RETURN
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.