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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Soutenez le GeoRezo en faisant un don !

Merci à tous pour votre fidélité.

don

L'équipe GeoRezo

 

#1 Mon 28 October 2019 12:04

Elminster
Membre
Date d'inscription: 9 Jun 2008
Messages: 25

QGIS 3.X: contrainte champ 1 sur champ 2

Bonjour à tous,

j'ai une couche (Shape) avec 2 champs: Type et Ss_Type.
pour le champ 1 je mets en place une liste de type, pour le champ 2 j'aimerai que ma liste de Ss_Type sous contrainte par le résultat de ma liste de type.
Voici un petit exemple pour être plus clair:
Pour ma liste de type, je peux obtenir les valeurs: 1, 2, 3
Pour mes Ss_Type, je peux obtenir A, B, C, D, E. Mais j'ai la contrainte suivante, pour le Type 1, je ne peux avoir que les Ss_Type A et B, pour le Type 2, je ne peux avoir que les Ss_Type C et D et pour le Ss_Type 3 je ne peux avoir que E.

Est-il possible de mettre en place ce type de filtre de liste de valeur dans la version 3 de QGIS.

Merci d'avance à ceux qui prendront le temps de me répondre.

Cordialement, Elminster

Hors ligne

 

#2 Mon 28 October 2019 12:27

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Voir ceci : http://changelog.qgis.org/en/qgis/versi … ding-forms

ça s'appelle "drill-down cascading forms"


Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#3 Mon 28 October 2019 14:01

Elminster
Membre
Date d'inscription: 9 Jun 2008
Messages: 25

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Merci, mais d'après ce que je comprends (désolé mais mon anglais n'est pas terrible et je me base quasi exclusivement sur le visuel pour comprendre ce qu'il se passe...), dans l'exemple donné, il passe par une autre couche de référence pour avoir ses listes déroulantes.
Dans mon cas, je n'ai pas de couche de référence. Donc même si sur le principe, l'exemple donné correspond à ce que je cherche : filtrer un champ 2 à partir des données renseignées dans un champ1, je ne vois pas comment mettre ça en place pour mon cas puisque je n'ai pas cette couche de référence.
Mais peut être que je comprends pas bien la démarche, donc si je pouvais avoir un peu plus de détail pour m'expliquer comment m'y prendre.

Merci

Hors ligne

 

#4 Wed 30 October 2019 12:11

Elminster
Membre
Date d'inscription: 9 Jun 2008
Messages: 25

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Je me permets d'alimenter mon propre sujet.
Visiblement je n'ai pas de réponse pour avoir un système de filtre sans passer par une autre table.
Par contre, pour contourner le problème, est-il possible de mettre en place une contrainte de validation sur le champ 2.
Si je reprends mon exemple ci-dessus, lorsque je saisis Type1, je ne peux valider mon Ss_Type que si les valeurs sont A ou B, le Type2 avec les Ss_Type C et D...
Donc je ne passe plus par un système de filtre, mais par un système de validité de la données.
Est-ce que c'est faisable et si oui, comment?

Hors ligne

 

#5 Wed 30 October 2019 14:07

Ben22
Membre
Date d'inscription: 11 May 2016
Messages: 45

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Bonjour,

Je pense que la solution de MathieuR est la plus pertinente. Certes, vous n'avez pas de table de listing, mais vous devrez de toute façon exposer les contraintes de saisie du type2 par rapport au type1 quelques part. Autant le faire dans un fichier CSV que vous importez dans votre projet QGIS et qui vous permettra de d'activer une saisie de type "Valeur relationnelle" sur le type 2. Voici un exemple de csv :

(Avec une liste type 1 A, B, C)

Code:

type1,type2
A,1
A,2
A,3
B,1
B,4
B,5
C,1
C,6
C,8
C,9

Ne vous reste plus qu'à paramétrer en filtre de la façon suivante en reprenant la solution de MathieuR :

Code:

 "type1"  =  current_value( 'type1')

Le résultat semble correspondre à votre demande.

Hors ligne

 

#6 Thu 31 October 2019 08:46

Elminster
Membre
Date d'inscription: 9 Jun 2008
Messages: 25

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Bonjour,

Je ne doute pas de la pertinence de la réponse de MathieuR. Et effectivement elle me sera sans doute très utile.
Mais la couche que je souhaite créer, est un modèle de couche. Cette couche sera reprise par plusieurs utilisateurs pour différents projets. Donc si j'avais pu faire ça uniquement sur cette couche, ça aurait éviter que les utilisateurs aient trop de manipulation à faire: copier la couche initiale dans leur dossier et reprendre les propriétés de la couche.

Mais si ce n'est pas possible de faire comme je le souhaitais, la responsable du projet m'a dit de ne pas s'embêter et de lancer quand même la production de la couche même si on ne peut pas mettre de contrainte entre mon champ Type et Ss_Type.

Merci quand même à vous.

Hors ligne

 

#7 Mon 04 November 2019 12:09

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Bonjour,

Voici en PJ un exemple fonctionnel de formulaires en cascade

La méthode :
- créer une table type
- créer une table sous-type
- créer une table de saisie avec dedans champ type et fk de sous-type

Dans table de saisie :
- mettre en place valeur relationnelle de type vers couche type stockant le fid de type
- mettre en place valeur relationnelle de sous-type vers couche sous-type et expression

Code:

fk = current_value('type')

Ainsi, on récupèrera de la couche sous-type que les lignes pour lesquelles la clé étrangère de type est égale à la valeur fid du champ type

bref, tout est dans la PJ wink


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

Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#8 Tue 05 November 2019 08:39

Elminster
Membre
Date d'inscription: 9 Jun 2008
Messages: 25

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Merci MathieuR, par contre il manque la couche "types" wink

Hors ligne

 

#9 Thu 07 November 2019 15:42

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS 3.X: contrainte champ 1 sur champ 2

oups, j'envoie tout ça demain


Geodata au Cerema et petits billets en géomatique

Hors ligne

 

#10 Fri 08 November 2019 18:34

MathieuR
Moderateur
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1652
Site web

Re: QGIS 3.X: contrainte champ 1 sur champ 2

Voici un zip ok avec la table type


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

Geodata au Cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |