banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoDataDays 2025

#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>

Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

Lsam a écrit:

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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

SANTANNA a écrit:

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

Lsam a écrit:

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

 

Pied de page des forums

Copyright Association GeoRezo