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 :

Structure pour une planification des tâches [WD20]


Sujet :

WinDev

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut Structure pour une planification des tâches
    Bonjour à tous

    Ce n'est pas vraiment une idée que je cherche mais bien le comment..


    Dans ma base de données, j'ai un fichier "bdTâche" avec des rubriques de bases comme

    Titre
    Description
    DHDébut
    DHFin
    Propriétaire
    etc

    J'ai implanté un UI pour crée des tâches récurrentes. Donc, l'utilisateur peut se créer une tâche à finir pour le 15 oct avec option "tous les mois"

    J'ai des rubriques ;

    EstRéccursif BOOL - > Est-ce que la tâche doit être lue comme récurrente?
    RéccursifMode ENT - > Où j'enregistre le type de réccurence (ex:1 = tous les jour, 2= tous les semaine, etc)


    Ma question est la quel des méthodes je devrais utiliser?



    Les tâches s'affichent dans une zone répétéé avec l'option de terminer la tâche (isDone = vrai). Il y parfois des ruptures "fait à la main" qui affiche la date.

    Nom : Sans titre.png
Affichages : 640
Taille : 9,5 Ko

    Donc, prenons comme exemple ma tâche "Vider les poubelles".

    J'ai mis comme date le 15 oct et je veux activer la récurrence "tous les semaine" (id = 2 )

    Donc mes rubriques du haut prennent comme valeur : vrai et 2

    Puisque mes tâches s'affichent seulement lorsque "isDone" = faux, je ne vois pas trop comment afficher une tâche "isDone" = vrai parce que "EstRéccursif" = vrai. Lorsque l'utilisateur veut arreter la tâche récurrente, j'imagine que je n'ai qu'à mettre "EstRéccursif" = faux et "isDone=


    J'attend vos suggestion

  2. #2
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Bonjour,

    dans le cas des tâches récurrentes,
    il vous faut, si elle est réalisée, conserver le fait qu'elle est réalisée.
    Une table du genre Id Tache-Date

    Au niveau de l'affichage, pour les tâches non récurrentes, le Isdone=Faux c'est OK
    Pour les tâches récurrentes, il faut afficher les dates qui n'existent pas dans la nouvelle table.

    est-ce que j'ai bien compris votre problème et est-ce que j'ai été assez clair ?

    après, au delà du fait que vous programmez en windev 20, c'est plus un problème algo et de construction qu'un problème windev ....
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    En effet, ce n'est pas un problème WD mais bien l'algo derrière tous ça.


    Je comprend à moitier le concep des tables...

    J'ai pensé à procédé comme ceci :

    Chaque tâche à un DHFin, lorsque l'utilisateur terminé une tâche, j'y affecte le "isDone=vrai".

    Dans le cas d'une tâche réccurente, lorsque je "termine" ma tâche, je vérifie si mon "EstRéccurente" = vrai.


    Code windev : 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
    19
    Si bdTâche.EstRécurrente alors
    //Je change simplement ma date de fin jusqu'à la prochaine date selon mon mode de réccurence
    Selon bdTâche.RéccursifMode 
     
    cas 1 
    //La Tâche sera à terminé pour demain
    bdTâche.DHFin..Jour +=1
     
    cas 2 
    //La Tâche sera à terminé pour la semaine prochaine
    bdTâche.DHFin..Jour +=7
    cas ...
     
    FIN
    //On laisse le isDone à Faux
    //isDone = faux 
     
     hModifie()
    FIN


    Est-ce que ça ferait du sens?

  4. #4
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    quand je dis "table" je veux dire "Fichier".
    Je comprends ce que vous voulez faire mais posez vous les bonnes questions :

    Comment faire pour consulter le passé d'une tâche récurrente? ou ce qui est à venir ?
    Imaginons qu'il y a une semaine où je ne puisse pas exécuter la tâche récurrente ? comment le gérer ?
    Imaginons une tache récurrente semaine qui commence en semaine 35 et je sais à l'avance que je ne serais pas là en semaine 40 donc je ne veux pas programmer la semaine 40 maintenant ?

    A mon sens cette construction de fichier n'est pas suffisante pour gérer tous les cas.
    Essayez de revoir votre modèle de données pour gérer ces nouveaux éléments.
    après tout dépend aussi jusqu'où vous voulez aller dans le processus de gestion de vos tâches ....

    bonne suite,
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    les tâches passées et qui ne sont donc plus concernées par la récurrence, je les recréerai en tâche simple avec une référence à la tâche récurrente d'origine. De cette façon, tu peux afficher des tâches avec un statut "réalisé" et conserver l'information de la récurrence.

    Pour les dates à venir, il faudra, comme le suggère en effet L.nico, avoir un fichier des exceptions pour les jours où cette tâche ne doit pas apparaître ou être décalée par exemple dans la semaine ou dans la journée.

    Bon courage,

    Nicolas

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    En l'occurrence, je pense qu'il faut éviter un fichier avec les exceptions, mais avoir un fichier avec les taches_réelles

    Autrement dit sur notre exemple avec les poubelles :
    - Un fichier "TACHES_RECURRENTES" avec une ligne (car une seule tache pour l'instant ) : Sortir les poubelles tous les mercredis à 18 heures.
    - Un autre fichier "TACHES_REELLES" avec 52 lignes ( une par semaine .... et disons qu'on a des données sur 1 an) : Pour chaque ligne, on a date/heure de début Date/heure de Fin et un Statut ( planifié, en cours/ annulé ... )
    - Un traitement en début de chaque mois ... ou à définir, qui recense toutes les taches du 1er fichier, et qui applique ces taches dans le 2ème fichier.

    Ainsi, dans le 2ème fichier tu as un statut correct pour chaque tache :
    La tache 'Sortir Poubelle' a été effectuée 52 fois, La durée moyenne de cette tache est de x minutes ... et elle a duré plus de 30 minutes à x reprises.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Tout à fait d'accord avec tbc92 ,
    Cependant pour moi pas besoin de traitement,
    le fichier "Taches-Reelles" ne contient que le détail des tâches réalisées ou en exception.
    Il ne faut pas oublier qu'une tâche n'est pas forcément hebdomadaire mais peut-être quotidienne ou mensuelle ou annuelle.
    Par défaut une occurence à venir existe dans le planning sauf si elle existe dans le fichier taches réelles en exception.
    Toute occurrence de tâche qui existe dans le fichier taches réelles en réalisé est réalisée ....
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Le traitement de début de mois peut être utile si on a des taches comme : 'A partir du mercredi x et sans date de fin, descendre les poubelles tous les mercredis.'

    C'est ce 'Sans date de Fin' qui pose problème.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Le traitement de début de mois peut être utile si on a des taches comme : 'A partir du mercredi x et sans date de fin, descendre les poubelles tous les mercredis.'

    C'est ce 'Sans date de Fin' qui pose problème.
    Je peux me tromper mais je ne vois pas pourquoi.
    Je programme initialement une tâche sans fin qui commence en semaine 45 en 2015 le mercredi (toutes les semaines)
    J'affiche la semaine 46 en 2015

    • CAS 1 : Comme la semaine 46 > 45 et que cette tâche n'a pas de date de fin, je vais donc chercher dans "taches réelles" ce qu'il en est
      "Taches reelles" existe en 46 --> Elle est réalisée

    • CAS 2 :"Taches reelles" existe en 46 mais elle est supprimée donc on ne doit pas l'afficher

    • CAS 3 : L'enregistrement n'existe pas dans "taches reelles" en semaine 46, la tâche n'est pas réalisée, elle est donc à effectuer


    Il manque encore le cas de l'occurence de la tâche déplacée qu'on peut résoudre
    en conservant la date origine dans "taches reelles" et en créant l'enregistrement si on le déplace.

    Ai-je encore besoin d'un traitement d'initialisation du mois en procédant ainsi ?

    Par contre je peux totalement comprendre qu'il est plus aisé de manipuler des données réelles.
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut


    Donc si l'on résume ;


    En gros, je me crée 2 nouvelles tables pour mes tâches récurrentes.

    "TACHES_RECURRENTES" où je relis l'ID de ma tâche de mon Fichier BdTâche.
    "TACHES_REELLES" où j'enregistre la période pouir la tâche : (id)44 - (date)14/10/2015 - (statut)Terminé, 44 - 21/10/2015 - En cours , 44 - 28/10/2015 - Planifié.

    * La seul chose où je bloque est
    - Un autre fichier "TACHES_REELLES" avec 52 lignes
    ...par tâche? Et si ma récurrence est tous les jours. Je dois avoir 360 lignes par tâche?


    Je me crée une procédure sur mon serveur qui met à jour le statut de mon 2iem fichier.



    ps.our le "sans date de fin", la société est très clair sur le fait qu'il y aura toujours une date de fin et qu'elle doit être respecté sous peine de note négative dans son compte.

  11. #11
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Pourquoi un fichier "Taches_recurrentes" ?,
    un fichier "taches" avec une rubrique récurrente (booléen)
    une date, et une date de fin si récurrente (puisque vous dites qu'il y a toujours une fin).

    le fichier "taches_reelles" ne contient que les tâches réalisées, supprimées ou déplacées pour tout les types de taches.

    après si vous voulez conserver votre idée initiale,
    vous pouvez garder la rubrique "réalisé" dans votre table "tâche" pour les tâches sans récurrence,
    ou considérer que l'existence dans "taches_reelles" fait foi pour la réalisation de la tâche.

    il est certain que si on programme une tâche le 01/01/2016 avec une récurrence quotidienne,
    lorsqu'on arrive au 31/12/2016 on a effectivement 365 enregistrements de taches réalisées dans la table "taches_reelles" ....
    mais au 31/01/2016 on a que 31 enregistrements correspondants.
    A lire avant de poster
    Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton

  12. #12
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    Je comprend mieux maintenant !


    Merci à tous pour vos réponse

  13. #13
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    En l'occurrence, je pense qu'il faut éviter un fichier avec les exceptions, mais avoir un fichier avec les taches_réelles

    Autrement dit sur notre exemple avec les poubelles :
    - Un fichier "TACHES_RECURRENTES" avec une ligne (car une seule tache pour l'instant ) : Sortir les poubelles tous les mercredis à 18 heures.
    - Un autre fichier "TACHES_REELLES" avec 52 lignes ( une par semaine .... et disons qu'on a des données sur 1 an) : Pour chaque ligne, on a date/heure de début Date/heure de Fin et un Statut ( planifié, en cours/ annulé ... )
    - Un traitement en début de chaque mois ... ou à définir, qui recense toutes les taches du 1er fichier, et qui applique ces taches dans le 2ème fichier.

    Ainsi, dans le 2ème fichier tu as un statut correct pour chaque tache :
    La tache 'Sortir Poubelle' a été effectuée 52 fois, La durée moyenne de cette tache est de x minutes ... et elle a duré plus de 30 minutes à x reprises.
    Je préfère avoir uniquement les exceptions dans un fichier à part car généralement on en a moins que les tâches à venir calculables en fonction des critères de récurrence ...

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

Discussions similaires

  1. Choix d'une structure pour une liste de tableau d'ansistring
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/05/2007, 08h36
  2. Quel langage pour une gestion des stocks-client-caisse ?
    Par plex dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/04/2007, 19h56
  3. retourner une structure pour une fonction
    Par emardjean dans le forum C
    Réponses: 5
    Dernier message: 24/01/2007, 21h36
  4. [Windows] - Creer barre pour la barre des tâches
    Par Leobaillard dans le forum Delphi
    Réponses: 2
    Dernier message: 30/08/2006, 00h15
  5. Exclure les Weekend dans une planification de tâches
    Par dumontjf dans le forum Access
    Réponses: 1
    Dernier message: 17/07/2006, 11h18

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