Faq/Writer/052
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Précisions sur les champs conditionnels dans les mailings
Quelques informations complémentaires ne figurant pas dans l'aide.
Un publipostage doit très souvent "s'adapter" au contexte : accord féminin/masculin, champs non renseignés, valeur de seuils, etc.
Si l'adaptation nécessaire est "locale", limitée à un mot ou une expression, ou à un paragraphe, on utilise un ou des champs conditionnels, et si des parties importantes du document dépendent d'une condition, on utilise une section.
Utilisation de champs conditionnels
Trois types de champs conditionnels sont proposés :
- Texte conditionnel : prend une valeur si la condition est vraie ou une autre valeur sinon ;
- Texte masqué : le texte (chaîne de caractère) n'apparaît pas si la condition est remplie ;
- Paragraphe masqué : le paragraphe complet n'apparaît pas si la condition est remplie.
Syntaxe de la condition :
- lorsque la condition inclut un nombre, celui-ci doit être entré sans aucun signe alors que les phrases doivent être entre guillemets doubles. ex :
TEST==1
et nonTEST=="1"
. Les doubles guillemets signifient que l'on recherche une phrase et non un nombre ; - lorsque le nom du champ contient un tiret ou une espace, il doit être entre crochets, il est sinon considéré comme un signe moins et la condition retournée sera fausse. ex :
[Database.Table.E-mail]
. Ceci ne s'applique donc pas à un champ qui comporte un souligné. ex :Database.Table.E_mail
; - si la condition est composée de plusieurs critères, inscrire chacun des critères entre parenthèses, séparés par des opérateurs logiques. Utilisez des parenthèses pour déterminer les ordre de priorités.
Exemple : (Ville == "Lyon") and ((Titre == "Madame") or (Titre == "Mademoiselle"))
. Cette condition peut aussi s'écrire : ((Ville == "Lyon") and (Titre == "Madame")) or ((Ville == "Lyon") and (Titre == "Mademoiselle"))
- le plus souvent la condition porte sur un champ de la source de données. Au lieu de taper le nom du champ il est possible de le "glisser-déposer" depuis la fenêtre des sources de données :
- cliquer sur l'en-tête du champ puis déposer dans la zone Condition
- faire ce glisser-déposer avant de compléter la condition car le glisser-déposer remplace le contenu précédent de la zone
- le champ sera inséré sous la forme [Nom source.Nom Table.Nom champ] soit par exemple [Bibliography.biblio.Identifier]
- Par défaut, les paragraphes masqués sont affichables. Vérifiez que, dans le menu ▸ ▸ ▸ , la case Champs : paragraphes masqués est bien décochée.
Utilisation de sections
Lorsque plusieurs paragraphes, voire des pans entiers de document, peuvent être modifiés selon une condition, il est plus facile de recourir aux sections. Les sections peuvent être masquées sous condition et un seul test suffit donc à afficher ou masquer toute la partie du texte inséré dans la section. Dès lors il n'est plus nécessaire d'inclure de champs conditionnels dans le texte, c'est la section elle-même qui sera "conditionnée".
L'insertion d'une section se fait par le menu
▸ . Cocher la case Masquer et indiquer la condition :Les conditions utilisables pour les sections sont les mêmes que pour les textes masqués ou conditionnels, hormis le glisser-déposer depuis la fenêtre des sources de données, non disponible pour les sections. Ceci peut être contourné avec l'astuce suivante : passer d'abord par le menu Publipostage.
▸ ▸ (Ctrl + F2) onglet Fonctions pour utiliser le glisser-déposer, copier, fermer puis coller dans le dialogue section. Voir aussi le guide