PreviousNext
Help > Programming with LAUNCHER Office > Advanced programming > CL programs samples > Merge example
Merge example

 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