PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Échéancier Date
Échéancier Date
Iniciado por ben_liam, 20,jul. 2020 10:46 - 8 respuestas
Miembro registrado
5 mensajes
Publicado el 20,julio 2020 - 10:46
Bonjour,

Je débute sur WINDEV et je suis bloqué. J'ai une table Engin avec deux champs: Immatriculation et date de validité.

Je veux qu'une alerte s'affiche pour tout enregistrement de la table Engin quand la différence de jour entre la date de validité et la datesys est inférieur ou égal à 30 jours.

L'alerte devras donner l'immatriculation et le nombres de jours restant.

Merci d'avance
Miembro registrado
22 mensajes
Publicado el 20,julio 2020 - 11:11
il faut que tu fasses une boucle du type https://doc.pcsoft.fr/fr-FR/?3044036&name=HLitRecherchePremier
HRecherchePremier(Engin, ..., ...)
TANTQUE HTrouve(Engin)

HSuivant(Engin, ...)
FIN

dans cette boucle tu calcules la difference https://doc.pcsoft.fr/fr-FR/?3027001&name=DateDifference
La date systeme tu l'as avec datedujour()

Il faut chercher un tout petit peu

--
Aziz T.
Tunis
Windev 22
Miembro registrado
5 mensajes
Publicado el 20,julio 2020 - 11:21
Merci à vous.

J'essaie et je vous reviens.
Miembro registrado
5 mensajes
Publicado el 20,julio 2020 - 12:11
nbrsjours est un entier
gsVeh est une chaîne
HLitRecherchePremier (Engin,DateFin,"")
nbrsjours = DateDifférence (DateDuJour() , Engin.DateFin )
gsVeh = (Engin.IDEngin)
Info ("Alerte il vous reste", nbrsjours, "jours pour la visite du véhicule", gsVeh)

Il marche mais pour un seul enregistrement, pouvez vous me donner l'erreur sur le code suivant?

nbrsjours est un entier
gsVeh est une chaîne
HLitRecherchePremier (Engin,DateFin,"")
TANTQUE HTrouve(Engin)
nbrsjours = DateDifférence (DateDuJour() , Engin.DateFin )
gsVeh = (Engin.IDEngin)
HSuivant(Engin)
Info ("Alerte il vous reste", nbrsjours, "jours pour la visite du véhicule", gsVeh)

FIN
Miembro registrado
22 mensajes
Publicado el 20,julio 2020 - 12:16
elle sert à quoi cette variable gsVeh?
En plus tu fais une recherche bizarre HLitRecherchePremier (Engin,DateFin,"")
on dirait que tu cherches les engins qui ont pas de date de fin...???
Si tu veux parcourir tous les engins, sans critère de recherche, il vaudrait mieux utiliser HLitPremier (Engin)
c'est moi qui t'ai induit en erreur
:o

--
Aziz T.
Tunis
Windev 22
Miembro registrado
4.363 mensajes
Publicado el 20,julio 2020 - 14:42
Bonjour,
Tu peux utiliser la requête suivante :
SELECT
Engin.PK_lmmatriculationt AS Immatriculation
WL.DateDifférence ( WL.DateDuJour ( ),Engin.NDX_ProchaineVisite ) AS AvantVisite
FROM
Client
WHERE
AvantVisite<= 30


--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
5 mensajes
Publicado el 20,julio 2020 - 16:26
Merci @Voroltinquo
Miembro registrado
326 mensajes
Publicado el 20,julio 2020 - 18:12
POUR TOUT Engin
dateReel est date=Engin.dateDevalidite //Mettre le nom de la colonne correctement
nbjour est entier= DateDifférence (DateDuJour() , dateReel)
SI nbjour>=30 ALORS
info("Immatriculation:"+TAB+Engin.immatriculation+TAB+"nb jour restant :"+TAB+nbjour)
FIN
fin
Miembro registrado
5 mensajes
Publicado el 20,julio 2020 - 19:27
Merci @Ndiaga