Pages: 1
- Sujet précédent - QGIS 2.18: composeur: expression en fonction de selection - Sujet suivant
#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
Pages: 1
- Sujet précédent - QGIS 2.18: composeur: expression en fonction de selection - Sujet suivant