Pages: 1
- Sujet précédent - QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire - Sujet suivant
#1 Mon 05 October 2015 08:28
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Salut à tous
Je me heurte ce matin à une question quasi existentielle
Le contexte est le suivant : un projet QGIS va être mis à disposition de personnes n’ayant jamais utilisé QGIS, je souhaite donc automatiser le plus possible l’enregistrement des différents attributs. J’ai donc créé un formulaire par glisser-déposer dans lequel j’ai inclus uniquement les attributs qui devront être complétés par l’utilisateur (p.ex. adresse, n° tél…).
Parallèlement à ces infos rentrées manuellement, je souhaite enregistrer la date de la saisie et créer un identifiant unique UUID. L’utilisateur n’a pas besoin de voir ces infos affichées dans le formulaire, et il faut vraiment éviter qu’ils les modifient par erreur ! J’ai donc logiquement choisi de ne pas les afficher lors de la saisie.
Et là, c’est le drame : aucune valeur n’est enregistrée dans la table attributaire si ces champs ne figurent pas dans le formulaire.
Je me retrouve donc dans une situation problématique, notamment pour la date de saisie :
- Si je ne l’affiche pas dans le formulaire, rien ne s’enregistre
- Si je l’affiche dans le formulaire, mais en ayant décoché la case « Editable » dans les propriétés du champ, rien ne s’enregistre non plus
- Si je l’affiche dans le formulaire en la laissant éditable, elle s’enregistre bel et bien mais n’importe qui peut la modifier depuis le formulaire…
Est-ce qu’une option « cachée » ou un autre système existe qui permettrait à QGIS d’enregistrer des valeurs sans que l’attribut soit obligatoirement affiché lors de la saisie ?
D’avance un grand merci pour votre aide précieuse
QGIS 2.10.1 x64, W7x64
Dernière modification par romainbh (Mon 05 October 2015 08:44)
Hors ligne
#2 Mon 05 October 2015 10:51
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Si les attributs sont stockés dans un SGBD, le mieux serait d'utiliser un déclencheur (trigger) qui gère ces valeurs pour chaque insertion/mise à jour.
Jean-Marie
Azimut
Hors ligne
#3 Mon 05 October 2015 11:29
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Oui, j'y ai pensé aussi. Mais dans ce cas-là, un autre problème survient concernant la date de saisie : puisque cette date est générée par le SGBD lors de la sauvegarde des modifications faites dans QGIS, toutes les nouvelles entités se voient attribuer la même heure Dans l'absolu, ça ne serait pas gênant, mais dans mon cas ce n'est pas le top...
Hors ligne
#4 Mon 05 October 2015 11:37
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
je ne comprends pas le problème; pourriez-vous préciser ?
Quel que soit le système (logiciel), QGis ou le SGBD, qui attribue la date, votre remarque sera identique
Jean-Marie
Azimut
Hors ligne
#5 Mon 05 October 2015 12:01
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Pas de souci, je suis un peu brouillon des fois Comparons les deux cas possibles :
1. QGIS : la date/heure de saisie enregistrée est celle qui correspond au moment de la validation de l'entité (la date/heure apparaît immédiatement dans la table attributaire, même si les modifications de la couche n'ont pas été enregistrées).
2. SGBD : la date/heure de saisie enregistrée est celle qui correspond au moment de l'enregistrement dans la base de données, donc à l'instant où l'on clique sur l'icône de sauvegarde des modifications de la couche dans QGIS.
Problème : si plusieurs entités ont été ajoutées sans sauvegardes des modifications intermédiaires, toutes sont enregistrées au même moment dans la BDD, donc le SGBD leur attribue la même heure (d'ailleurs, tant que la couche n'a pas été sauvegardée, la table attributaire affiche la formule now() et non pas l'heure de saisie).
J'espère que c'est un peu plus compréhensible, j'ai fait au mieux
Hors ligne
#6 Mon 05 October 2015 19:13
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
C'est plus clair mais je ne comprends toujours pas en quoi cet horodatage unique pour la couche est gênant à moins qu'il ne s'agisse d'une saisie déconnectée intégrée de manière différée dans le SGBD; ou bien de vouloir évaluer le temps de saisie de chaque fiche ...
Jean-Marie
Azimut
Hors ligne
#7 Tue 06 October 2015 07:21
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Il y a plusieurs raisons à tout ça, raisons qui vont varier selon les choix techniques qui seront faits pour la suite du projet :
- En cas d'utilisation de fichiers shape en lieu et place d'une BDD (ce qui risque fort d'arriver, bien malgré moi...), l'horodatage se fera par QGIS avec les problèmes mentionnés plus haut (risque d'édition par les utilisateurs si cette date/heure devait obligatoirement se retrouver dans le formulaire notamment) ;
- Un protocole de saisie doit être suivi afin de ne pas "mélanger" les entités (saisie par des néophytes ), et connaître l'heure précise de chaque saisie permettrait de faire le tri en cas d'erreur. Mais si toutes les entités ont la même heure, ce protocole devient caduc.
Donc voilà voilà, on essaie de faire au mieux mais j'avoue que le fait de devoir obligatoirement afficher un attribut dans le formulaire de saisie pour qu'il s'enregistre effectivement est un peu limitant dans le cas présent.
Hors ligne
#8 Tue 06 October 2015 09:47
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Une solution qui pourrait peut-être vous convenir :
http://gis.stackexchange.com/questions/ … collection
L'horodatage est celui de l'ouverture de la boite de dialogue et non de sa validation, mais si j'ai bien compris votre besoin cela ne me parait pas gênant
Jean-Marie
Azimut
Hors ligne
#9 Tue 06 October 2015 11:00
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Wouhou superbe !
Si ça marche, c'est droit ce dont j'ai besoin. Un grand merci pour cette découverte jmarsac !
Hors ligne
#10 Tue 06 October 2015 14:45
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Salut
Donc voilà voilà, on essaie de faire au mieux mais j'avoue que le fait de devoir obligatoirement afficher un attribut dans le formulaire de saisie pour qu'il s'enregistre effectivement est un peu limitant dans le cas présent.
Dans ce cas, c'est peut-être une limitation non volontaire; ou pas. Mais dans tous les cas, dépose une requête de fonctionnalité sur le site de QGIS. Tu verras bien et ça sera un plus pour tout le monde.
Hors ligne
#11 Tue 06 October 2015 15:15
- romainbh
- Participant assidu
- Date d'inscription: 20 Aug 2013
- Messages: 355
Re: QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire
Excellente idée SANTANNA, et voilà qui est fait : http://hub.qgis.org/issues/13534
J'espère juste que mon franglais approximatif sera compréhensible
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.10 : Enregistrement d'un attribut non intégré au formulaire - Sujet suivant