PGM PARM(&PARAM1 &PARAM &FMT)
 
DCL VAR(&PARAM1) TYPE(*CHAR) LEN(20)
DCL VAR(&PARAM) TYPE(*CHAR) LEN(104)
DCL VAR(&LIST) TYPE(*CHAR) LEN(32)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&FMT) TYPE(*CHAR) LEN(10)
DCL VAR(&FICH) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&DEB) TYPE(*CHAR) LEN(10)
DCL VAR(&FIN) TYPE(*CHAR) LEN(10)
DCL VAR(&NBLC) TYPE(*CHAR) LEN(2)
DCL VAR(&NBLP) TYPE(*DEC) LEN(2 0)
DCL VAR(&POINT) TYPE(*DEC) LEN(1 0)
DCL VAR(&DEPC) TYPE(*CHAR) LEN(2)
DCL VAR(&DEPP) TYPE(*DEC) LEN(2 0)
DCL VAR(&COMPT) TYPE(*DEC) LEN(1 0) VALUE(1)
CHGVAR VAR(&FICH) VALUE(%SST(&PARAM1 1 10))
CHGVAR VAR(&LIB) VALUE(%SST(&PARAM1 11 10))
CHGVAR VAR(&NBLC) VALUE(%SST(&PARAM 1 2))
CHGVAR VAR(&NBLP) VALUE(%BIN(&NBLC))
IF COND(&NBLP = 0) THEN(GOTO CMDLBL(FORCE))
 
BOUCLE: CHGVAR VAR(&POINT) VALUE((&COMPT * 2) + 1)
CHGVAR VAR(&DEPC) VALUE(%SST(&PARAM &POINT 2))
CHGVAR VAR(&DEPP) VALUE(%BIN(&DEPC))
CHGVAR VAR(&DEPP) VALUE(&DEPP + 1)
CHGVAR VAR(&LIST) VALUE(%SST(&PARAM &DEPP 32))
CHGVAR VAR(&MBR) VALUE(%SST(&LIST 3 10))
CHGVAR VAR(&DEB) VALUE(%SST(&LIST 13 10))
CHGVAR VAR(&FIN) VALUE(%SST(&LIST 23 10))
CPYF FROMFILE(&LIB/&FICH) TOFILE(*PRINT) +
FROMMBR(&MBR) FROMRCD(&DEB) TORCD(&FIN) +
OUTFMT(&FMT)
CHGVAR VAR(&COMPT) VALUE(&COMPT + 1)
IF COND(&COMPT *LE &NBLP) THEN(GOTO +
CMDLBL(BOUCLE))
RETURN
/* FORCE COPIE SI NBR = 0 (VAL PAR DFT DE LA CDE ) */
FORCE: CPYF FROMFILE(&LIB/&FICH) TOFILE(*PRINT) +
FROMMBR(*FIRST) FROMRCD(*START) TORCD(*END) +
OUTFMT(&FMT)
FIN: ENDPGM
|