PGM PARM(&ORDER_ID) DCL VAR(&ORDER_ID) TYPE(*CHAR) LEN(5) DCL VAR(&QRY) TYPE(*CHAR) LEN(1024) DCL VAR(&TEMPLATE) TYPE(*CHAR) LEN(30) DCL VAR(&RESULT) TYPE(*CHAR) LEN(30) DCL VAR(&PDFFIL) TYPE(*CHAR) LEN(30) DCL VAR(&TPLFLR) TYPE(*CHAR) LEN(256) DCL VAR(&RESFLR) TYPE(*CHAR) LEN(256) DCL VAR(&PDFFLR) TYPE(*CHAR) LEN(256) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(3000) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR)) CHGVAR VAR(&TEMPLATE) VALUE('S_04EXL_2B.XLS') CHGVAR VAR(&RESULT) VALUE('R_04EXL_2B.XLS') CHGVAR VAR(&PDFFIL) VALUE('R_04EXL_2B.PDF') CHGVAR VAR(&TPLFLR) VALUE('%LNCDIR%\SAMPLES') CHGVAR VAR(&RESFLR) VALUE('%LNCDIR%\SAMPLES') CHGVAR VAR(&PDFFLR) VALUE('%LNCDIR%\SAMPLES') /* Mise à jour des cellules adresse client et date de la commande */ CHGVAR VAR(&QRY) VALUE(' + SELECT ORDER_ID,ORDER_DATE,C.* + FROM SP_ORD O + INNER JOIN SP_CUST C ON O.CUST_ID=C.CUST_ID + WHERE ORDER_ID=') CHGVAR VAR(&QRY) VALUE(&QRY *TCAT &ORDER_ID) LNCTOXLS TOXLS(&TEMPLATE) XLSPTH(&TPLFLR) + CPYSRC(*SQL) FROMSQL(&QRY) + TOSHEET(INVOICE) XLSOPT(*MAP) + SHOWDOC(*NO) EXESRV(*DEV) + ENDOPT(*NONE) AUTOFIT(*NO) /* Envoi des données vers la table des articles de la commande */ CHGVAR VAR(&QRY) VALUE(' + SELECT P.PARTNO,D.QUANTITY, P.DESCRIPTIO,p.listprice + ,D.DISCOUNT FROM SP_DET d + inner join sp_parts p on P.PARTNO=D.PARTNO + where d.ORDER_ID=') CHGVAR VAR(&QRY) VALUE(&QRY *TCAT &ORDER_ID) LNCTOXLS TOXLS(*CURRENT) + CPYSRC(*SQL) FROMSQL(&QRY) + TYPECAST('PARTNO:CHAR') TONAME(ORDERLINE) + XLSOPT(*RESIZE) XLSMAP(*MAPNAME) + SAVDOC(&RESULT) SAVFLR(&RESFLR) + SHOWDOC(*NO) ENDOPT(*NONE) ENTIRER(*YES) + AUTOFIT(*NO) /* Le classeur est généré et Sauvé */ /* Conversion du classeur en format PDF */ LNCCMD CMD(PDFPRINTER) PARM1('File="' *TCAT &PDFFIL + *TCAT '";Directory="' *TCAT &PDFFLR *TCAT '"') LNCCMD CMD(XLPRINT) PARM1('Printer="LAUNCHER_PDF"') GOTO CMDLBL(END) ERROR: /* En cas d'erreur LNCxxxx, envoyer message au prog supérieur */ RCVMSG MSGTYPE(*EXCP) RMV(*KEEPEXCP) + MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + MSGFLIB(&MSGFLIB) LNCCLOSE MONMSG MSGID(LNC0000) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE) END: LNCCLOSE ENDPGM