Pages: 1
- Sujet précédent - QGIS 3.4.3: Calculatrice avec conditions multiple dans formulaire - Sujet suivant
#1 Sun 13 January 2019 18:19
QGIS 3.4.3: Calculatrice avec conditions multiple dans formulaire
Bonjour,
peut-on appliquer des contraintes de type "case"/"if" dans un formulaire ?
je cherche (toujours) à faciliter la saisie sous Qfield de mon enquête commerce
j'ai une table d'activité (activ19) de 14 postes qui donne lieu à une information détaillée (detail19)de 200 postes
mon enquêteur choisit une "activité" dans la liste de valeur, la saisie suivant sur le champ "détail" ne voit apparaitre que les lignes correspondantes.
exemple : choix "1-Alimentaire spécialisé" déclenche un extrait de 23 lignes de commerce de détail qui commence également par "1"
Sous Qgis, aucun souci avec le type "valeur relationnelle" mais ce format n'est pas exportable sous QField
Différents test via la calculatrice de champs montre que l'on peut alimenter l'un selon l'autre mais .... cela ne correspond pas à mon besoin La veleur "vrai" renvoie une information, aucunement un lien avec une liste de valeur
if (left("ACTIV19",2) like '1-', "DETAIL19"='1', 'toto')
ou
IF (regexp_match( "ACTIV19", '^1-Alimentaire spécialisé' ), '1-*', 'toto')
Je cherche coté "contrainte" du champ "detail19" mais je ne sais quelle expression appliquée
Peut-on générer un bout de code applicable au formulaire afin que la saisie "activ19" déclenche une liste value allégée dans le champ "detail"
Est-ce que c'est possible ou pas ?
merci de votre lecture et aide
Corinne
Hors ligne
#2 Mon 14 January 2019 14:51
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 3.4.3: Calculatrice avec conditions multiple dans formulaire
Bonjour,
Je ne suis pas sûr que la contrainte soit la solution sachant qu'en mode création, il me semble que les champs ne sont pas au courant de ce qui se passe dans les autres champs de la même entité donc impossible de savoir que vous avez sélectionné "1-Alimentaire spécialisé" par ex pour en répercuter les effets sur un autre champ. Et encore, dans le cas présent, ce serait pour afficher une liste déroulante. Alors qu'une contrainte renvoie en général une valeur.
Peut-on générer un bout de code applicable au formulaire afin que la saisie "activ19" déclenche une liste value allégée dans le champ "detail"
Est-ce que c'est possible ou pas ?
Tout est possible, pour autant que vous en ayez les capacités techniques. Il y a ce vieux post daté aujourd'hui (python3, qt5 et autres fonctions natives de QGIS entre-temps) mais ça reste possible selon ce que vous voulez y passer comme temps.
Je suis d'ailleurs étonné qu'un tel besoin n'existe pas déjà dans QField, ses développeurs contribuant beaucoup sur ces fonctions dans QGIS. En fouillant un peu le net, j'ai trouvé cette discussion qui me fait penser à deux choses:
- a priori, c'est possible en utilisant les références relationnelles et pas les valeurs relationnelles (moins réactif toutefois)
- il est possible de financer la fonctionnalité. Au regard du temps que vous passez à faire des tests ici et là et attendre des retours sur les forums, peut-être est-ce plus financièrement/techniquement/durablement intéressant de contribuer à sa mise en place. Tiens, ça me fait penser à la question du mois.
Espérant que ça vous aide à avancer...
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.4.3: Calculatrice avec conditions multiple dans formulaire - Sujet suivant