Pages: 1
- Sujet précédent - QGIS/QTdesigner : liste déroulante choix renvoyant à un identifiant - Sujet suivant
#1 Tue 15 July 2014 16:47
- myotis
- Juste Inscrit !
- Date d'inscription: 15 Jul 2014
- Messages: 5
QGIS/QTdesigner : liste déroulante choix renvoyant à un identifiant
Bonjour,
J'ai réalisé une base de données sous Postgres (9.3)/PostGIS, que j'exploite depuis QGIS (2.2).
Pour faciliter la saisie, j'aimerai utiliser un éditeur d'attribut (fichier ui) développer à partir de QT designer.
Mon soucis c'est que pour mes champs qui correspondent à des clés secondaires, j'aimerai pouvoir mettre dans la liste déroulante non pas le numéro des clés secondaires mais l'intitulé correspondant.
Dans mon exemple, j'ai une couche spatiale [SITE] qui possède les champs:
- id_site (clé primaire)
- id_affaire (clé secondaire)
- nom
et une table [AFFAIRE]:
- id_affaire (clé primaire)
- code
- intitulé
du coup dans le formulaire de saisie de SITE j'aimerai dans la liste déroulante pouvoir sélectionner le code de l'affaire qui renvoie son id_affaire.
J'ai bien tenté de voir au niveau de QGIS (propriétés > champs > outils d'édition > liste de valeur) mais si je mets valeur = id_affaire et description = code ça modifie dans la table attributaire les valeurs du champ id_affaire qui deviennent des codes... idem en utilisant valeur relationnelle... et ça ne m'arrange pas du tout car je ne peux plus enregistrer si j'ajoute un nouveau polygone à cause de postgres (conflit de clé primaire / secondaire)
je ne comprends pas trop cette outils du coup?!
Malgré plusieurs recherche sur le net, je ne vois pas comment m'y prendre, ni même où gérer ce problème (Qgis, QT ou faire un script python)?
si quelqu'un à une solution??
Hors ligne
#2 Wed 16 July 2014 10:31
Re: QGIS/QTdesigner : liste déroulante choix renvoyant à un identifiant
Bonjour et bienvenue,
vous procédez de la bonne manière en utilisant "valeur relationnelle".
valeur -> id_affaire et description -> code
QGis affiche le code dans la table attributaire mais c'est bien id-affaire qui est stocké dans PostGIS.
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Fri 18 July 2014 12:16
- myotis
- Juste Inscrit !
- Date d'inscription: 15 Jul 2014
- Messages: 5
Re: QGIS/QTdesigner : liste déroulante choix renvoyant à un identifiant
est-ce qu'il faut paramétrer quelque chose dans un des fichiers conf de postgres?
parce que ça ne marche pas avec la valeur relationnelle:
- propriétés > champs de ma couche SITE, j'ai mis valeur relationnelle pour le champs id_affaire
avec la couche: affaire
la colonne clé: id_affaire (ça renseigne bien sur quel champ il faut faire la jointure entre les deux tables?)
colonne de valeurs: code
- dans le formulaire QT associé à la couche site: j'ai bien une liste déroulante avec les codes des affaires
mais dans la table attributaire SITE le champs Id_aff ne contient l'identifiant mais le code de l'affaire
et du coup quand je veux enregistrer ma table j'ai le message d'erreur:
impossible de valider les changements pour la couche SITE, détails: la clé (id_affaire = (124152) n'est pas présente dans la table affaire...
je suis vraiment bloqué... quelle solution?
Jai enfin trouvé mon erreur!! Pour ceux qui seront dans le même cas:
dans la version 2.2 de QGIS, ça m'a ajouté des parenthèses autour de mon code affaire lors de l'ajout d'un site et donc ce "nouveau" code n'était pas reconnu par postgresql.
du coup j'ai voulu testé avec la version 2.4 de QGIS est là aucun soucis!!
Merci du coup de main et de votre réponse !!
Dernière modification par myotis (Fri 18 July 2014 12:41)
Hors ligne
Pages: 1
- Sujet précédent - QGIS/QTdesigner : liste déroulante choix renvoyant à un identifiant - Sujet suivant