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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#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

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1223
Site web

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

 

Pied de page des forums

Powered by FluxBB