#1 Thu 12 October 2023 14:21
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
QGIS: Expression de la couche de couverture dans Atlas
Bonjour,
J'ai un champ (dénommé "SUP_PROJET") dans la couche de couverture de l'atlas qui renseigne sur le ou les pylône(s) de chaque plan dans l'atlas. Avec une expression qui met à jour le ou les supports en question. Pour chaque entité on aura un seul pylône ou plusieurs pylônes séparés par un tiret :
- par ex., un seul pylône (dénommé 1) on aura 1
- par ex., pour plusieurs pylônes (dénommés 2, 3 et 4) on aura 2 - 3 - 4
Voici l'expression
case when regexp_match( "SUP_PROJET" , '-' ) then 'Supports n°' else 'Support n°' || ' ' || "SUP_PROJET" end
Pour le support n° 1 j'ai "Support n° 1"
mais pour les supports 2 - 3 - 4, je devrais avoir Supports n° 2 - 3 - 4 mais j'ai seulement "Supports n°"
Comment cela se fait-il? Pourquoi cela ne marche pas lorsqu'il y a plusieurs supports?
Merci.
Hors ligne
#2 Thu 12 October 2023 14:39
- Robin B
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 31 Jul 2023
- Messages: 14
Re: QGIS: Expression de la couche de couverture dans Atlas
Bonjour,
Je pense que vous avez seulement "Supports n°" car dans votre code vous n'indiquez pas d'adjoindre "SUP_PROJET" à 'Supports n°'.
Voici une proposition :
Code:
CASE WHEN regexp_match("SUP_PROJET", '-' ) > 0 THEN concat( 'Supports n° ', "SUP_PROJET") ELSE concat( 'Support n° ' , "SUP_PROJET" ) END
En espérant que ça réponde à vos questions
Hors ligne
#3 Thu 12 October 2023 14:41
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Expression de la couche de couverture dans Atlas
Effectivement il y avait une erreur dans la syntaxe mais plus précisément dans la position du end
case when regexp_match( "SUP_PROJET" , '-' ) then 'Supports n°' else 'Support n°' end || ' ' || "SUP_PROJET"
Hors ligne