This is a small sample of Launcher’s mail merge functions.
The main document is named sp_cust.doc and is located in the Samples directory of LAUNCHER Office. The data source is dynamically transferred from the AS/400 to the PC by the MERGE program.
First the DBFXFER command transfers the SP_CUST file from the LAUNCHER Office library to the PC.
Then the WMAILMERGE command will launch the merge into a new document.
Type CALL LAUNCHER/MERGE to execute it.
Source
PGM
/* DECLARATIONS */
DCL VAR(&HANDLE) TYPE(*CHAR) LEN(50)
DCL VAR(&SVRADR) TYPE(*CHAR) LEN(30)
DCL VAR(&CCSID) TYPE(*CHAR) LEN(10)
DCL VAR(&CMD) TYPE(*CHAR) LEN(10)
DCL VAR(&OPT) TYPE(*CHAR) LEN(1)
DCL VAR(&PARM1) TYPE(*CHAR) LEN(512)
DCL VAR(&PARM2) TYPE(*CHAR) LEN(1024)
DCL VAR(&RESULT) TYPE(*CHAR) LEN(512)
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
DCL VAR(&MSG1) TYPE(*CHAR) LEN(80)
DCL VAR(&MSG2) TYPE(*CHAR) LEN(80)
/* INITIALISATION */
CHGVAR VAR(&HANDLE) VALUE('*ONLY')
CHGVAR VAR(&SVRADR) VALUE('*DEV')
CHGVAR VAR(&CCSID) VALUE('*JOB')
/* OUVERTURE DE LA SESSION - OPEN THE SESSION */
CALL PGM(LAUNCHER/LNCOPEN) PARM(&HANDLE &SVRADR &CCSID)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
/* FILE TRANSFERT - TRANSFERT DU FILE */
CHGVAR VAR(&CMD) VALUE('DBFXFER')
CHGVAR VAR(&PARM1) VALUE('%LNCDIR%\SAMPLES\SP_CUST.TXT')
CHGVAR VAR(&PARM2) VALUE('LAUNCHER/SP_CUST')
CALL PGM(LAUNCHER/LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +
&PARM2 &RESULT)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
/* OUVERTURE WORD - OPEN WORD */
CHGVAR VAR(&CMD) VALUE('WORDOPEN')
CHGVAR VAR(&PARM1) VALUE(' ')
CHGVAR VAR(&PARM2) VALUE(' ')
CALL PGM(LAUNCHER/LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +
&PARM2 &RESULT)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
/* FUSION - MERGE */
CHGVAR VAR(&CMD) VALUE('WMAILMERGE')
CHGVAR VAR(&PARM1) VALUE('DOCUMENT=
.DOC";DATASOURCE=
CHGVAR VAR(&PARM2) VALUE(' ')
CALL PGM(LAUNCHER/LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +
&PARM2 &RESULT)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
/* WORDWAIT */
CHGVAR VAR(&CMD) VALUE('WORDWAIT')
CHGVAR VAR(&PARM1) VALUE(' ')
CHGVAR VAR(&PARM2) VALUE(' ')
CALL PGM(LAUNCHER/LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +
&PARM2 &RESULT)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
/* FERMETURE SESSION LAUNCHER - CLOSE LAUNCHER SESSION */
CHGVAR VAR(&CMD) VALUE('END')
CHGVAR VAR(&PARM1) VALUE(' ')
CHGVAR VAR(&PARM2) VALUE(' ')
CALL PGM(LAUNCHER/LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +
&PARM2 &RESULT)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
CALL PGM(LAUNCHER/LNCCLOSE) PARM(&HANDLE)
MONMSG MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))
GOTO END
ERROR:
RCVMSG MSG(&MSG1) SECLVL(&MSG2) MSGID(&MSGID)
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +
MSGDTA('ERROR !!!!! ' *CAT &MSGID *CAT ' +
' *CAT &MSG1 *CAT ' ' *CAT &MSG2) +
MSGTYPE(*ESCAPE)
END:
ENDPGM