#1 Thu 27 March 2025 14:41
- Frédéric Duhart
- Participant occasionnel
- Date d'inscription: 22 Dec 2016
- Messages: 11
QGIS: Nom de champ en variable
Bonjour,
J'espère pouvoir exposer ma problématique clairement....
J'ai un rendu graphique un peu complexe sur une couche vecteur, qui utilise pour plusieurs éléments graphiques (épaisseur de la ligne, décalage de la ligne, position de l'étiquette, etc...) la valeur d'un champ décimal (appelons le "TOTO").
Mais j'aimerais pouvoir, utiliser parfois la valeur du champ "TATA", ce qui me demande de modifier toutes les expressions faisant appel à "TOTO", en "TATA". C’est un peu long et fastidieux, et source d'erreur.
Je me demande donc si il serait possible de définir une variable de couche qui prendrait la valeur du champ à traiter. Créer cette variable est facile, mais comment faire comprendre au calculateur d'expression que cette variable doit aller chercher la valeur du champ dont elle stocke le nom ?
Merci pour vos idées, Frédéric
Hors ligne
#2 Thu 27 March 2025 15:27
- LPlante
- Participant occasionnel
- Date d'inscription: 17 Nov 2021
- Messages: 47
Re: QGIS: Nom de champ en variable
Bonjour,
Quelle est la condition pour que votre calculatrice tape dans TOTO ou TATA?
Est ce qu'un Case When ferait l'affaire
CASE
WHEN nbr<10 THEN "TOTO"
WHEN nbr>10 THEN "TATA"
ELSE 0.4 ( une valeur par defaut pour renseigner l'epaisseur de ligne)
END
Hors ligne
#3 Fri 28 March 2025 11:04
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4038
Re: QGIS: Nom de champ en variable
Bonjour,
Je me demande donc si il serait possible de définir une variable de couche qui prendrait la valeur du champ à traiter. Créer cette variable est facile, mais comment faire comprendre au calculateur d'expression que cette variable doit aller chercher la valeur du champ dont elle stocke le nom ?
Il serait intéressant de connaitre la répoonse à
Quelle est la condition pour que votre calculatrice tape dans TOTO ou TATA?
mais de façon basique, si je crée la variable maVariable en lui passant la valeur TOTO, pour utiliser le contenu du champ TOTO (notez l'absence de guillemets simples ici), c'est la fonction eval qui fait le job, soit
Code:
eval( maVariable)
Hors ligne
#4 Fri 28 March 2025 11:15
- Frédéric Duhart
- Participant occasionnel
- Date d'inscription: 22 Dec 2016
- Messages: 11
Re: QGIS: Nom de champ en variable
Bonjour,
Le champ peut prendre différemment nom, et il n'y a pas de règle précise. La solution proposée par LPlante ne peut donc pas fonctionner.
La fonction EVAL répond parfaitement à mon besoin en revanche ! Je me doutais bine qu'une telle fonction devait exister, mais ne parvenait pas à la trouver. Merci !
Hors ligne