SIG 11 ARTICLES DOCUMENTS MEMBRES LIENS

La pratique du publipostage conditionnel

Après deux pages de préparatifs, il est temps d'entrer dans le vif du sujet. Mais puisqu'on a sous la main une base de données, on ne se privera pas de recourir à ses capacités pour notre publipostage, lequel s'appuiera non sur la table adresses, mais sur une requête : notre courrier sera en effet adressé seulement aux personnes qui ne font pas partie du département Direction.
Pour cela, rendez-vous sur l'onglet Requêtes, et un click sur le bouton SQL pour faire une requête à l'ancienne : c'est plus sûr.
On prend les champs qui nous intéressent, on pose le critère NOT LIKE 'direction', on n'oublie pas le ; et on clique sur le bouton Exécuter, à gauche dans la barre d'outils.
Le résultat est conforme à nos attentes ; on enregistre donc la requête.
Appellons-la developpeurs, fermons-la, et fermons également la fenêtre de gestion des sources de données
Nous voici de nouveau face à OpenOffice.org Writer. La première chose à faire, par l'intermédiaire du menu Affichage / Source de données , est de retrouver notre requête : il nous suffit de déplier l'arborescence de la base de données qui se trouve maintenant dans le volet supérieur de l'application, et de l'ouvrir d'un double-click sur developpeurs. Elle se présente classiquement sous la forme d'un tableau avec ses en-têtes de colonnes qui autorisent les tris et ses en-têtes de lignes qui permettent sélections continues et discontinues.
On peut maintenant passer à la rédaction de la lettre-type, laquelle sera complétée par des champs appartenant à trois catégories distinctes, toutes trois accessibles par l'intermédiaire du menu Insertion / Champ / Autres :
  1. La date, fixe et complète, sur l'onglet Document
  2. Les champs de noms et d'adresses des destinataires, disponibles dans l'onglet Base de données ; il suffit de sélectionner le champ approprié, de cliquer à l'endroit voulu sur le texte, puis de cliquer sur Insérer. Mais on peut tout aussi bien cliquer et glisser les en-têtes de colonnes à partir du volet de la requête
  3. Enfin, les adjectifs et formules divers qui devront être accordés au sexe du destinataire, ce qui nous conduira à utiliser les capacités de publipostage conditionnel d'OpenOffice.org
Cliquons donc sur l'onglet Fonctions, et sélectionnons la première, Texte conditionnel. On retrouve une structure que l'on nomme couramment, dans le clan d'en face, fonction Si. La syntaxe de la condition obéit aux règles suivantes :
  1. D'abord le chemin d'accès du champ concerné, où le point, comme en SQL, sert de séparateur hiérachique : nom_de_la_base.nom_de_la_requête.nom_du_champ. Dans notre cas, cela donne publipostage.developpeurs.sexe
  2. Puis l'opérateur de comparaison, en général pas du tout SQL : l'égalité utilise EQ ou ==. L'aide d'OpenOffice .org en dresse la liste.
  3. Et enfin la valeur à comparer, obligatoirement entre guillemets. On a adopté la classification internationale des sexes, 1 pour le masculin, 2 pour le féminin, 0 quand il reste indéterminé. On accordera donc avec le féminin quand le sexe sera 2, avec le masculin dans les autres cas.
  4. On obtiendra donc l'expression : publipostage.developpeurs.sexe == "2"
Reste à saisir les contenus à insérer, à cliquer sur le bouton approprié, et à passer au suivant. La condition ne changeant pas, il est inutile de modifier l'expression. Le travail terminé, on enregistre le document.
On vient de réaliser, en fait, un modèle que l'on pourra réutiliser le cas échéant pratiquement sans modifications : la date sera mise à jour, les enregistrements seront fonction d'une requête que l'on pourra actualiser, et le texte pourra même être utilisé avec une requête différente. Il sufira pour cela, sur le texte lui-même, d'ouvrir l'un des champs d'un double-click : on accèdera alors à une boîte de dialogue d'édition de champ.
Celle-ci permettra soit de changer de table ou de requête dans la base de données, soit de modifier le chemin d'accès du champ dans la zone de saisie Condition. Deux petits boutons permettent de naviguer d'un champ à l'autre. Regrettons à ce propos l'absence d'une fonction rechercher et remplacer qui pourrait automatiser les choses.
C'est presque fini : un click sur l'icône représentant trois enveloppes dans la barre d'outils de la source de données, ou sur le menu Fichier / Mailing..., dont la boîte de dialogue affiche la source de données en plus des options du publipostage.
Si l'on a sélectionné un ou plusieurs enregistrements dans la requête, l'option Enregistrements marqués sera active par défaut : sinon, le publipostage utilisera tous les enregistrements. Celui-ci peut être lancé au moyen de trois canaux : par courrier électronique, lequel, après la disparition du client intégré à StarOffice et en l'absence de relation privilégiée avec un autre client de messagerie, ne produit pas de résultats particulièrement concluants, vers une imprimante, voie normale du publipostage, ou vers un, ou, plus exactement, plusieurs fichiers.
OpenOffice.org va en effet créer autant de fichiers que de destinataires, chacun d'eux nommé selon les choix entrés dans la boîte de dialogue. Pour un publipostage de taille significative, une telle option n'est guère pratique et pas vraiment utile : le seul fichier dont on ait réellement besoin est le fichier source du publipostage, comme on l'a vu plus haut. Par contre, en l'absence d'autre moyen de vérification, on prendra soin de générer quelques fichiers pour tester la manoeuvre, en sélectionnant les enregistrements appropriés.
Et ça marche : le publipostage conditionnel est une réussite, et la grammaire totalement respectée. Même s'il manque quelques fonctions, comme la vérification avant envoi, même s'il reste impossible d'imbriquer les conditions, le publipostage avec OpenOffice.org se révèle parfaitement utilisable et recyclable, et, pour peu que l'on maîtrise les bases de données, à la fois plus simple et plus souple qu'avec Word.
Linux, c'est fantastique ; on vient donc d'accoler avec succès un serveur de bases de données suédois, une application bureautique née allemande et naturalisée américaine, dans un cadre purement OpenSource et par l'intermédiaire d'une technologie d'origine Microsoft, ODBC. Merci qui ?

Denis Berger, 25 janvier 2003

SIG 11 DOCUMENTS LA SOURCE DE DONNÉES LA CONNEXION ODBC LE PUBLIPOSTAGE

info@sig-11.org