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é ?

#1 Wed 09 February 2022 11:13

geomou
Participant actif
Date d'inscription: 9 Apr 2012
Messages: 80

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: 80

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: 80

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: 80

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: 80

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

 

Pied de page des forums

Powered by FluxBB