| Categoría : Administración
Autor : Luis Carlos
Título : Mostrar y Gestionar Reportes en As/400
Descripción del truco:
Muestra todos los Reportes generados en el AS/400, permitiendo;
mostrar por usuario, la fecha de su reporte mas antiguo
y mas reciente, solicitar que te muestra los nombres
de reporte que comiencen o contenga ciertos caractere
(como Like del SQL), entrar en los reportes de un usuario,
para visualizar, modificar o eliminarlo. /***********************************************************/ /* */ /* Ejecuta Programa de Gestión de Spool via SLICESPLF */ /* */ /***********************************************************/ PGM PARM(&LIBRARY) DCL VAR(&LIBRARY) TYPE(*CHAR) LEN(10) DCL VAR(&STRIM) TYPE(*CHAR) LEN(100) DCL VAR(&USRCLS) TYPE(*CHAR) LEN(10) DCL VAR(&SPLCTL) TYPE(*CHAR) LEN(10) VALUE('*SPLCTL ') DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&WRET) TYPE(*CHAR) LEN(3) DCL VAR(&STRLEN) TYPE(*DEC) LEN(3 0) VALUE(100) DCL VAR(&STRPOS) TYPE(*DEC) LEN(3 0) VALUE(1) DCL VAR(&LENGH) TYPE(*DEC) LEN(3 0) VALUE(10) DCL VAR(&TRANSLATE) TYPE(*LGL) LEN(1) DCL VAR(&TRIM) TYPE(*LGL) LEN(1) VALUE('1') ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.. DCL VAR(&WILD) TYPE(*CHAR) LEN(1) DCL VAR(&RESUL) TYPE(*DEC) LEN(3 0) VALUE(0) DCL VAR(&ERR) TYPE(*CHAR) LEN(3) VALUE('0') DCL VAR(&ERROR) TYPE(*CHAR) LEN(1) VALUE('0') ADDLIBLE LIB(&LIBRARY) POSITION(*LAST) MONMSG MSGID(CPF0000) ********************************/ * */ * Comprobación de la Licencia */ * */ ********************************/ CALL PGM(SLICECHK) PARM(&ERROR) IF COND(&ERROR *NE '0') THEN(DO) SNDPGMMSG MSGID(ICE9999) MSGF(*LIBL/QMSGSL) MSGDTA(&ERROR) MONMSG MSGID(CPF0000) GOTO CMDLBL(FINAL) ENDDO RTVJOBA USER(&USER) RTVUSRPRF USRPRF(&USER) SPCAUT(&STRIM) USRCLS(&USRCLS) /*************************************/ /* */ /* Valida que el *USR tenga *SPLCTL */ /* */ /*************************************/ CALL PGM(SLICE950) PARM(&USER '*SPLCTL' &ERR) MONMSG MSGID(CPF0000) EXEC(DO) SNDPGMMSG MSGID(ICE9001) MSGF(*LIBL/QMSGSL) + MSGDTA('*USRPRF/*CURRENT ') MONMSG MSGID(CPF0000) GOTO CMDLBL(FINAL) ENDDO IF COND(&ERR *EQ '1') THEN(DO) SNDPGMMSG MSGID(ICE9001) MSGF(*LIBL/QMSGSL) + MSGDTA('*SPLCTL EN *USRPRF ') MONMSG MSGID(CPF0000) GOTO CMDLBL(FINAL) ENDDO ADDPFM FILE(SLICE01) MBR(&USER) MONMSG MSGID(CPF0000) EXEC(CLRPFM + FILE(SLICE01) MBR(&USER)) ADDPFM FILE(SLICE02) MBR(&USER) MONMSG MSGID(CPF0000) EXEC(CLRPFM + FILE(SLICE02) MBR(&USER)) DLTSPLF FILE(&USER) SELECT(*CURRENT *ALL *ALL + 'SLICEWRK ') MONMSG MSGID(CPF0000) F05: CHGVAR VAR(&WRET) VALUE(' ') OVRPRTF FILE(QPRTSPLF) FORMTYPE('SANLUIS ') + HOLD(*YES) USRDTA('SLICEWRK ') + SPLFNAME(&USER) WRKSPLF SELECT(*ALL *ALL *ALL *ALL) OUTPUT(*PRINT) CPYSPLF FILE(&USER) TOFILE(SLICE01) TOMBR(&USER) DLTSPLF FILE(&USER) SELECT(*CURRENT *ALL *ALL + 'SLICEWRK ') MONMSG MSGID(CPF0000) OVRDBF FILE(SLICE01) TOFILE(SLICE01) MBR(&USER) OVRDBF FILE(SLICE02) TOFILE(SLICE02) MBR(&USER) CALL PGM(SLICE01) /* Crea SLICE02 con Descripción */ /*************************************************************/ /* */ /* SLICE05 - Muestra Archivos en SPOOL así; */ /* */ /* Si Usuario es: OPERADOR SISTEMA = TODOS */ /* OFICIAL DE SEG. = TODOS */ /* ADMINISTRADOR \" = TODOS */ /* PROGRAMADORES \" = TODOS */ /* */ /* El Resto de Usuarios: SOLO LOS GENERADOS POR EL */ /* */ /*************************************************************/ IF COND(&USRCLS *EQ '*SYSOPR ' *OR &USRCLS + *EQ '*SECADM ' *OR &USRCLS *EQ + '*SECOFR ' *OR &USRCLS *EQ '*PGMR + ') THEN(CALL PGM(SLICE05) PARM('*ALL + ' &WRET &USER)) ELSE CMD(CALL PGM(SLICE05) PARM(&USER &WRET &USER)) CLRPFM FILE(SLICE02) MBR(&USER) MONMSG MSGID(CPF0000) DLTOVR FILE(*ALL) IF COND(&WRET *EQ 'F05') THEN(GOTO CMDLBL(F05)) IF COND(&WRET *EQ 'F20') THEN(DO) TFRCTL PGM(SLICE910) PARM(&LIBRARY) MONMSG MSGID(CPF0000) ENDDO RMVLIBLE LIB(&LIBRARY) MONMSG MSGID(CPF0000) FINAL: ENDPGM Ver
código CL Ver
código RPG y DDS
Fecha 22-09-2004
Actualización de fuentes 13-10-2004
Tienes algún truco que quieras compartir con todos
los profesionales de Recursos iSeries AS400?.Envianoslo
y si resulta seleccionado te enviaremos un vale de Amazon
por valor de 50$
|