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

GEODATA DAYS 2024

#1 Thu 12 October 2023 14:21

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1648

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

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

 

Pied de page des forums

Powered by FluxBB