Bonjour,
Je recherche une solution à un problème de publipostage.
Cela fait plus d'une semaine que je cherche sur ce forum, dans les tutos, et divers sites anglophones sans trouver ce que je cherche.
Je n'ai jamais buté sur un problème comme ça aussi longtemps...
Je cherche à générer des genres de rapports automatiquement.
La source est actuellement une base de données MS Access mais ça peut évoluer vers de l'ODBC ou autre.
Et je travaille sous Word 2016 actuellement.
Déjà pour vous illustrer mon propos j'ai une base de donnée Accès comme suit :
Client => ID (c'est un NumAuto), Nom, Prénom, ScanAutorisation1 (Objet OLE / Pièce Jointe), etc.
Et pleins de tables liées :
Materiel => ID, idClient, NomCommercial, Type, NuméroSerie, Descriptif, Fonctionnement, etc.
Le publipostage à lieu sur cette table, et je ne cherche à générer un fichier Word pour une seule ligne Clients à la fois.
J'ai des tableaux simples que je génères dans certains paragraphes en utilisant le MERGEFIELD idClient dans les requêtes insérées via Insertion -> QuickPart -> Champs -> BaseDeDonnées
Mais voici les problématiques manquantes :
- Je dois répéter une section du document, d'environ une page, qui comprends des éléments fixes (titres hiérarchisés en tables des matières, textes types), et des champs de publipostage, mais qui ne doivent pas être issu de la table Clients depuis laquelle est issu le publipostage, mais d'un "SELECT * FROM Materiel WHERE idClient={L'iD client en cours}".
- Certains de ces paragraphes seront remplis par un champs MS Access texte enrichi Descriptif qui visiblement sors du HTML non interprété.
- Et enfin, je dois pouvoir embarquer des images dans la base de données MDB / ACCDB et les intégrer comme image dans Word. Il est impératif qu'il ne s'agisse pas d'un lien / d'une URL mais bien du contenu binaire du fichier dans la base de données (comme un BLOB dans MySQL). J'ai mis en exemple le champs ScanAutorisation1 dans l'exemple plus haut.
Le document à générer se compose ainsi :
Page 1 :
Client.Nom Client.Prenom Adresse etc.
Image de garde
Version du document
Date du document
Auteur
Vérifieur
Validateur
Page 2:
Table des matières
Page 3:
Tableau des versions par page qui sera probablement réalisé manuellement
Page 4:
Des paragraphes types remplis par des champs de fusions avec des champs issu de la table Client, et des contenus de tables liées via le QuickPart champs BaseDeDonnées.
Pages 5 et +
FOREACH => Pour chaques matériels du client idClient (SELECT * FROM Materiels WHERE idClient={MERGEFIELD idClient}
____Titre_1 => Materiels.NomCommercial
_____Paragraphe1____ = Materiels.Description où le champs doit être du texte enrichi rempli en formulaire dans access
____ Titre_2 => texte "Procédures A suivre"
____ Paragraphe2____ = Materiels.Procedures où le champs doit être du texte enrichi rempli en formulaire dans access
ENDFOREACH
Page N:
Titre => texte simple
Insertion Image Client.ScanAutorisation1
Il ne s'agit pas d'un travail pour quelqu'un d'autre, mais j'ai ce vrai besoin pour moi même et générer ces rapports un peu particulier, dont le plan est imposé (pour un motif légal - l'administration ne rigole pas avec ça ^^). Et c'est un vrai besoin car je dois être en mesure d'archiver et générer ces documents à volonté.
Je suis pas contre le VBA, ça fait longtemps que je n'y ai pas touché (depuis Office ... 97 ou 2003), donc j'ai pas mal à redécouvrir.
Mais je me débrouille dans pas mal de langage, et je ne vois pas comment faire au plus simple. Visiblement FileMaker ne gère pas le texte mis en forme, et je ne pense pas qu'il pourrait générer de tels rapports. Même si vous pensez à d'autre technologies ou logiciels n'hésitez pas je suis preneur.
Je sais coder en PHP, C#, jamais touché à VB.NET mais je devrais me débrouiller, Java, Python, FileMaker, j'ai Visual Studio Pro 2013, Netbeans, Eclipse, etc. Mais je ne vois pas comment générer un document avec une mise en forme particulière stricte dans ces langages (respecter un modèle, remplir des champs, répéter des sections de textes).
En vous remerciant tous beaucoup d'avance,
Cordialement,
Ludovic
Partager