#1 Wed 09 February 2022 11:13
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
QGIS: Temporalisation entrees de table
Bonjour,
J'ai créé un shp reprenant des zones de travaux et qui comporte, entre autres, 2 champs correspondant, d'une part, à une date de début de chantier et d'autre part, à une date de fin.
Pensez-vous qu'il serait possible qu'une entrée puisse être automatiquement masquée ou supprimée dès que la date de fin de travaux est dépassée ?
Merci par avance pour vos réponses.
Belle journée
Hors ligne
#2 Wed 09 February 2022 11:24
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS: Temporalisation entrees de table
Bonjour,
Une idée en l'air, pas testée, utiliser les valeurs par défaut du champ date fin avec un truc du genre case when date fin<now() then '' end
Hors ligne
#3 Thu 10 February 2022 18:04
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Temporalisation entrees de table
Merci pour cette réponse : j'ai créé un champ statut (en cours ou terminé) , appliqué ta formule et, dans la symbologie, demandé que ne s'affiche que les travaux en cours.
Ca marche nickel !
Encore merci
Hors ligne
#4 Thu 17 March 2022 17:47
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Temporalisation entrees de table
Bonjour,
Je reviens avec mon problème car il y a quelque chose qui ne fonctionne pas.
J'ai créé un champ de type date pour encoder la date de début d'un événement (debut) et un autre, de même type pour la date de fin (fin). Le champ "statut" doit m'afficher "en cours", "terminé" ou "non commencé" en fonction des dates de fin et de début. J'ai donc encodé la formule suivante :
case when "Fin" >= now() then 'En cours' when "Fin" < now() then 'Terminé' when "debut" > now() then 'Non commencé' END.
Pour les 2 premières conditions, ça fonctionne très bien. Par contre, quand je tape une date de début postérieure à la date du jour, c'est la valeur 'en cours ' qui s'affiche au lieu de 'non commencé'. Ai-je fauté quelque part ou est-ce lié au fait que la formule fait appel à 2 champs différents , ...?
Merci par avance pour vos réponses.
Belle soirée
Hors ligne
#5 Thu 17 March 2022 18:38
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS: Temporalisation entrees de table
Bonjour,
Il faut peut-être rajouter une condition du style when "Fin" < now() and "Fin" is not null' then...?
Hors ligne
#6 Fri 18 March 2022 12:14
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Temporalisation entrees de table
Bonjour,
Merci pour ta réponse mais il y a toujours une date de début et de fin encodée donc je ne vois pas vraiment à quoi sert cette partie de fonction (is not null) pourrait résoudre mon problème.
Hors ligne
#7 Fri 18 March 2022 12:19
- Miniopterine
- Participant assidu
- Date d'inscription: 29 Nov 2005
- Messages: 278
Re: QGIS: Temporalisation entrees de table
Oui mais du coup si "debut"> now() et "Fin" > now() il doit y avoir un conflit dans votre expression
Hors ligne
#8 Fri 18 March 2022 15:59
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS: Temporalisation entrees de table
Merci pour tes réponses. Elles m'ont permis de trouver la solution : en fait, il faut chaque fois définir les conditions par rapport aux 2 champs. La syntaxe correcte est donc : case when "debut" < now() and "Fin" >= now() then 'En cours' when "debut" < now() and "Fin" < now() then 'Terminé' when "debut" > now() and "fin" > "debut" then 'Non commencé' END
Belle journée
Hors ligne