Voici le défit que je vous propose : j'ai créé un moyen personnel pour effectuer un publipostage programmé depuis une application.
le programme lit une base et pour chaque personne sélectionnée :
1) crée un fichier de fusion (ci-joint le fichier texte donnéestest.txt)
2) crée une instance d'un document writer à partir d'un modèle (ci-joint le fichier test.ott)
3) lance la macro Main en lui passant en paramètre d'entrée le chemin du fichier de fusion ( par exemple : "C:\Temp\donnéestest.txt")
Le document maitre test.ott contient des champs utilisateurs et une Text Table qui contient elle-même des champs utilisateurs.
Ainsi le document contient le nom, prénom et la date de naissance d'une personne et le tableau contient des champs pour fusionner des informations sur les membres de la famille de cette personne.
Pour les infos concernant la personne : Pas de problèmes ! les champs utilisateur sont bien valorisés par la macro Macro_Variables
mais pour les informations concernant la liste des membres de sa famille, le fichier texte contient une série de lignes du style :
$$T01R01&&NOM_DE_CHAMP1=VALEUR_DU_CHAMP1&&NOM_DE_CHAMP2=VALEUR_DU_CHAMP2 ....&&NOM_DE_CHAMPn=VALEUR_DU_CHAMPn
pour chacune de ces ligne, la macro "Macro_Tableaux" :
1) recherche le tableau N°1
2) recherche la ligne N° 1 contenant les champs utilisateurs à fusionner et la copie
3) crée une nouvelle ligne à la fin du tableau et colle la ligne copiée avec les champs
3) recherche un à un les champs et leur affecte leur valeur
4) exécute la méthode : ThisComponent.getTextFields().refresh() pour mettre à jour les champs.
le problème, vous l'avez surement déjà deviné, vient du fait que chaque ligne crée dans le tableau contient les même champs donc vont être mis à jour avec les même valeurs.
Ma question est la suivante : est-il possible d'affecter une valeur et rafraichir un champ dans une ligne bien spécifique d'un tableau indépendamment des autres champs du reste du document ? (ou bien ma solution n'est-elle pas adaptée à la mise à jours des champs utilisateurs Writer)
NB : Pour tester les macros du modèle ci-joint j'ai ajouté aux macros une macro de lancement (Start) qui lance les macros Macro_Variables et Macro_Tableaux en leur passant en entrée le chemin du fichier texte. Vous pouvez modifier le chemin qui est passé en dur.

