SELECT * FROM frfrmque ; WHERE pqid = curPrintQueue.pqid AND NOT DELETED(); ORDER BY fqid; INTO CURSOR curForms IF _TALLY > 0 CREATE CURSOR printed (printdoc C(30)) && see Note 1 SELECT curForms SCAN IF fqid = " 2" && See Note 2 DO prtforms ENDIF DO CASE CASE fqrectype = "F" Thisform.PrintForm Thisform.PrintedForm(curforms.fqrectype,curforms.fqoutput) && See Note 1 CASE fqrectype = "R" lcType = TRIM(fqoutput) Thisform.Print&lcType Thisform.PrintedForm(curforms.fqrectype,curforms.fqoutput) && See Note 1 CASE fqrectype = "D" lcType = TRIM(fqoutput) Thisform.Print&lcType Thisform.PrintedForm(curforms.fqrectype,curforms.fqoutput) && See Note 1 CASE fqrectype = "S" Thisform.PrintSeparator Thisform.PrintedForm(curforms.fqrectype,curforms.fqoutput) && See Note 1 CASE fqrectype = "P" Thisform.PrintType = ALLTRIM(curForms.fqParam) Thisform.PrintSeparator Thisform.PrintedForm(curforms.fqrectype,curforms.fqoutput) && See Note 1 ENDCASE ENDSCAN SELECT printed && See note 1 LIST TO PRINT OFF NOCONSOLE ENDIFNote 1: The PRINTED table was added so that I can verify that the jobs were sent to the printer in the correct sequence. A new method (PrintedForm) was added to the form and is called after every print job is created. The method translates the codes in the table to English and then appends a new record to the PRINTED table. At the end of the SCAN, this table is LISTed to the printer.