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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 01 October 2020 11:29

Samuel Pereira Dias
Participant actif
Date d'inscription: 11 May 2015
Messages: 53

QGIS: Formulaires en cascade (Drill-down) - valeurs relationnelles

Bonjour à tous,

Le forum contient de nombreuses discussion sur le paramétrage nécessaire à la création de formulaire en cascade au travers des widgets de "valeur relationnelle" dans les propriétés des couches.

Je m'excuse d'avance de devoir reposer les mêmes questions mais en profite donc pour joindre à ce post quelques liens en bas du post menant à cette recherche (non exhaustive), facilitant les recherches à venir:

Tous définissent bien le besoin de disposer de deux tables "types" et "sous-type", composé de champs 'fid, 'kf', 'types' qui sont demandées dans le widget de valeur relationnelle au sein de 'colonne clé' et 'colonne de valeurs'.


Voici ma table de types.

Code:

fid    type
1    0% de ligneux hauts
2    1-10% de ligneux hauts
3    10-50% de ligneux hauts
4    50-75% de ligneux hauts
5    > 75 % de ligneux hauts

Voici ma table de sous_types

Code:

fid    fk    sous_type
1    1    >3 à <25 cm
2    1    >25 à <100 cm et à une distance < 100 m lisière forêt ou d'un boisement
3    1    >25 à <100 cm et à une distance > 100 m lisière forêt ou d'un boisement
4    1    >25 à <100 cm, constituée uniquement de petit ligneux, sans aucun layon. Ou éboulis stabilisé, fougeraie aigle dense sans herbe dessous
5    1    Autre cas
6    2    >3 à <25 cm
7    2    >25 et <100 cm
8    2    >25 et <100 cm mais constituée seulement de ligneux sans aucun layon. Ou éboulis stabilisé, fougeraie aigle dense sans herbe dessous
9    2    Autre cas
10    3    >25 et <100 cm
11    3    >25 et <100 mais constituée seulement de ligneux sans aucun layon. Ou de mégaphorbiaie ou de régénération forestière. Autres cas: éboulis stabilisé, fougeraie aigle sans herbe dessous.
12    3    Régénération forestière >100 cm dont recouvrement > 50%
13    3    Autre cas
14    4    >25 et <100 cm
15    4    >25 et <100 mais constituée seulement de ligneux. Régénération forestière très compacte, de mégaphorbiaie. Ou éboulis stabilisé.
16    4    Régénération forestière >100 cm dont recouvrement > 50%
17    4    Autre cas

Le relation à appliquer est donc entre le 'fid' de la table type, et le 'fk' de la table Sous-type.
Qu'est ce que je ne fait pas bien


Mon paramétrage sur mon champ 1 avec Valeur relationnelle:

Couche:                           types
Colonne clé:                     fid
Colonne valeur :               type


Mon paramétrage sur mon champ 2 avec Valeur relationnelle:
Couche:                           sous_types
Colonne clé:                     fid
Colonne valeur :               sous_type


Un filtre d'expression est à appliquer du type : fk = current_value('types')

J'ai trouvé de nombreuses façon de coder le filtre d'expression, où l'argument dans current_value est un champ, ou parfois une table.
J'ai compris que précédemment il y avait un plugin nommé "Form Value Relation" mais qui n'existe plus sur les versions 3.X. La fonction current_value serait native des versions actuelles.
J'ai également trouvé d'autres formes de fonction du type "get_value_form...." que je ne trouve pas dans mon actuelle bibliothèque de fonction..

Puis, j'ai cru comprendre que Qfield ne prenait pas en charge les formulaires en cascade. Est-vrai?

Help! smile

Merci à tous!
S.




Lien pour la recherche de solution

https://georezo.net/forum/viewtopic.php?id=113893
https://georezo.net/forum/viewtopic.php?id=109846
https://georezo.net/forum/viewtopic.php?id=97418
https://georezo.net/forum/viewtopic.php?id=95858
https://georezo.net/forum/viewtopic.php?id=89249
https://georezo.net/forum/viewtopic.php?id=117794 <<< Très utile avec un exemple téléchargeable mais je n'ai tout de même pas réussi.
https://georezo.net/forum/viewtopic.php?pid=305421

https://gis.stackexchange.com/questions … pdown-qgis
https://north-road.com/drill-down-cascading-forms/
https://www.youtube.com/watch?v=8JBG6g_UvSA
https://www.youtube.com/watch?v=5wcEFLSLTCA

Hors ligne

 

#2 Tue 06 October 2020 13:45

Samuel Pereira Dias
Participant actif
Date d'inscription: 11 May 2015
Messages: 53

Re: QGIS: Formulaires en cascade (Drill-down) - valeurs relationnelles

Personne ? smile

Please... smile

Hors ligne

 

#3 Wed 07 October 2020 10:03

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS: Formulaires en cascade (Drill-down) - valeurs relationnelles

Hello,

Je dirais que c'est faisable, voici un exemple dispo 30 jours ici : https://www.swisstransfer.com/d/d18ea90 … 6b5c7a9361

J'ai repris vos données, donc ça devrait être compréhensif ;-)

Hors ligne

 

#4 Wed 07 October 2020 12:41

Samuel Pereira Dias
Participant actif
Date d'inscription: 11 May 2015
Messages: 53

Re: QGIS: Formulaires en cascade (Drill-down) - valeurs relationnelles

romainbh a écrit:

Hello,

Je dirais que c'est faisable, voici un exemple dispo 30 jours ici : https://www.swisstransfer.com/d/d18ea90 … 6b5c7a9361

J'ai repris vos données, donc ça devrait être compréhensif ;-)


Salut Romain,

C'est super.
Ton exemple fonctionne très bien, enfin plus ou moins..
En fait si j'adapte exactement tout, cela fonctionne. Ce qui est déjà encourageant.

Quand je dis tout c'est le nom des champs et des fichiers de mes tables de valeurs. En réalité, je voudrais les appeler Hab_N1 (équivalent types), et Hab_N2 (équivalent sous_types).

Alors j'ai vraiment tout converti avec mes nomenclatures personnelles, en faisant bien attention. Et cela ne fonctionne pas, mais fonctionnes en gardant bien les nomenclatures des tables (types/sous_types) et des champs à renseigner (type/sous_type).

>>> les noms "types" et "sous_types" sont en fait des termes reconnus et incontournables !!


Avec les Alias des formulaires, je réalise que je peux accepter cela, et garder visuel mes propres nomenclatures.

Donc ce coté, ok. Sauf comment cela se passe lorsque j'ai une troisième relation à appliquer ...?
Une sorte de 'sous_sous_type' dépendant de ce qu'il y a dans 'sous_type'.
Si les termes utilisés ont une importance, quelles sont-ils dans le cas d'une troisième relation?
Quel noms de champs pour la clé étrangère entre 'sous_type' et sous_sous_type


Je l'ai appelé ici 'fk'

Code:

fid    type_id    fk    sous-type
1    1    1    >3 à <25 cm
2    1    2    >25 à <100 cm et à une distance < 100 m lisière forêt ou d'un boisement
3    1    3    >25 à <100 cm et à une distance > 100 m lisière forêt ou d'un boisement
4    1    4    >25 à <100 cm, constituée uniquement de petit ligneux, sans aucun layon. Ou éboulis stabilisé, fougeraie aigle dense sans herbe dessous
5    1    5    Autre cas
6    2    6    >3 à <25 cm
7    2    7    >25 et <100 cm
8    2    8    >25 et <100 cm mais constituée seulement de ligneux sans aucun layon. Ou éboulis stabilisé, fougeraie aigle dense sans herbe dessous
9    2    9    Autre cas
10    3    10    >25 et <100 cm
11    3    11    >25 et <100 mais constituée seulement de ligneux sans aucun layon. Ou de mégaphorbiaie ou de régénération forestière. Autres cas: éboulis stabilisé, fougeraie aigle sans herbe dessous.
12    3    12    Régénération forestière >100 cm dont recouvrement > 50%
13    3    13    Autre cas
14    4    14    >25 et <100 cm
15    4    15    >25 et <100 mais constituée seulement de ligneux. Régénération forestière très compacte, de mégaphorbiaie. Ou éboulis stabilisé.
16    4    16    Régénération forestière >100 cm dont recouvrement > 50%
17    4    17    Autre cas
18    5    18    >25 et <100, le plus souvent sous bouleau/sorbiers, pins à crochets, plantations de mélèzes
19    5    19    >25 et <100 mais constituée seulement de ligneux. Régénération forestière très compacte, de mégaphorbiaie. Ou éboulis stabilisé.
20    5    20    Régénération forestière >100 cm dont recouvrement > 50%
21    5    21    Autre cas

qui serait lié avec la colonne type_id de ma troisième table ci-dessous

Code:

fid    type_id    sous-sous-type
1    1    <25% de recouvrement
2    1    >25 à <50% de recouvrement
3    1    >50% de recouvrement
4    2    <25% de recouvrement
5    2    >25 à <50% de recouvrement
6    2    >50% de recouvrement
7    3    <25% de recouvrement
8    3    >25 à <50% de recouvrement
9    3    >50% de recouvrement
10    6    >25 à <50% de recouvrement
11    6    >50% de recouvrement
12    7    >25 à <50% de recouvrement
13    7    >50% de recouvrement
14    10    >25 à <50% de recouvrement
15    10    >50% de recouvrement
16    14    >25 à <50% de recouvrement
17    14    >50% de recouvrement, parfois sous bouleau/sorbier, pin à crochets
18    18    >25 à <50% de recouvrement
19    18    >50% de recouvrement, parfois sous bouleau/sorbier, pin à crochets

J'imagine que l'on peut continuer à créer des relations entre champs même sur trois champs différents?

Je viens déjà tester les deux premiers champs (types et sous_types), fonctionnels grâce à toi sur Qfield, et j'ai l'impression que le Drill down n'est pas encore géré par Qfield ... hmm C'est bien dommage pour une application nomade de saisie de données de ne pouvoir proposer la saisie en cascade.

Vraiment merci déjà pour le temps que tu as pris pour m'envoyer ta réponse.
Samuel

Hors ligne

 

Pied de page des forums

Powered by FluxBB