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 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 wink

Je me heurte ce matin à une question quasi existentielle lol

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 wink

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

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

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 lol 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

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

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 wink 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 wink

Hors ligne

 

#6 Mon 05 October 2015 19:13

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

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 wink ), 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

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

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 ! big_smile

Si ça marche, c'est droit ce dont j'ai besoin. Un grand merci pour cette découverte jmarsac ! wink

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

romainbh a écrit:

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 tongue

Hors ligne

 

Pied de page des forums

Powered by FluxBB