Mostrando entradas con la etiqueta Mandato. Mostrar todas las entradas
Mostrando entradas con la etiqueta Mandato. Mostrar todas las entradas

jueves, 20 de octubre de 2011

Pasar al IFS archivos de AS400 / iSeries en formato texto con CPYTOIMPF.

Si queremos usar la línea de mandatos para realizar esta tarea, aquí tenemos un ejemplo del uso del mandato CPYTOIMPF para pasar ficheros a formato txt:

CPYTOIMPF FROMFILE(LIBRERIA/ARCHIVO MIEMBRO) TOSTMF('/temporal/carlos/nombre.txt') FROMCCSID(284) STMFCCSID(*PCASCII) RCDDLM(*CRLF) STRDLM(*NONE)

domingo, 23 de enero de 2011

Imprimir un fuente con 132 líneas por página.

No suelo necesitar imprimir fuentes, pero hace poco me encontré con un fuente de tantas líneas que no tuve más remedio que imprimirlo y el resultado fueron 59 páginas. ¡¡¡ Ostrás !!!, pues yo quiero reducir el número de páginas. ¿Como? Aumentando el nº de líneas por página. Total, que me hice un mandato y un CL que me permitiese listar normal o comprimido para posibles posteriores necesidades. Aquí están por si alguien lo quiere utilizar.

Sobra decir que necesitas una configuración de impresora que soporte esa resolución y que se pueden incluir todas las opciones que quieras (8 líneas por página, 15 cpi, etc.) a gusto del consumidor.

Mandato.

/*-------------------------------------------------------------------*/
/* IMPRIMIR UN FUENTE. */
/* */
/* Para compilar con el programa C9PRTSRC */
/*-------------------------------------------------------------------*/
CMD PROMPT('Imprimir un fuente.')
PARM KWD(FILE) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*PRV) MIN(0) CHOICE('Nombre PF +
Fuente') PROMPT('PF Fuente')
PARM KWD(LIB) TYPE(*CHAR) LEN(10) RSTD(*NO) +
MIN(0) CHOICE('*LIBL, Nombre biblioteca') +
PROMPT('Biblioteca PF-SRC')
PARM KWD(MBR) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*PRV) MIN(0) CHOICE('*FIRST, Nombre +
miembro') PROMPT('Miembro a imprimir')
PARM KWD(PRT) TYPE(*CHAR) LEN(10) RSTD(*NO) +
DFT(*JOB) MIN(0) CHOICE('*JOB, Nombre +
impresora') PROMPT('Impresora a utilizar')
PARM KWD(MOD) TYPE(*CHAR) LEN(1) RSTD(*YES) +
DFT(N) VALUES(N C) CHOICE('N C') +
PROMPT('¿Normal o Comprimido? N/C')

Y a continuación el pequeño CL que recibe los parámetros del mandato.

/******************************************************************************/
/* IMPRIMIR FUENTE */
/******************************************************************************/
PGM PARM(&FILE &LIB &MBR &PRT &MOD)
/**/
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&PRT) TYPE(*CHAR) LEN(10)
DCL VAR(&MOD) TYPE(*CHAR) LEN(1) /* Modalidad: +
C=Comprimido. */
/**/
IF COND(&PRT *EQ ' ') THEN(DO)
CHGVAR VAR(&PRT) VALUE('*JOB')
ENDDO
/* OVRPRTF */
IF COND(&MOD *EQ 'C') THEN(DO)
OVRPRTF FILE(QPSUPRTF) DEV(&PRT) PAGESIZE(132) +
LPI(12) CPI(16.7) OVRFLW(130) OUTQ(*DEV) +
SECURE(*YES)
ENDDO
ELSE CMD(DO)
OVRPRTF FILE(QPSUPRTF) DEV(&PRT) OUTQ(*DEV) +
SECURE(*YES)
ENDDO
/* IMPRIMIR */
STRSEU SRCFILE(&LIB/&FILE) SRCMBR(&MBR) OPTION(6)
/* ELIMINAR OVRPRTF */
DLTOVR FILE(QPSUPRTF)
/**/
ENDPGM

Saludos.