Problem solve Get help with specific problems with your technologies, process and projects.

Splitting spool files using a user-controlled print file

This technique allows you to print large reports on multiple printers.

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.

 /* 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)        
 ****************** End of data *********************** 

Dig Deeper on iSeries CL programming