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é ?

#1 Mon 17 February 2025 00:04

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

QGIS: Infobulles conditionnees

Bonjour,

Peut on avec du code HTML conditionnée une infobulle.
J'ai créé une infobulle d'après une jointure de table et lorsque l'année de plantation existe, je souhaiterais qu'elle apparaisse sinon je veux juste le N° de parcelle et la surface  ?
Fonction if ?
Merci d'avance de votre aide

Marcopololo

Hors ligne

 

#2 Mon 17 February 2025 09:35

Al3+
Participant actif
Lieu: Fécamp
Date d'inscription: 5 Sep 2005
Messages: 64

Re: QGIS: Infobulles conditionnees

Bonjour,

Oui c'est possible et vous avez déjà trouvé une solution.

De manière très simple à l'endroit où vous voulez afficher les données :

Code:

[% if ("annee_plantation" is not null, 'Plantation : ' ||"annee_plantation",'') %]

Une autre solution avec CASE WHEN (notamment s'il y a plusieurs conditions à respecter) :

Code:

[% CASE 
    WHEN annee_plantation is not null THEN 
        '<p><strong>Plantation :<i>'||"annee_plantation"||'</i></strong></p>'
    ELSE
        ''
    END
%]

On peut aller très loin dans le formatage des données (tableaux, styles, imbrication de conditions, etc...)

Bon courage

Dernière modification par Al3+ (Mon 17 February 2025 09:36)

Hors ligne

 

#3 Mon 17 February 2025 20:27

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

Merci beaucoup.
J'ai opté pour case when
Marc

Hors ligne

 

#4 Mon 17 February 2025 21:50

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

J'ai ajouté ce code pour une autre ligne mais cela semble être inclusif car si un des champs est nul cela ne s'affiche pas :

Code:

[% CASE 
    WHEN  "liste_arbresAnnee"  is not null THEN 
        '<p><strong>Type : <i>'||"liste_arbresPlant1"+', '+"liste_arbresPlant2"+', '+"liste_arbresPlant3"||'</i></strong></p>'
    ELSE
        ''
    END
%]

Bien sur si je supprime les champs plant2 et plant3 cela fonctionne. je suppose que || n'est pas le bon opérateur.
Merci de votre aide
Marcopololo

Hors ligne

 

#5 Mon 17 February 2025 22:56

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

Voici ce que j'ai fait, mais peut être y a t-il plus simple :

Code:

[% CASE 
    WHEN  "liste_arbresPlant3"  is not null THEN 
        '<p><strong>Type : <i>'||"liste_arbresPlant1" ||', '|| "liste_arbresPlant2"  ||', '|| "liste_arbresPlant3"||'</i></strong></p>'
    WHEN  "liste_arbresPlant2"  is not null THEN 
        '<p><strong>Type : <i>'||"liste_arbresPlant1" ||', '|| "liste_arbresPlant2"  ||'</i></strong></p>'    
    WHEN  "liste_arbresPlant1"  is not null THEN 
        '<p><strong>Type : <i>'||"liste_arbresPlant1" ||'</i></strong></p>'
    ELSE
        ''
    END
%]

Hors ligne

 

#6 Tue 18 February 2025 01:28

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 4023

Re: QGIS: Infobulles conditionnees

Bonsoir,
J'ai l'impression que votre solution ne porte pas reellement sur la question initialement posée, mais bon, il semble que vous ayez compris le fonctionnement. C'est l'essentiel.
Pour ce qui est des fonctionnements de + ou || avec NuLL, je vous invite à lire attentivement leur aide dans le logiciel ou la doc en ligne qui aborde le sujet et l'alternative concat.
Pour votre solution case when en cascade, ceci n'est vrai que si les champs 1, 2 et 3 sont renseignés en cascade. Assurez-vous que c'est le cas. Autrement si 2 peut être vide et 3 renseigné par ex, alors l'étiquette serait vide.

Hors ligne

 

#7 Tue 18 February 2025 14:21

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

Bonjour,
Oui effectivement ce n'était pas le sujet d'origine, plutôt une continuité.
J'ai pris cette solution car je ne suis pas arrivé à mettre un ou exclusif pour afficher le résultat si un des trois champ n'est pas renseigné.
Marcopololo

Hors ligne

 

#8 Tue 18 February 2025 17:27

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 4023

Re: QGIS: Infobulles conditionnees

Bonjour,

Marcopololo a écrit:

J'ai pris cette solution car je ne suis pas arrivé à mettre un ou exclusif pour afficher le résultat si un des trois champ n'est pas renseigné.


coalesce et concat (mentionné précédemment) sont deux fonctions qui vous aident à gérer le null  dans ce genre de formule.
Mais à vrai dire, l'écriture la plus propre aujourd'hui à mon avis est avec l'utilisation des listes (elle gère toute seule les NULL et les virgules), genre:

Code:

array_to_string( array("liste_arbresPlant1", "liste_arbresPlant2", "liste_arbresPlant3"), ', ')

Hors ligne

 

#9 Wed 19 February 2025 10:17

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

Merci, effectivement c'est plus propre.

Mais on ne peut pas mettre en forme le texte avec les balises strong et i à l'intérieur d'array ?
Pour la balise strong j'ai englobé la fonction mais je voudrais mettre en italique le nom des arbres mais impossible. Ou faut il la placer ?
Merci d'avance

Dernière modification par Marcopololo (Wed 19 February 2025 11:12)

Hors ligne

 

#10 Thu 20 February 2025 09:20

Al3+
Participant actif
Lieu: Fécamp
Date d'inscription: 5 Sep 2005
Messages: 64

Re: QGIS: Infobulles conditionnees

Bonjour Marcopololo

Il suffit d'englober la fonction array entre les balises <i>.
Quelque chose comme ça devrait fonctionner (j'avoue ne pas l'avoir testé sous QGIS) :

Code:

[% CASE 
    WHEN  "liste_arbresAnnee"  is not null THEN 
        '<p><strong>Type : <i>'|| array_to_string( array("liste_arbresPlant1", "liste_arbresPlant2", "liste_arbresPlant3"), ', ') ||'</i></strong></p>'
    ELSE
        ''
    END
%]

Hors ligne

 

#11 Thu 20 February 2025 11:47

Marcopololo
Participant actif
Date d'inscription: 23 Nov 2021
Messages: 60

Re: QGIS: Infobulles conditionnees

Merci

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo