| |
Publicado em agosto, 17 2017 - 11:27 AM |
Bonjour à tous,
Mon application actuel fait du publipostage sur Word (Modèle de doc avec des champs de fusion). dans la perspective d'une migration sur libre Office j'étudie la possibilité de réaliser la même chose. Les exemple trouvez n'étant pas clair pour moi, j'ai essayé la méthode suivante. - J'ai supprimer les champs de fusion pour les remplacer par du texte type "VAR_xxx" - Enregistrer mon document ".doc" en ".xml" - Traitement de remplacement des valeurs avec la fonction "remplace" Voici mon code de test:
SourceXML est une chaîne = fChargeTexte("C:\Users\xxx\Desktop\doc_test.xml") Résultat1 est une chaîne i est un entier = 1 bRes est un booléen
bRes = XMLDocument("test.xml",SourceXML)
newXML est une chaîne = Remplace(SourceXML,"VAR_xxx","toto") newXML = XMLConstruitChaîne("test.xml") fSauveTexte("C:\Users\xxx\Desktop\test.xml",newXML)
Ma chaine newXML contient bien la valeur "toto" a la place de "VAR_xxx" mais ca n'est pas pris en compte lors de l'enregistrement ! Avez vous une idée de ce qui cloche ?
merci d'avance |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em agosto, 17 2017 - 11:40 AM |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 17 2017 - 11:42 AM |
PS: Le terme publipostage ets mal choisi car je ne souhaite pas envoyer mon document par mail, juste créer un .odt |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 17 2017 - 11:49 AM |
Merci Jurassic Pork j'avais déja vu cela effectivement. Comme je ne comprend pas tout au niveau des différents paramêtres ca me semblait compliquer a maintenir (sans avoir essayé j'avoue) c'est pour ça que j'ai essayé une solution "plus simple" bien qu'elle ne soit surement pas terrible au yeux d'un spécialiste . Je vais quand même tester cela, et merci pour ta reactivité !! |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 17 2017 - 1:55 PM |
Sur ton modèle à quoi correspond le "Clients" ? "MesClient" etant le fichier ? et "Civilité" la colonne ? De plus tu as bien ajouté les champs en passant par "insertion -> Champs -> champs de mailing ? car sur ton exemple il n'ya pas les chevrons |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em agosto, 17 2017 - 11:12 PM |
hello, En fait je pars d'une table windev que je transforme en fichier csv qui est transformé lui même en base de données LibreOffice (.odb) :
C'est cette base de données qui sert alors de source de données pour le modèle writer et Clients représente le nom de cette source de données. j'utilise bien insertion -> Champs -> champs de mailing
Il y a une version plus à jour de mon code chez developpez.net ici : https://www.developpez.net/forums/d1634423/environnements-developpement/windev/remplacer-publipostage-word-vers-libreoffice/…
Si tu veux revenir à des choses plus simples dans le fil de discussion ci-dessus il y a Romulus qui parle de la technique du xml. Dans ton code je ne comprends pas pourquoi tu passes par un XMLDocument alors que tu ne veux faire qu'une substitution de chaîne. Un code comme ceci pourrait fonctionner :
SourceXML est une chaîne = fChargeTexte("C:\Users\xxx\Desktop\doc_test.xml") DestXML est une chaîne = Remplace(SourceXML,"VAR_xxx","toto") fSauveTexte("C:\Users\xxx\Desktop\test.xml",DestXML)
-- Ami calmant, J.PMensagem modificada, agosto, 17 2017 - 11:30 PM |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 18 2017 - 11:50 AM |
Bonjour Jurassic, encore merci. Effectivement ca marche avec cette solution simple. J'utilisais XMLDocument car j'avais vu des exemple ou c'était utilisé .... Cette solution est elle fiable ? Ca me parait très simple par rapport a ton exemple ! Je vais tout de même tester ta solution. Par contre je vais partir d'un fichier xml directement pour créer la bdd. |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 18 2017 - 4:28 PM |
Bon j'ai vraiment des difficultés a comprendre ...(pb de niveau !!)
un coup ca plante la oDocBase>>storeAsURL(OOFichier(MonRepSource + "test.odb"),arg_DbArgs) et quand sans savoir pourquoi ca n'a pas planté, ca plante la
oPublipostage>>Execute(arg_MyProps)
Qu'est ce qune valeure nommée ? |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 18 2017 - 4:46 PM |
alex a écrit :
Bon j'ai vraiment des difficultés a comprendre ...(pb de niveau !!) un coup ca plante la oDocBase>>storeAsURL(OOFichier(MonRepSource + "test.odb"),arg_DbArgs) et quand sans savoir pourquoi ca n'a pas planté, ca plante la oPublipostage>>Execute(arg_MyProps) Qu'est ce qune valeure nommée ?
Bon ca plante au deuxième point lors d'une première execution. C'est a dire losque aucun processus LIbreOFFice ne tourne. Cependant le tableau arg_MyProps est vide ... |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em agosto, 18 2017 - 10:45 PM |
hello, une valeur nommée c'est un objet LibreOffice avec comme propriétés un nom avec une valeur. Quelle version de LibreOffice utilises-tu ? 32 ou 64 bits ? O.S ?
Par contre je vais partir d'un fichier xml directement pour créer la bdd. Qu'entends-tu par la ? Si tu as changé ton code par rapport au mien quel est-il ?
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 20 2017 - 8:35 PM |
Bonjour, LibreOffice 64 bits de mémoire (je verifierais demain) OS Windows 10. Je n'ai rien modifié a par le nom des fichiers.
Je sais pas trop comment expliquer, pour insérer les champs de fusion dans libreOffice je suis partis d'un fichier XML pour créer la table. Que doit il y avoir dans le tableau arg_myProps ?
Encore merci de ton aide en tout cas |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 21 2017 - 8:52 AM |
Bonjour, finalement c'est une version 32 bits qui est installé. J'ai oublié le numéro de version sur mon précédent message: 5.2 |
| |
| |
| | | |
|
| | |
| |
Membro registado 962 mensagems Popularité : +183 (185 votes) |
|
Publicado em agosto, 21 2017 - 6:02 PM |
hello alex a écrit : > Que doit il y avoir dans le tableau arg_myProps ?
rien , il n'est défini que dans :
arg_MyProps est un tableau de 0 objet automation dynamique
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 21 2017 - 7:43 PM |
d'accord, donc ca devrait marcher ... je reverrai ca demain |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 22 2017 - 11:53 AM |
Bonjour, bon et bien j'ai toujours le même problème. Ma source odb est bien générée avec les données, mon document document est généré aussi mais sans les données.
De temps en temps j'ai aussi "wdtst.exe" a cessé de fonctionner. |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 23 2017 - 9:37 AM |
Bonjour, voici l'erreur que j'ai
Module : KERNEL32.DLL Adresse de base : 770F0000 Erreur systeme : Access violation (GPF) EIP = 771103BB OS : Windows 8 (6.2.9200) <= En réalité Windows 10
JE vais recréer un sujet sur le forum old car je ne suis pas en version 22... |
| |
| |
| | | |
|
| | |