This is a technique I've used in the past for printing large reports on multiple printers. It would also work well if you have a report that needs to print in multiple departments or a summary page in a mangers office.
Start out by defining an external print file. Inside of your RPG define the file using the user open keyword. Before any output can be performed you must now open the print file. When you are ready to start a new spool file (maybe after a set number of pages or after a key changes) close the file then reopen it. This will create a new spool file.
Finally, close the print file before you exit. I am including some code you can put in a CL to automate the moving of the spool files to the correct outq. The files are created using a seq. number, which makes it easy to get the create spool file.
PGM
/* Call the Print Program */
CALL PGM(PRINTTEST)
/* Move the spool files */
CHGSPLFA FILE(P#SDB001) SPLNBR(1) OUTQ(TESTOUTQ1)
CHGSPLFA FILE(P#SDB001) SPLNBR(2) OUTQ(TESTOUTQ2)
ENDPGM
****************** End of data ***********************
This was first published in May 2001