#1 Thu 20 February 2025 20:50
- Marcopololo
- Participant actif
- Lieu: Etival Clairefontaine
- Date d'inscription: 23 Nov 2021
- Messages: 109
QGIS: Effacer les lignes vides dans infobulles
Bonjour,
J'ai mis un code pour gérer mes parcelles de bois dans les infos bulles, traitements ,travaux prévisions en ayant une succession de lignes. Mais certaine sont vides, alors existe t-il une fonction qui permet de ne pas mettre une ligne vide.
Ou alors se sont mes <BR> qui imposent un saut de ligne ?
Voici le code joint, qui pourrait peut être être simplifié mais en tout cas il fonctionne.
Merci d'avance de votre aide.
Marcopololo
Code:
[%"section"%][%"numero"%]<BR> [%"SURFACE"%] ares [% CASE WHEN "liste_arbres_Annee" is not null THEN '<p><strong>Plantation :<i>'||"liste_arbres_Annee"||'</i></strong></p>' ELSE '' END %] <p><strong> [% CASE WHEN "liste_arbres_Plant1" is not null THEN '<p>Type : <i>'||array_to_string( array("liste_arbres_Plant1", "liste_arbres_Plant2", "liste_arbres_Plant3"), ', ')||'</i></p>' ELSE '' END %]</strong></p> [% CASE WHEN "Propriéta" is not null THEN '<p><strong><Font color="#FF0000">Propriétaire :<i>'||"Propriéta"||'</i></font color></strong></p>' ELSE '' END %] <! Information Traitement> <p><font color ="#0044CC"> [% CASE WHEN "parcelles_Traitements_Traitements1" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Traitements_Traitements1", format_date("parcelles_Traitements_DateTrait1",'dd/MM/yyyy'), "parcelles_Traitements_RemarqueTrait1"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Traitements_Traitements2" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Traitements_Traitements2", "parcelles_Traitements_DateTrait2", "parcelles_Traitements_RemarqueTrait2"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Traitements_Traitements3" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Traitements_Traitements3", "parcelles_Traitements_DateTrait3", "parcelles_Traitements_RemarqueTrait3"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Traitements_TraitementsTrait4" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Traitements_TraitementsTrait4", "parcelles_Traitements_DateTrait4", "parcelles_Traitements_Remarque4"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux5" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Travaux_Travaux5", format_date("parcelles_Travaux_Date5",'dd/MM/YYYY'), "parcelles_Travaux_Remarque5"), ', ') ELSE '' END %] <i Informations travaux> </font color></p> <p><font color ="#0044CC"> [% CASE WHEN "parcelles_Travaux_Travaux1" is not null THEN 'Travaux : '||array_to_string( array("parcelles_Travaux_Travaux1", format_date("parcelles_Travaux_Date1",'dd/MM/yyyy'), "parcelles_Travaux_Remarque1"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux2" is not null THEN 'Travaux : '||array_to_string( array("parcelles_Travaux_Travaux2", format_date("parcelles_Travaux_Date2",'dd/MM:yyyy'), "parcelles_Travaux_Remarque2"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux3" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Travaux_Travaux3", format_date("parcelles_Travaux_Date3",'dd/MM/YYYYY'), "parcelles_Travaux_Remarque3"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux4" is not null THEN 'Travaux : '||array_to_string( array("parcelles_Travaux_Travaux4", format_date("parcelles_Travaux_Date4",'dd/MM/YYYY'), "parcelles_Travaux_Remarque4"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux5" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Travaux_Travaux5", format_date("parcelles_Travaux_Date5",'dd/MM/yyyy'), "parcelles_Travaux_Remarque5"), ', ') ELSE '' END %]<BR> [% CASE WHEN "parcelles_Travaux_Travaux6" is not null THEN 'Traitement : '||array_to_string( array("parcelles_Travaux_Travaux6", format_date("parcelles_Travaux_Date6",'dd/MM/yyyy'), "parcelles_Travaux_Remarque6"), ', ') ELSE '' END %] </font color></p>
Hors ligne
#2 Fri 21 February 2025 04:39
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 454
Re: QGIS: Effacer les lignes vides dans infobulles
Inclus les BR à l'intérieur de tes When, ainsi les retours à la ligne ne seront faits que quand tu as une donnée.
Hors ligne
#3 Fri 21 February 2025 08:57
- Marcopololo
- Participant actif
- Lieu: Etival Clairefontaine
- Date d'inscription: 23 Nov 2021
- Messages: 109
Re: QGIS: Effacer les lignes vides dans infobulles
Merci beaucoup, cela est beaucoup mieux.
Hors ligne
#4 Fri 21 February 2025 09:40
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4119
Re: QGIS: Effacer les lignes vides dans infobulles
Bonjour,
et aussi les
Code:
ELSE ''
sont inutiles ici. C'est ce qui va se passer de toute manière: QGIS ne va rien renvoyer si la condition n'est pas remplie.
Hors ligne
#5 Fri 21 February 2025 12:17
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: QGIS: Effacer les lignes vides dans infobulles
Et ce code serait un peu plus simple à lire ?
Code:
[% "section" %][% "numero" %]<br> [% "SURFACE" %] ares <strong> [% '<p>Plantation :<i>' || "liste_arbres_Annee" || '</i></p>' %] [% '<p>Type : <i>' || "liste_arbres_Plant1" || ', ' || "liste_arbres_Plant2" || ', ' || "liste_arbres_Plant3") || '</i></p>' %] [% '<p><font color="#FF0000">Propriétaire : <i>' || "Propriéta" || '</i></font></p>' %] </strong> <! Information Traitement> <font color="#0044CC"> <p> [% 'Traitement : ' || "parcelles_Traitements_Traitements1" || ', ' || format_date("parcelles_Traitements_DateTrait1",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait1" || '<br>' %] [% 'Traitement : ' || "parcelles_Traitements_Traitements2" || ', ' || format_date("parcelles_Traitements_DateTrait2",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait2" || '<br>' %] [% 'Traitement : ' || "parcelles_Traitements_Traitements3" || ', ' || format_date("parcelles_Traitements_DateTrait3",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait3" || '<br>' %] [% 'Traitement : ' || "parcelles_Traitements_Traitements4" || ', ' || format_date("parcelles_Traitements_DateTrait4",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait4" || '<br>' %] [% 'Traitement : ' || "parcelles_Traitements_Traitements5" || ', ' || format_date("parcelles_Traitements_DateTrait5",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait5" || '<br>' %] </p> <! Informations travaux> <p> [% 'Travaux : ' || "parcelles_Travaux_Travaux1" || ', ' || format_date("parcelles_Travaux_Date1",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque1" || '<br>' %] [% 'Travaux : ' || "parcelles_Travaux_Travaux2" || ', ' || format_date("parcelles_Travaux_Date2",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque2" || '<br>' %] [% 'Travaux : ' || "parcelles_Travaux_Travaux3" || ', ' || format_date("parcelles_Travaux_Date3",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque3" || '<br>' %] [% 'Travaux : ' || "parcelles_Travaux_Travaux4" || ', ' || format_date("parcelles_Travaux_Date4",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque4" || '<br>' %] [% 'Travaux : ' || "parcelles_Travaux_Travaux5" || ', ' || format_date("parcelles_Travaux_Date5",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque5" || '<br>' %] [% 'Travaux : ' || "parcelles_Travaux_Travaux6" || ', ' || format_date("parcelles_Travaux_Date6",'dd/MM/yyyy') || ', ' || "parcelles_Travaux_Remarque6" || '<br>' %] </p> </font>
Dernière modification par Lsam (Fri 21 February 2025 12:18)
Hors ligne
#6 Fri 21 February 2025 12:28
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4119
Re: QGIS: Effacer les lignes vides dans infobulles
Et ce code serait un peu plus simple à lire ?
Plus simple? Certainement. Identique? Je ne pense pas car il utilise beaucoup || dont une particularité est de renvoyer NULL pour peu qu'une valeur soit nulle (et des possibilités de champs non systématiquement remplis, j'en pressens un certain nombre ici).
Hors ligne
#7 Sun 23 February 2025 10:26
- Marcopololo
- Participant actif
- Lieu: Etival Clairefontaine
- Date d'inscription: 23 Nov 2021
- Messages: 109
Re: QGIS: Effacer les lignes vides dans infobulles
Oui effectivement dans de nombreux cas il n'y aura qu'une ligne ou deux d'utiliser ce qui donne des info bulles de grandes tailles et vides, avec le déplacement du saut de ligne cela donne de meilleurs résultats.
Voici ce que cela donne. Je vais maintenant essayé d'utiliser des jointures multiples pour supprimer ces lignes à rallonge et créer une ligne pour chaque intervention dans un tableau excel.
Dernière modification par Marcopololo (Sun 23 February 2025 10:26)
Hors ligne
#8 Mon 24 February 2025 22:54
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: QGIS: Effacer les lignes vides dans infobulles
Identique? Je ne pense pas car il utilise beaucoup || dont une particularité est de renvoyer NULL pour peu qu'une valeur soit nulle (et des possibilités de champs non systématiquement remplis, j'en pressens un certain nombre ici).
Je croyais que c'était le but même du post, renvoyer null lorsqu'aucune valeur n'était renseignée, pour ne pas surcharger les info-bulles.
Hors ligne
#9 Tue 25 February 2025 07:33
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4119
Re: QGIS: Effacer les lignes vides dans infobulles
Code:
[% 'Traitement : ' || "parcelles_Traitements_Traitements1" || ', ' || format_date("parcelles_Traitements_DateTrait1",'dd/MM/yyyy') || ', ' || "parcelles_Traitements_RemarqueTrait1" || '<br>' %]
Imaginons qu'il y ait eu un traitement sur une parcelle donc les champs "parcelles_Traitements_Traitements1" et "parcelles_Traitements_DateTrait1" sont renseignés mais il n'y a pas de remarque de saisie donc "parcelles_Traitements_RemarqueTrait1" est vide. Dans une formule de ce type, cette expression renverra null donc une ligne vide alors qu'il y a de l'info qu'il aurait fallu afficher. Il n'y avait qu'une valeur non renseignée.
Hors ligne
#10 Tue 25 February 2025 08:55
- Marcopololo
- Participant actif
- Lieu: Etival Clairefontaine
- Date d'inscription: 23 Nov 2021
- Messages: 109
Re: QGIS: Effacer les lignes vides dans infobulles
En tout cas merci de tout ces échanges qui aident beaucoup.
Marc
Hors ligne