#1 Fri 02 December 2022 11:16
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
QGIS: Utilise CASE avec une expression
Bonjour à toutes et tous
Je cherche à obtenir une liste des éléments d'une COUCHE A avec une COUCHE B dans le composeur d'impression dans une fenêtre de texte.
COUCHE_A - Polygone avec juste un champs ID - qui est aussi la couche de base pour l'atlas
COUCHE_B - Polygone avec les champs - ID / CHAMPS_1 / CHAMPS_2 / CHAMPS_3 / CHAMPS_4
Je veux avoir une liste qui affiche les champs : 1 2 et 3 de COUCHE_B mais dont le CHAMPS_4 = INFO_1
jusque là pas de problème, sauf quand le polygone de la COUCHE_A n’intersecte pas de polygone avec dans le CHAMPS_4 le valeur INFO_1 rien ne s'affiche.
'
J'utilise donc cette formule :
Code:
'INFO_1' || ' ' || array_to_string( (overlay_intersects(layer:= 'COUCHE_B', expression:= "CHAMPS_1" || ' - ' || "CHAMPS_2" || ' ' || "CHAMPS_3" , filter:= CHAMPS_4 IS 'INFO_1')),' ') || ' ' || 'INFO_2' || ' ' || array_to_string( (overlay_intersects(layer:= 'COUCHE_B', expression:= "CHAMPS_1" || ' - ' || "CHAMPS_2", filter:= CHAMPS_4 IS 'INFO_2')),' '
j'ai donc cherché pour utilise la fonction CASE pour introduire une condition de façon à ce que si la valeur INFO_1 n'est pas présente, il passe à la suite du code.
Mais je ne trouve pas comment introduire la COUCHE_B dans l’expression du CASE
Par avance merci pour votre aide, Vincent
Hors ligne
#3 Fri 02 December 2022 16:01
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Utilise CASE avec une expression
Re,
Merci Santanna, avec le Concat cela fonctionne super.
Le code si cela peut servir :
Code:
concat(('INFO_1' || ' ' || array_to_string( (overlay_intersects(layer:= 'COUCHE_B', expression:= "CHAMPS_1" || ' - ' || "CHAMPS_2" || ' ' || "CHAMPS_3" , filter:= CHAMPS_4 IS 'INFO_1')),' ') || ' ' || ('INFO_2' || ' ' || array_to_string( (overlay_intersects(layer:= 'COUCHE_B', expression:= "CHAMPS_1" || ' - ' || "CHAMPS_2", filter:= CHAMPS_4 IS 'INFO_2')),' ') || ' ' ))]
Hors ligne