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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 09 October 2019 16:47

ckiko13
Participant assidu
Date d'inscription: 20 Feb 2007
Messages: 363

QGIS 2.18: composeur: expression en fonction de selection

Bonjour

Dans mon composeur, je souhaite faire apparaître un texte si une couche est sélectionnée dans mon projet. En l'occurrence dans cet exemple: si la couche DPU est sélectionnée, alors mon étiquette dans la mise en page dira "Parcelle concernée par le DPU"; et si ce n'est pas le cas, alors le texte qui s'affichera sera cleui-ci 'DPU NON'.
Donc j'ai ajouté une étiquette dans laquelle j'ai inséré une expression qui est la suivante:

[%case
when  isselected( @layer_name)
is true
then 'Parcelle concernée par le DPU'
else 'DPU NON'
end
%]


Mais cela ne fonctionne pas.
Est-ce ma requête qui n'est pas correcte ou est-ce ma façon de faire?

Merci

Hors ligne

 

#2 Thu 10 October 2019 10:19

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

Re: QGIS 2.18: composeur: expression en fonction de selection

Bonjour,
On est bien d'accord que sous 2.18 isselected n'est pas accessible par défaut et nécessite l'extension ExpressionPlus?
En regardant l'aide de la fonction, isselected attend une chaine de caractères càd le nom de la couche. La variable @layer_name renvoie certes le nom de la couche active mais dans le contexte d'un simple composeur, de quelle couche parlerions-nous?

isselected function

Returns a boolean representing the current selection status of a feature.
Syntax
isselected(layername)
Arguments
layername → a string. Must be the either the layer id or the layer name of the layer on which this feature is located.

Example
isselected('Rivers of Babylon')


Par contre, elle n'est pas un peu fragile, votre procédure? Il suffirait d'oublier de (dé)sélectionner la couche pour réaliser une carte avec une info pas correcte, non?

Hors ligne

 

#3 Thu 10 October 2019 10:52

ckiko13
Participant assidu
Date d'inscription: 20 Feb 2007
Messages: 363

Re: QGIS 2.18: composeur: expression en fonction de selection

Bonjour

L'extension "ExpressionPlus" est bien installée.

J'utilise le plugin "Multiple Layer Selection", donc je ne peux pas oublier de couche.
Par contre ne vous lisant, je viens de réaliser qu'avec cette multi sélection, il ne peut pas comprendre quelle couche est sélectionnée.
(Pour autant en faisant un test, même en ne sélectionnant que la couche PDU, cela ne fonctionne pas).

Je suis partie sur la fonction "isselected" car je l'utilise aussi dans le composeur mais avec des tables d'attributs => je filtre par le "isselected".

En fait existe-t-il une façon assez "simple" pour que lorsque l'on sélectionne un bâtiment (par exemple), dans mon  composeur s'affiche les couches du projet qui concernent ce bâtiment (dans quel zonage il se trouve? est-il concerné par le DPU?....?

Hors ligne

 

Pied de page des forums

Powered by FluxBB