Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Wed 09 October 2019 16:47

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

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: 3788

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: 361

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