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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 23 July 2021 21:10

Will987
Participant occasionnel
Date d'inscription: 23 Jul 2021
Messages: 12

QGIS: Modifier le champ d'une couche depuis une autre couche

Bonjour,
je suis nouveau sur ce forum et je vous écris ce message car dans le cadre d'un projet QGIS, j'aimerai modifier le champ d'une table et modifier en même temps le champs d'une autre table.

En gros, je travaille sur un projet de gestion d'éclairage public et pour programmer une intervention j'ai crée un formulaire à remplir à partir d'une couche "Intervention". Ce formulaire à des relations d'association avec des couches vecteurs (comme table luminaires, armoires,...).

Ces couches sont géoréférencés sur une carte Open Street Map et j'ai besoin que lorsque je crée une nouvelle entité dans la couche "Intervention", je puisse saisir ou modifier la valeur d'un champ dans la couche "Intervention" et qu'il soit automatiquement modifier dans un champs d'une autre couche comme Armoire, afin que dans la couche Armoire puisse changer d'état .

J'ai tenté une jointure, par exemple de la couche Armoire à la couche Intervention mais lorsque que je veux créer une nouvelle entité je ne peux pas modifier la valeur du champs de jointure. J'ai tenté une jointure de l'autre sens, sauf que la jointure n'est pas prise en compte car la colonne est vide à l'origine.

Auriez-vous des idées sur la façon dont je dois m'y prendre pour produire cet effet ?

Hors ligne

 

#2 Mon 26 July 2021 11:45

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 143

Re: QGIS: Modifier le champ d'une couche depuis une autre couche

Bonjour,

Si j'ai bien compris tu veux modifier un champs de la couche parent ("Armoires" par exemple) pendant la modification de la couche enfant ("Interventions") ?
Je pense que tu ne peux faire ça que dans le sens parent->enfant (modifier "Interventions" pendant la modification de "Armoires")

Cependant s'il suffit de changer un seul champ "État" qui prendra la valeur "en cours d'intervention" (1) ou non (0) il est possible de faire un champ virtuel qui se mettra donc à jour automatiquement (avec un aggregate vers la couche "Interventions" qui donnera 1 s'il y a au moins une intervention en cours sur l'armoire et 0 si aucune intervention par exemple) :

Code:

CASE
WHEN
aggregate(
     'id_couche_interventions',
     'count',
     "ID",
     attribute(@parent,'champ_clef_primaire')="champ_clef_étrangère" AND "statut_intervention"=1
) >0
THEN 1
ELSE 0
END

Dernière modification par aheurion (Mon 26 July 2021 11:47)

Hors ligne

 

#3 Tue 27 July 2021 15:09

Will987
Participant occasionnel
Date d'inscription: 23 Jul 2021
Messages: 12

Re: QGIS: Modifier le champ d'une couche depuis une autre couche

Merçi pour ton message, j'ai trouvé une façon plus simple pour régler mon problème.
Ta réponse me servira surement pour autre chose.

Hors ligne

 

#4 Tue 27 July 2021 17:17

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS: Modifier le champ d'une couche depuis une autre couche

Bonjour,

Merçi pour ton message, j'ai trouvé une façon plus simple pour régler mon problème.


Je pense que cela pourrait aider d'autres personnes si vous la partagiez (surtout si elle est plus simple). Merci.

Hors ligne

 

#5 Wed 28 July 2021 13:29

Will987
Participant occasionnel
Date d'inscription: 23 Jul 2021
Messages: 12

Re: QGIS: Modifier le champ d'une couche depuis une autre couche

D'accord,
j'ai effectué une jointure de la couche intervention vers la couche de l'ouvrage, et j'ai défini la symbologie en fonction de cette colonne jointe. Du coup lorsque je change l'état de la colonne dans l'attribut mère, la symbologie change dans la table fille.

Dernière modification par Will987 (Wed 28 July 2021 13:30)

Hors ligne

 

Pied de page des forums

Powered by FluxBB