Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Code View:
Scroll
/
Show All PGM
DCL &dlvry *CHAR 10
DCL &dspname *CHAR 10
DCL &grpprf *CHAR 10
DCL &msg *CHAR 80
DCL &msgq *CHAR 10
DCL &msgqlib *CHAR 10
DCL &pgmrlib *CHAR 10
DCL &position *DEC 3
DCL &programmer *LGL 1
DCL &usrcls *CHAR 10
DCL &usrname *CHAR 50
DCL &usrprf *CHAR 10
DCL &usrtxt *CHAR 50
MONMSG cpf0000
/* Retrieve the user profile attributes */
RTVUSRPRF *CURRENT RTNUSRPRF(&usrprf) GRPPRF(&grpprf) +
MSGQ(&msgq) MSGQLIB(&msgqlib) +
TEXT(&usrtxt) USRCLS(&usrcls) DLVRY(&dlvry)
RTVJOBA JOB(&dspnam)
/* Display "Signing on..." message */
CALL qclscan (&usrtxt X'050F' X'001F' +
':' X'001F' +
'0' '0' ' ' &position)
IF (&position *GT 0) DO
CHGVAR &position (&position - 1)
CHGVAR &usrname %SST(&usrtxt 1 &position)
ENDDO
ELSE DO
CHGVAR &usrname &usrtxt
ENDDO
SNDPGMMSG MSGID(cpf9898) MSGF(qcpfmsg) +
MSGDTA('Signing on' *BCAT &usrname *BCAT 'at' +
&dspname *TCAT '..') +
TOPGMQ(*EXT) MSGTYPE(*STATUS)
/* If signing on with Client Access, override printer files */
IF (%SST(&dspname 1 6) *EQ 'ACGDSP') DO
OVRPRTF *PRTF DEV(&dspname *TCAT 'P1') +
PAGESIZE(82 132) LPI(8) CPI(16.7) OVRFLW(80) +
FOLD(*NO) PAGRTT(0) OUTQ(*DEV) HOLD(*YES)
ENDDO
/* Ensure print key formats output */
CHGJOB PRTKEYFMT(*PRTALL)
/* Determine if user is a programmer */
IF (&grpprf *EQ 'QPGMR' *OR +
&grpprf *EQ 'GRP_PGMR' ) DO
CHGVAR &programmer '1'
ENDDO
ELSE DO
CHGVAR &programmer '0'
ENDDO
/* Place ALTQSYS at top of library list */
/* for programmers and system operators */
IF (&programmer *OR +
&usrcls *EQ '*SYSOPR' ) DO
CHGSYSLIBL altqsys OPTION(*ADD)
ENDDO
/* If user is programmer, create programming library */
IF (&programmer) DO
CHGVAR &pgmrlib ('$' *CAT %SST(&usrprf 1 9))
CRTLIB &pgmrlib TEXT('Project library for' *BCAT &usrprf)
CRTSRCPF &pgmrlib/source TEXT('Main source file')
ADDLIBLE &pgmrlib POSITION(*FIRST)
ENDDO
/* If any messages are found in the user's message queue, */
/* display those messages before proceeding */
IF (&dlvry *NE '*BREAK') DO
RCVMSG MSGQ(&msgqlib/&msgq) MSGTYPE(*NEXT) MSGKEY(*TOP) +
RMV(*NO) MSG(&msg)
IF (&msg *NE ' ') DO
DSPMSG MSGQ(&msgqlib/&msgq)
ENDDO
RCVMSG MSGQ(&dspname) MSGTYPE(*NEXT) MSGKEY(*TOP) +
RMV(*NO) MSG(&msg)
IF (&msg *NE ' ') DO
DSPMSG MSGQ(&dspname)
ENDDO
ENDDO
/* Call personalizing program */
CALL mgtlib/&usrprf
IF (&programmer *OR +
&usrcls *EQ '*SYSOPR' ) DO
CALL qsys/qcmd
ENDDO
ENDPGM
|