PreviousNext
Help > Programmation avec LAUNCHER Office > Les commandes LNCCMD > Liste des commandes > Commande WMAILMERGE
Commande WMAILMERGE

Exécute une fusion entre le modèle Word et le fichier de données.

Cette commande utilise les champs de fusion de Word.

 

Syntaxe

 

CHGVAR

VAR(&CMD) VALUE('WMAILMERGE')

CHGVAR

VAR(&PARM1) VALUE('
[Document="nom document principal"]

[;Destination=constante]

[;SaveAs="nom document sauvegarde"]
[;SaveAsFmt=constante]

[;DataSource="nom source données"]

[;HeaderSource="nom fichier entêtes"]

[;FirstRecord= Valeur]

[;LastRecord= Valeur]

[;SuppressBlankLines=True/False]

[;SourceFormat=Valeur]

[;HeaderFormat=Valeur]

[;Type=constante]

[;Execute=True/False ]

[;MailAddress="Champs adresse destinataire"]

[;MailSubject="sujet du message"]

[;AsAttachment=True/False]

[;OneDoc=True/False]

')

CHGVAR

VAR(&PARM2) VALUE(' ')

CALL

PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +

&PARM2 &RESULT)

MONMSG

MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))

 

 

 

 

Paramètres

 

 

Paramètres

 

Parm1

Document : nom du document principal, si ce paramètre est vide le document courant sera considéré comme document principal. S’il a été initialisé par une première opération de fusion, il est conservé.

 

Destination : destination de la fusion, peut être une des constantes suivantes : 

wdSendToEmail, pour un envoi par mail. Renseignez alors le paramètre MailAddress.

wdSendToFax, pour un envoi par fax.

wdSendToNewDocument, pour créer un nouveau document (valeur par défaut). Renseignez alors le paramètre SaveAS.

wdSendToPrinter, pour un envoi sur l'imprimante.

lncSendToFile, pour sauver chaque lettre vers un fichier individuel. Le paramètre SaveAs doit alors contenir un chemin et des règles de construction d’un nom de fichier unique pour chaque lettre.

 

SaveAs : Chemin et nom du fichier où sauvegarder le résultat de la fusion.
Si Destination=lncSendToFile, ou OneDoc=true, alors le nom du fichier spécifié par le paramètre SaveAs, doit être construit à partir de valeurs de champs de la source de donnée.

 

SaveFmt : wdFormatXMLDocument / wdFormatDocument / wdFormatDOSText / wdFormatDOSTextLineBreaks / wdFormatEncodedText / wdFormatHTML / wdFormatRTF / wdFormatTemplate / wdFormatText / wdFormatTextLineBreaks / wdFormatUnicodeText.

Si ce paramètre n’est pas spécifié,  c’est le format par défaut de Word qui est utilisé.

Par exemple, pour Word 2019, il s’agit du format wdFormatXMLDocument (DOCX).

Pour sauver au format PDF (à partir de Word 2010) on peut utiliser la valeur 17.

 

DataSource : nom du fichier source. Ce paramètre n’est pas obligatoire si le document principal contient déjà le nom de la source de données associée.

 

HeaderSource : nom du fichier qui contient les entêtes. Permet de spécifier une source distincte qui contient le nom des entêtes de colonnes (et qui apparaissent dans le document principal comme champs de fusion).

 

FirstRecord : numéro du premier enregistrement de la source de données, à utiliser pour le publipostage.

Si ce paramètre n’est pas spécifié, le premier enregistrement de la source de données est pris en compte.

 

LastRecord : numéro du dernier enregistrement de la source de données, à utiliser pour le publipostage.

Si ce paramètre n’est pas spécifié, le dernier enregistrement de la source de données est pris en compte.

 

SuppressBlankLines, indique s’il faut conserver les lignes vides ou non, après la fusion. Par défaut : true.

 

SourceFormat, HeaderFormat indiquent respectivement le format du fichier source et du fichier d’entête.
Les valeurs possibles sont les suivantes :

wdOpenFormatAllWord, wdOpenFormatAuto, wdOpenFormatDocument, wdOpenFormatEncodedText, wdOpenFormatRTF, wdOpenFormatTemplate, wdOpenFormatText, wdOpenFormatUnicodeText, or wdOpenFormatWebPages.
La valeur par défaut est : wdOpenFormatAuto.

 

 

Type : type de document de fusion. Les valeurs possibles sont les suivantes :

wdCatalog, wdEnvelopes, wdFormLetters (par défaut), wdMailingLabels, wdNotAMergeDocument.

 

Execute (Par défaut execute=true) : Si "execute = false", le document est simplement préparé pour une fusion, mais pas fusionné.

 

Onedoc=true équivaut à "Destination= lncSendToFile", pour sauver chaque lettre vers un fichier individuel. Le paramètre SaveAs doit alors contenir un chemin et des règles de construction d’un nom de fichier unique pour chaque lettre. Par défaut : false.

 

Si la destination est un envoi par email (wdSendToEmail), alors les propriétés suivantes peuvent être fixées :

MailAddress : Désigne le champ du fichier DataSource contenant l’adresse du destinataire.

 

MailSubject : Sujet du message email.

 

AsAttachment : indique que le document doit être attaché au message. Par défaut : false.

 

 

 

Remarques

 

1) Aucun paramètre n’est obligatoire.

 

2) Si le document principal a été préparé pour une fusion, il contient le nom de la source de donnée et la destination, il peut alors être ouvert par la commande WDOCUMENT avant d’utiliser la commande WMAILMERGE sans aucun paramètres.

Le type de document principal permet de modifier les caractéristiques de la fusion, les différents types sont : lettres-types, étiquettes, enveloppes, catalogue (pas de sauts de page entre deux enregistrements). Il doit être défini lors de la préparation du document principal.

 

Si une première opération a initialisé les valeurs du document principal, de la source de données et de la destination, on peut relancer un WMAILMERGE qui reprendra tous ces paramètres. Par exemple pour fusionner uniquement un enregistrement ou une plage d’enregistrements particuliers.

 

3)

La propriété « Execute=False » permet de préparer par programme un document de fusion, en lui attachant la source de données, sans l’exécuter.

Une fois le document de fusion préparé, éventuellement vide, le programme peut le présenter à l’utilisateur (WORDSHOW) afin que ce dernier le compose.

 

 4)

 Construire un nom de fichier à partir d’un champ de la source de données :

Quand l’option Destination=lncSendToFile est spécifiée, ou bien quand OneDoc=true, chaque lettre est sauvée vers un fichier. Le chemin et le nom de fichier données par le mot clé SaveAs peut contenir des références à des champs de la source de donnée. Le champ auquel on fait référence doit être entre caractères < et >.

Exemple :

Destination=lncSendToFile;SaveAs="D:\Lettres\Prop_<CUST_ID>.DOCX";

Dans cet exemple, chaque lettre sera sauvée dans le sous répertoire « Lettres », et le nom sera composé du mot « Prop_ » suivi de la valeur du champ « CUST_ID ».

 

 

Exemple

 

 CHGVAR

VAR(&CMD) VALUE('WMAILMERGE')

CHGVAR

VAR(&PARM1) VALUE('Document="C:\chemin\maitre.docx" ;+

Destination="wdSendToEmail";+

MailAddress="tech@easycom-aura.com"')

CHGVAR

VAR(&PARM2) VALUE(' ')

CALL

PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +

&PARM2 &RESULT)

MONMSG

MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))

 

 

 

Fusionne le document principal "Maitre.docx" avec la source de donnée qui lui est déjà associée et envoie le résultat par mail au service technique d’AURA Equipements.

 

CHGVAR

VAR(&CMD) VALUE('WMAILMERGE')

CHGVAR

VAR(&PARM1) VALUE('Document="C:\chemin\maitre.docx" ;+

DataSource="C:\chemin\SPCUST.txt";+

SaveAs="result_5_6.docx";FirstRecord=5;+

LastRecord=6')

CHGVAR

VAR(&PARM2) VALUE(' ')

CALL

PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +

&PARM2 &RESULT)

MONMSG

MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))

 

CHGVAR

VAR(&CMD) VALUE('WMAILMERGE')

CHGVAR

VAR(&PARM1) VALUE('SaveAS="Result_17_20.docx"+

FirstRecord=17;LastRecord=20')

CHGVAR

VAR(&PARM2) VALUE(' ')

CALL

PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 +

&PARM2 &RESULT)

MONMSG

MSGID(LNC0000) EXEC(GOTO CMDLBL(ERROR))

 

Prépare la fusion de la source de donnée spcust.txt avec le document principal, fusionne les enregistrements 5 et 6 vers le document result_5_6.docx puis fusionne, avec les mêmes éléments, les enregistrements 17 à 20.

 

     LNCCMD     CMD(WMAILMERGE) +                               

                 PARM1('DOCUMENT="C:\temp\test\+  

                 sp_cust.dotx";DATASOURCE="C:\temp\test+  

                 \csv2.TXT";SAVEAS="C:\temp\res\+  

                 res_<CUST_ID>.pdf";OneDoc=true;SaveFmt=17') 

 

Exécute la fusion en utilisant le modèle et la source de données spécifiés. Un PDF sera généré (basé sur le modèle) pour chaque enregistrement.

 

            

Voir aussi

 

         LNCPRTDOC

         DBFXFER

         Créer un fichier de fusion