#1 Wed 19 August 2020 20:03
- B. Jacq44
- Juste Inscrit !
- Date d'inscription: 24 Feb 2016
- Messages: 2
QGIS 3.10.3: Formulaire de saisie sur une relation N:N
Bonjour,
j'utilise actuellement qgis 3.10.3 et je voudrais faire un formulaire qui permette de créer un point dans une table, de saisir des données dans une autre et d'enregistrer les PK de ces deux tables dans la table pivot qui permet de faire la relation entre elles (mes tables sont en base oracle 12c).
Pour cela, j'ai utilisé la méthode présentée ici https://docs.qgis.org/3.4/fr/docs/user_ … -form-view partie "Introduction aux relations plusieurs-à-plusieurs (n à n)", c'est-à-dire :
1. Cocher l'option "créer automatiquement des groupes de transaction lorsque c'est possible" ;
2. Créer une relation 1:n entre la TABLE_POINT et TABLE_PIVOT intitulée "Informations" ;
3. Créer une relation 1:n entre la TABLE_INFOS et TABLE_PIVOT intitulée "table_infos_FK";
4. Dans le formulaire de TABLE_INFOS mettre la relation table_infos_FK avec la cardinalité TABLE_POINT(id) ;
5. Dans le formulaire de TABLE_PIVOT mettre les FK en "référence de la relation" -> "Informations" pour fid_point, "table_infos_FK" pour fid_infos ;
4. Dans le formulaire de TABLE_POINT mettre la relation "table_infos_FK" avec la cardinalité TABLE_INFOS(id) ;
Cependant quand j'essaie d'insérer un objet via le formulaire, bien que j'arrive à remplir correctement les tables TABLE_POINT et TABLE_INFOS, je n'arrive à récupérer que l'id de TABLE_INFOS dans TABLE_PIVOT, mais pas l'id de TABLE_POINT.
Quelqu'un a t-il été confronté au même problème ? Si oui avez-vous trouvé une solution ? S'il s'agit d'un bug est-ce corrigé dans la version 3.12 ou 3.14 ?
Sinon je me demande s'il ne serait pas possible de créer un formulaire qui permette de créer un point et d'enregistrer puis, dans le même formulaire, saisir mes données dans TABLE_INFOS, la table pivot étant mise à jour en base automatiquement. J'ai cherché de ce côté et si on peut enregistrer les données attributaires dans TABLE_INFOS et enregistrer, je ne vois pas comment faire la même manipe avec une table de point.
Quelqu'un aurait-il une idée ?
Merci d'avance,
Hors ligne
#2 Wed 26 August 2020 11:47
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS 3.10.3: Formulaire de saisie sur une relation N:N
Bonjour,
regardez ce poste, ceci explique la démarche côté serveur (sous postgres)
A voir si c'est possible de l'adapter avec Oracle
https://georezo.net/forum/viewtopic.php?id=117827
Hors ligne
#3 Mon 28 September 2020 09:08
- B. Jacq44
- Juste Inscrit !
- Date d'inscription: 24 Feb 2016
- Messages: 2
Re: QGIS 3.10.3: Formulaire de saisie sur une relation N:N
Bonjour,
merci JD pour ta réponse, mais j'ai une contrainte dans ma commande qui m'oblige à faire fonctionner le formulaire de type n:n dans l'application (c'est-à-dire qgis).
Mais j'ai trouvé une solution : en fait celle que je présentais dans mon message précédent était bonne, mais c'est dans la saisie que je me trompais car elle se fait en deux fois :
1. Créer un point dans la table TABLE_POINT et remplissez les infos de cette table dans le formulaire ;
2. Cliquer sur le petit "i" infos puis sur le point que vous venez de créer, puis cliquez sur "ajouter une entité fille" et remplissez le formulaire de la table TABLE_INFOS. Le remplissage de la table TABLE_PIVOT se fait automatiquement grâce aux relations créées dans projet/propriétés/relations ;
Bonne journée,
Hors ligne