Our users can send reports to any printer on the system on demand. Pressing the attention key from any program or menu displays our office productivity menu, which has an option to select printers. When the user selects this option, program CHGPRTRCL (1) is called to retrieve the printers from the system and put the list in a file with the DSPOBJD command. The nice thing about this is that the object text is also put in the file. Therefore, the description of the printer is available to be displayed and the users can then identify where the printer is.
Our users can send reports to any printer on the system on demand. Pressing the attention key from any program or menu displays our office productivity menu, which has an option to select printers. When the user selects this option, program CHGPRTRCL (Figure 1) is called to retrieve the printers from the system and put the list in a file with the DSPOBJD command. The nice thing about this is that the object text is also put in the file. Therefore, the description of the printer is available to be displayed and the users can then identify where the printer is.
Program CHGPRTRRG (2) is then called which displays the printers (based on our naming conventions) in a subfile display, CHGPRTRDF (3). The users can place an 'X' beside the printer they wish to use. When the user exits the program, the CHGJOB command is executed using the selected printer name as the new OUTQ.
Program CHGPRTRRG (Figure 2) is then called which displays the printers (based on our naming conventions) in a subfile display, CHGPRTRDF (Figure 3). The users can place an 'X' beside the printer they wish to use. When the user exits the program, the CHGJOB command is executed using the selected printer name as the new OUTQ.
Note: This program gives you the ability to change your output only to an OUTQ with a corresponding printer of the same name.
Bruce Knoll Kentwood, Michigan
TechTalk: Printing Anywhere on Demand
Figure 1 CL program CHGPRTRCL
CHGPRTRCL: + PGM DCL VAR(&OUTQ) TYPE(*CHAR) LEN(10) DSPOBJD OBJ(QUSRSYS/*ALL) OBJTYPE(*OUTQ) OUTPUT(*OUTFILE) + OUTFILE(TEMPOUTQ) OUTMBR(*FIRST *REPLACE) MONMSG MSGID(CPF9860) RTVJOBA OUTQ(&OUTQ) OVRDSPF FILE(CHGPRTR) TOFILE(CHGPRTRDF) CALL PGM(CHGPRTRPG) PARM(&OUTQ) DLTOVR FILE(CHGPRTR) CHGJOB JOB(*) OUTQ(&OUTQ) ENDPGM
TechTalk: Printing Anywhere on Demand
Figure 2 RPG program CHGPRTRRG
H FTEMPOUTQIF F 382 DISK FCHGPRTR CF E WORKSTN F KNUM 1 F SFLINEKSFILE SFLRCD ITEMPOUTQAA I 24 24 PRT1 I 24 33 PRTID I 59 108 PRTDSC C *ENTRY PLIST C PARM PRINT 10 C* C MOVE PRINT SCPRT C EXSR SUB1 C WRITEFKEYS C EXFMTSFLCTL C* C *INKC DOWEQ'0' C *IN98 DOUEQ'1' C READCSFLRCD 98 C *IN98 IFEQ '0' C MOVE *BLANK SFSEL C UPDATSFLRCD C MOVE SFPRT SCPRT C SETON 98 C MOVE SCPRT PRINT C END C END C WRITEFKEYS C EXFMTSFLCTL C END C SETON LR C* C SUB1 BEGSR C Z-ADD1 SFLINE 30 C READ TEMPOUTQ 99 C *IN99 DOWEQ'0' C PRT1 IFEQ 'P' C PRT1 OREQ 'Q' C MOVE PRTID SFPRT C MOVE PRTDSC SFDSC C WRITESFLRCD C ADD 1 SFLINE C END C READ TEMPOUTQ 99 C END C ENDSR
TechTalk: Printing Anywhere on Demand
Figure 3 Display file CHGPRTRDF
A* 90/09/06 13:09:44 ERNIE REL-R02M00 5728-PW1 A DSPSIZ(24 80 *DS3) A PRINT A INVITE A CF03 A R SFLRCD SFL A* 90/09/06 11:38:35 ERNIE REL-R02M00 5728-PW1 A SFSEL 1A I 5 4 A SFPRT 10A O 5 11 A SFDSC 50A O 5 27 A R SFLCTL SFLCTL(SFLRCD) A* 90/09/06 13:09:44 ERNIE REL-R02M00 5728-PW1 A SFLSIZ(0036) A SFLPAG(0018) A OVERLAY A 52 PUTOVR A N51 SFLDSP A N51 SFLDSPCTL A N51 SFLEND A 1 27'SELECT PRINTER OUTPUT QUEUE' A DSPATR(HI) A 1 63DATE A EDTCDE(Y) A 1 73TIME A 2 24'Current output queue:' A SCPRT 10A O 2 47OVRDTA A 3 3'(X)' A 4 2'Select' A DSPATR(HI) A 4 11'Printer Outq' A DSPATR(HI) A 4 27'Output Queue Description' A DSPATR(HI) A R FKEYS A* 90/09/06 11:28:58 ERNIE REL-R02M00 5728-PW1 A LOCK A CLRL(*NO) A OVERLAY A 23 2'F3=Exit Roll Enter=Change prin- A ter'
LATEST COMMENTS
MC Press Online