IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

TIMER sur RDV [WD16]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut TIMER sur RDV
    Bonjour,

    J'ai une liste de rendez-vous pour une personne.

    Je cherche à afficher une fenêtre de rappel lorsque celui-ci arrive à l'heure prévu.

    J'utilise un Timer, mais cela ne fonctionne pas .


    Voici mon code :

    PROCEDURE RappelRDV()
    RequeteSelectionRDV.IdPerson=32
    HExécuteRequête(RequeteSelectionRDV,hRequêteInterruptible)
    datedebut est une DateHeure
    datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut
    HLitPremier(RequeteSelectionRDV)
    TANTQUE HTrouve()
    SI datedebut..PartieDate=DateDuJour() ET datedebut..PartieHeure=HeureSys() ALORS
    Info("RDV : " + RequeteSelectionRDV.Contenu)
    FIN
    HLitSuivant(RequeteSelectionRDV)
    FIN


    Mon timer est déclenché au clique d'un bouton valider :
    Timer(RappelRDV,100,1)


    J'ai testé la requête, et celle-ci fonctionne, cependant, je n'ai rien qui s'affiche à l’écran

    Merci

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Ton timer se déclenche au moins ? As-tu fait un pas à pas dans ta procédure ?

    Je pense que les égalités ne sont pas bonnes. LA date doit être correcte, mais l'heure, ne doit pas coller. Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TANTQUE HTrouve(RequeteSelectionRDV)
    SI datedebut..PartieDate=DateDuJour() ET datedebut..PartieHeure=HeureSys() ALORS
    Info("RDV : " + RequeteSelectionRDV.Contenu)
    SINON
     ERREUR(DateDuJour,DateDuJour(),datedebut..PartieHeure,HeureSys())
    FIN
    HLitSuivant(RequeteSelectionRDV)
    FIN
    En rallongeant ta durée de timer.

    Autre astuce : éviter que ton timer se relance lorsque ta boîte info est affichée.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut
    En effet, cela vient de l'heure...

    HeureSys() retourne un résultat sous la forme "14:33:21:05" or moi je souhaite simplement "14:33"...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut
    Bon, j'avances peu à peu..

    Ce code fonctionne...mais je n'arrives pas à arrêter l'affichage...je voudrais que mon "rappel" ne s'affiche qu'une fois( dans ce cas, il ouvre une nouvelle fenêtre info chaque seconde)

    Une idée ?

    TANTQUE HTrouve(RequeteSelectionRDV)
    datedebut est une DateHeure
    datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut
    heure est une Heure=Gauche(HeureSys(),4)
    SI datedebut..PartieDate=DateDuJour() ET Gauche(datedebut..PartieHeure,4)=Gauche(HeureSys(),4) ALORS
    Info("RDV : " + RequeteSelectionRDV.Titre+RequeteSelectionRDV.IDAction)
    SORTIR
    SINON
    HLitSuivant(RequeteSelectionRDV)
    FIN

    FIN

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    petite modif de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    PROCEDURE RappelRDV()
    RequeteSelectionRDV.IdPerson=32
    HExécuteRequête(RequeteSelectionRDV,hRequêteInterruptible)
    Si bAuTravail alors retour
    bAuTravail = vrai
    
    datedebut est une DateHeure
    datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut
    HLitPremier(RequeteSelectionRDV)
    TANTQUE HTrouve()
    SI datedebut..PartieDate=DateDuJour() ET datedebut..PartieHeure=gauche(HeureSys(),4) ALORS
    Info("RDV : " + RequeteSelectionRDV.Contenu)
    FIN
    HLitSuivant(RequeteSelectionRDV)
    FIN
    
    bAuTravail = faux
    et dans le code de lafenêtre ou du projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bAuTravail  est booleen = faux
     
    Timer(RappelRDV,100,1)
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut
    Bon cette fois, la fenêtre info s'ouvre une seule fois...mais en boucle

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    C'est logique vu que tu fais un tantque htrouve()

    Il l'affichera autant de fois que tu as de lignes dans le résultat de ta requête...

    D'après ce que je vois, tu fais une recherche sur l'id de la personne. si elle a 100 rdv, tu l'auras 100 fois. Mets la date (et l'heure ?) en paramètre de ta requête...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    C'est logique vu que tu fais un tantque htrouve()

    Il l'affichera autant de fois que tu as de lignes dans le résultat de ta requête...

    D'après ce que je vois, tu fais une recherche sur l'id de la personne. si elle a 100 rdv, tu l'auras 100 fois. Mets la date (et l'heure ?) en paramètre de ta requête...
    Non, Je ne penses pas.

    La requête me retourne tout les RDV d'une personne....mais aprés je fais un test dessus :

    SI datedebut..PartieDate=DateDuJour() ET Gauche(datedebut..PartieHeure,4)=Gauche(HeureSys(),4) ALORS
    Info("RDV : " + RequeteSelectionRDV.Titre)
    SINON

    avec datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut

    Donc, il me retourne toujours le même enregistrement.

    Le soucis vient du fait que mon timer s'enclenche toutes les secondes et donc m'affiche à chaque seconde le résultat qui correspond.

    Par exemple : un rdv qui est à 14:54 (heure dans ma base) sera affiché de 14:54:00 à 14:54:59 (heuresystéme)

    La solution que j'ai trouvé et de mettre un timer d'intervalle de 1 minutes.

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Un truc me parait bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    datedebut est une DateHeure
    datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut
    HLitPremier(RequeteSelectionRDV)
    TANTQUE HTrouve()
    Je mettrais plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    datedebut est une DateHeure
    HLitPremier(RequeteSelectionRDV)
    datedebut..PartieDate=RequeteSelectionRDV.DateDebut
    datedebut..PartieHeure=RequeteSelectionRDV.HeureDebut
    
    TANTQUE HTrouve(RequeteSelectionRDV)
    Tu affectes tes variables avant d'avoir lu la première ligne de résultat...

    Dans le tantque, je préfère, histoire d'être plus lisible et carré (je sais, je chipotte... )
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 123
    Points : 36
    Points
    36
    Par défaut
    Exact...

    Maladresse de ma part

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 09/09/2008, 14h48
  2. Timer sur une fenetre "info"
    Par momobulle dans le forum WinDev
    Réponses: 2
    Dernier message: 11/07/2007, 13h26
  3. Waitable timers sur linux
    Par wajihwajih dans le forum Linux
    Réponses: 3
    Dernier message: 23/05/2007, 15h36
  4. [FLASH] Problème de timer sur FLV
    Par BnA dans le forum Flash
    Réponses: 1
    Dernier message: 03/11/2006, 11h52
  5. [C#] Timer sur les évènements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo