Faq/Writer/052

    From The Document Foundation Wiki
    < Faq‎ | Writer
    This page is a translated version of the page Faq/Writer/052 and the translation is 100% complete.

    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 non TEST=="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]

    FR.FAQ Writer 052c.png

    • Par défaut, les paragraphes masqués sont affichables. Vérifiez que, dans le menu Outils ▸ Options ▸ LibreOffice Writer ▸ Aides au formatage, la case Champs : paragraphes masqués est bien décochée.


    FR.FAQ Writer 052a.PNG

    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 Insertion ▸ Section. Cocher la case Masquer et indiquer la condition :

    FR.FAQ Writer 052b.png

    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 Insertion ▸ Champs ▸ Autres champs (Ctrl + F2) onglet Fonctions pour utiliser le glisser-déposer, copier, fermer puis coller dans le dialogue section. Voir aussi le guide Publipostage.