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(' [;Destination=constante] [;SaveAs="nom document
sauvegarde"] [;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.
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. wdOpenFormatAllWord,
wdOpenFormatAuto, wdOpenFormatDocument, wdOpenFormatEncodedText,
wdOpenFormatRTF, wdOpenFormatTemplate, wdOpenFormatText,
wdOpenFormatUnicodeText, or wdOpenFormatWebPages.
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
• DBFXFER