Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Wed 31 May 2017 12:25

Lebon
Juste Inscrit !
Date d'inscription: 19 May 2017
Messages: 7

QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

Je souhaite créer un formulaire de saisie dans QGIS qui serait associé à plusieurs tables attributaires. Je m'explique.

Imaginons quelqu'un qui a travaillé sur une coulée volcanique. Il va alors saisir des données sur la coulée même ( date de début de coulée, débit...) mais aussi des données sur la méthode d'acquisition (type de caméra, point d'encrage...).
Ces 2 types de données se trouvant dans des tables attributaires séparées, il serait intéressant que l'utilisateur puisse tout saisir d'une traite dans un même formulaire sans aller à chaque fois chercher la table attributaire correspondante à la donnée.

Je sais que QTCreator permet de créer des formulaires personnalisés mais permet-il de répondre à mes besoins?

Dans le cas contraire, existe-t-il une solution simple à mettre en place?

Merci d'avance

Hors ligne

 

#2 Wed 31 May 2017 16:20

stephanie_j
Participant occasionnel
Lieu: Toulouse
Date d'inscription: 22 May 2017
Messages: 27

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

bonjour

D'après ce que j'ai compris, QTCreator permet de personnaliser la fenêtre de saisie des attributs.


Sinon pour faciliter la saisie de l'utilisateur, tu peux faire des listes déroulantes où il peut sélectionner la valeur. Plus facile pour la saisie de données répétitives (et évite les coquilles !) :
dans propriété du champs / outil de champs sélectionner liste de valeur. Tu peux les importer via un fichier css. Il y a d'autres options à toi de fouiller !
Dans toutes les autres options de l'outil de champs tu trouveras peut être ton bonheur

Hors ligne

 

#3 Wed 31 May 2017 16:49

YoLecomte
Participant assidu
Lieu: Epinal
Date d'inscription: 7 Jul 2015
Messages: 238

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

Si l'idée est décrire dans deux couches différentes via le même formulaire, je ne pense pas que ca soit possible directement.
Ou alors peut être un bidouillage en utilisant les relations. https://docs.qgis.org/2.2/fr/docs/user_ … butes.html
Sinon seul un peu de python pourra faire l'affaire (il faudra alors créer le formulaire personnalisé via Qt Creator et écrire un script qui permet d'envoyer les données dans les tables qui vont bien au moment de valider). Si tu connais python ce n'est pas forcément compliqué.

Hors ligne

 

#4 Wed 31 May 2017 22:33

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonsoir,

ce que vous voulez faire est tout à fait faisable et sans trop de difficulté sous qgis.

YoLecomte a écrit:

Ou alors peut être un bidouillage en utilisant les relations.


Cela fait effectivement intervenir des relations mais ce n'est pas du bidouillage.

Etape 1: Créer les relations dans les propriétés du projets
On clique sur propriété, on va dans relation et on définit la relation entre les couches
coulée volcanique et méthode d'acquisition.

L'idée est de définir une clé étrangère id_methode_acquisition qui soit un champs de coulée volcanique qui pointe vers une clé primaire id de la couche méthode d'acquisition.

Définir la relation comme suit :

Code:

Nom de la relation = méthode d'acquisition
Couche fille : couche méthode d'acquisition
Champs fille : id
Couche parente : couche coulée volcanique
Champs parent : id_méthode_acquisition

Etape 2 : customiser le sous-formulaire méthode d'acquisition

Ici, on va dans les propriétés de la couche méthode d'acquisition et on personnalise le formulaire dans l'onglet champs.
On met des menus déroulants via des listes de valeurs, boites à cocher ...
Le mieux est aussi de créer son formulaire via le mode "Conception par Glisser/déposer".
On peut aussi créer des onglets, des groupes, bref qt creator c'est un peu gadget quand on voit toutes les possibilités qu'offrent les dernières versions de qgis.


Etape 3 : customiser le formulaire de la couche coulée volcanique

On fait exactement la même chose que l'étape 2 mais en plus
on ajoute la relation qu'on a définie précédemment. Il faut la glisser/déposer si vous avez choisi conception par glisser/déposer.


EDIT octobre 2017
Etape 4 : cocher une case qui permet d'évaluer les id générés automatiquement (postgres/postgis)

Projet > Propriétés > Source de données > Cocher la case évaluer les valeurs par défaut depuis le fournisseur de données

cf Message de NPL de juillet 17

Et ensuite on constate que lors de la création d'une nouvelle entité dans la couche coulée, on a la possibilité d'alimenter la couche méthode d'acquisition via un sous-formulaire.

Pour moi, cela ressemble à un truc de pro smile

Dernière modification par lejedi76 (Wed 11 October 2017 08:57)

Hors ligne

 

#5 Thu 01 June 2017 08:12

YoLecomte
Participant assidu
Lieu: Epinal
Date d'inscription: 7 Jul 2015
Messages: 238

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Effectivement je n'avais pas pensé à la conception par glisser/déposer en plus de la relation. C'est vrai que du coup, on faire plein de chose! J'avais en tête le formulaire automatique qui est plutôt fais pour des relations 1 à n et qui collait pas trop avec le besoin.
Lejedi76 : Je me pose juste une question, est qu'on pourrait le faire pour n couches en définissant n relations?

Hors ligne

 

#6 Thu 01 June 2017 08:24

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Effectivement, c est une relation 1..n mais bon qui peut le plus peu le moins. Ça gère donc les relations 1..1. J ai pas vu d options pour changer la relation (pas bien cherché) mais si cela n existe pas maintenant ça existera bientôt. Et puis après c est à la personne qui saisit de ne pas faire n'importe quoi.

YoLecomte a écrit:

est qu'on pourrait le faire pour n couches en définissant n relations?


Oui, c'est possible.

Dernière modification par lejedi76 (Thu 01 June 2017 08:29)

Hors ligne

 

#7 Thu 01 June 2017 08:37

Lebon
Juste Inscrit !
Date d'inscription: 19 May 2017
Messages: 7

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Merci pour vos réponses très pertinentes, cela va beaucoup m'aider : )

Hors ligne

 

#8 Thu 06 July 2017 20:35

NPL
Juste Inscrit !
Date d'inscription: 6 Jul 2017
Messages: 1

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

J'avais employé toute la méthode décrite mais mon souci réside dans le fait que l'ID saisit dans le formulaire principal ne se répercute pas dans le sous formulaire tant qu'on ne sort pas du formulaire général pour enregistrer et ensuite il faut l'ouvrir de nouveau pour créer un nouvel enregistrement dans le sous formulaire ce qui n'est pas pratique du tout.

Auriez vous une solution ? A moins que j'ai omis quelque chose. je bosse sur une base postgresql/postgis.

J'ai également charge l'outil autosaver mais ça ne résous pas le problème.

merci

Nat

Hors ligne

 

#9 Tue 10 October 2017 11:09

Larinier Pauline
Participant occasionnel
Lieu: Strasbourg
Date d'inscription: 10 Dec 2009
Messages: 11

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

Je voudrais rajouter une question concernant le sujet de la relation dans le formulaire d'identification des entités.
J'utilise souvent le formulaire en "conception par glisser/déposer", et j'y intègre une/des relations décrites dans mon projet QGIS.

Mais j'ai remarqué un bug lors de l'affichage du formulaire : les attributs en relations ne s'affichent plus, et à la place, le formulaire indique "..." (cf pj).
Le problème peut être contourné en allant dans les propriétés de la couche et en cliquant simplement sur la relation, mais ça n'est pas pratique de devoir faire ça à chaque fois. Sachant que pour ma part, je mets en place des projet QGIS notamment pour des relevés terrain sur tablette, et que c'est encore moins pratique pour les personnes qui font le levé (pas forcément  à l'aise avec l'outil).

Avez vous déjà rencontré ce problème ?


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Pauline Larinier
Géomaticienne au service Géomatique et connaissance du territoire de l'Eurométropole de Strasbourg

Hors ligne

 

#10 Wed 11 October 2017 08:52

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

NPL a écrit:

Bonjour,

J'avais employé toute la méthode décrite mais mon souci réside dans le fait que l'ID saisit dans le formulaire principal ne se répercute pas dans le sous formulaire tant qu'on ne sort pas du formulaire général pour enregistrer et ensuite il faut l'ouvrir de nouveau pour créer un nouvel enregistrement dans le sous formulaire ce qui n'est pas pratique du tout.

Auriez vous une solution ? A moins que j'ai omis quelque chose. je bosse sur une base postgresql/postgis.

J'ai également charge l'outil autosaver mais ça ne résous pas le problème.

merci

Nat


Bonjour,

Projet > Propriétés > Source de données > Cocher la case évaluer les valeurs par défaut depuis le fournisseur de données

Cordialement,

Hors ligne

 

#11 Wed 11 October 2017 08:55

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Larinier Pauline a écrit:

Bonjour,

Je voudrais rajouter une question concernant le sujet de la relation dans le formulaire d'identification des entités.
J'utilise souvent le formulaire en "conception par glisser/déposer", et j'y intègre une/des relations décrites dans mon projet QGIS.

Mais j'ai remarqué un bug lors de l'affichage du formulaire : les attributs en relations ne s'affichent plus, et à la place, le formulaire indique "..." (cf pj).
Le problème peut être contourné en allant dans les propriétés de la couche et en cliquant simplement sur la relation, mais ça n'est pas pratique de devoir faire ça à chaque fois. Sachant que pour ma part, je mets en place des projet QGIS notamment pour des relevés terrain sur tablette, et que c'est encore moins pratique pour les personnes qui font le levé (pas forcément  à l'aise avec l'outil).

Avez vous déjà rencontré ce problème ?


Oui j'ai déjà rencontré ce problème mais cela semble corrigé avec les dernières version de qgis.
Quelle version de qgis avez-vous ?

Cordialement,

Hors ligne

 

#12 Wed 11 October 2017 13:01

Larinier Pauline
Participant occasionnel
Lieu: Strasbourg
Date d'inscription: 10 Dec 2009
Messages: 11

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

Nous avons la version 2.18.0.
Je viens de tester avec la version 2.18.10, ça avait l'air de fonctionner.

Mais en faisant plus de tests, le problème revient. La couche en question, sur laquelle je fais apparaître la relation, possède plusieurs styles, auxquels je fais appel via "contrôler la visibilité des couches" (petit œil du panneau couche :-) ) => ça bug dès que je change de visibilité...
J'ai aussi l'impression qu'en modifiant les paramètres du conteneur (cf pj), par exemple en cochant ou décochant "afficher une boîte de groupe", ça influe sur le bug..

A voir en faisant des tests plus poussés.

Dernière modification par Larinier Pauline (Wed 11 October 2017 15:43)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Pauline Larinier
Géomaticienne au service Géomatique et connaissance du territoire de l'Eurométropole de Strasbourg

Hors ligne

 

#13 Fri 23 November 2018 08:59

2click
Participant occasionnel
Date d'inscription: 5 Oct 2012
Messages: 25

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

j'ai utilisé la solution proposée par lejedi76 qui fonctionne assez bien mais j'ai quand même quelques questions.
Mon projet (QGIS 2.18.19) comporte 3 tables qui sont donc en relation (j'ai pas fait de jointure), seule la table a contient une géométrie (polygone), les 2 autres sont des tables de données. Et j'ai besoin de pouvoir modifier les 3 via le même formulaire (je suis parti sur QT car je voudrais faire des boutons d'action).

Questions :
1/ lors de la suppression d'un polygone dans la table a, cela ne se répercute pas dans les 2 autres tables. Est ce possible de faire cela dans QGIS?

2/ comment traiter vous le passage de l'id d'une table à l'autre (et plus largement le passage d'argument)? J'ai fait ça avec une valeur relationnelle, mais je crois qu'on pourrait aussi mettre une contrainte via la fonction  layer_property( table, champ). Le truc c'est que quand je crée un nouveau polygone dans la table parent, je suis obligé de faire créer une nouvelle entité dans les relations des tables filles alors que j'aimerais que cela se fasse automatiquement. Avec cette manière de faire, il faut d'abord faire un save de la table parent avant d'éditer les tables filles sinon l'id ne passe pas (compréhensible vue qu'il est qu'en temporaire dans le formulaire).

Merci pour vos réponses.

Hors ligne

 

#14 Thu 14 January 2021 09:08

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

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,
Je déterre ce sujet pour poser également une petite question (qui rejoint l'une posée ci-dessus) et j'en profite pour répondre à la première :

1/ Pour que la modification dans la table A se répercute sur la table B cela se joue au moment de créer la relation : il faut choisir "composition" comme type de relation et non pas "association"

2/ Je travaille en 3.16 et on peut créer l'entité fille directement via le formulaire de création de l'entité parent, et l'id servant de clef étrangère se met bien automatiquement, pas besoin de quitter le formulaire parent pour ensuite créer l'entité fille. Par contre il me semble que QGIS ne propose pas de relation 1:1 strict, au minimum du 1:n, donc ça me semble cohérent qu'il ne crée pas automatiquement d'entité fille toute faite.

EDIT : J'ai répondu tout seul à ma question ^^"
pour info, même si ça ne crée pas d'entité fille directement, on peut tout de même avoir un formulaire fille prérempli avec des valeurs par défaut (à définir dans la couche fille). On ne peut néanmoins pas (a priori, en tout cas je n'ai pas réussi) à faire référence à l'entité parent en cours de création. Je n'ai pas réussi non-plus à faire référence à d'autres entités de la couche parent (ça c'est plus étonnant)

Dernière modification par aheurion (Thu 14 January 2021 09:26)

Hors ligne

 

#15 Thu 28 January 2021 09:24

Came
Juste Inscrit !
Date d'inscription: 28 Jan 2021
Messages: 1

Re: QGIS: Formulaire associe a pluisieurs tables attributaires

Bonjour,

je remonte ce sujet pour savoir si vous avez trouvé une solution pour le cas cité par Aheurion:

aheurion a écrit:

On ne peut néanmoins pas (a priori, en tout cas je n'ai pas réussi) à faire référence à l'entité parent en cours de création. Je n'ai pas réussi non-plus à faire référence à d'autres entités de la couche parent (ça c'est plus étonnant)


En effet cela me paraît étonnant aussi que cela ne soit pas possible de faire référence à une entité/attribut de la couche parent, ou à l'entité courante en cours de création.

Si quelqu'un trouve une solution je suis preneuse!

Hors ligne

 

Pied de page des forums

Powered by FluxBB