Je souhaite créer un champ de date et d'heure mis à jour lorsque je modifie un champ d'attribut dans ce format aaaa-mm-jj 00:00:00 (= 2016-05-08 11:04:00) - ma date / heure locale. Les données sont dans un fichier de formes QGIS 2.14 et des lignes vectorielles comme capture d'écran ci-dessous.
Lorsqu'une fonction NULL dans le « nom » champ, je veux entrer un nom pour la route et le champ « mod » doit recevoir de mod ified date / heure comme '08/05/2016 15:16:00.
J'ai déjà essayé quelques options et j'ai échoué. J'ai besoin d'aide pour recommencer depuis le début.
- Je crée un nouveau champ, type de date / heure, mais reste avec une valeur NULL après avoir modifié, dans le champ "nom", ou la fonctionnalité elle-même.
- J'ai aussi utilisé l'expression now (), mais reste avec la valeur NULL après avoir édité.
Remarque: la date qui y est vue, 2016-04-14 est la première valeur créée avec "Field Calculator".
J'utilise QGIS 2.14.
Réponses:
Vous pouvez utiliser le code suivant qui connecte l'
attributeValueChanged
événement à une fonction que nous pouvons définir qui insère les résultats de l'$now
expression. Mettez en surbrillance votre couche et copiez / collez les éléments suivants dans la console Python :Sélectionnez l'entité en cliquant sur le numéro de ligne (indiqué dans la zone rouge de l'image) ou dans le canevas de carte et modifiez tout attribut pour cette entité. L'attribut de votre
mod
champ doit être mis à jour:Remarque: J'ai utilisé un champ de chaîne au lieu de date afin d'obtenir l'heure, sinon le champ de date enregistre uniquement AAAA-MM-JJ .
la source
Je suis tombé sur cette Q&R alors que je cherchais un moyen de modifier les horodatages que j'apportais aux enregistrements à l'aide d'un plugin. J'ai placé une version légèrement modifiée du code dans le plugin pour mettre à jour automatiquement la date / l'heure dans le ou les enregistrements que j'ai modifiés:
la source