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 Mobile Discussion :

Calendrier cyclique


Sujet :

Windev Mobile

  1. #21
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    La règle de calcul doit fonctionner quelque soit la longueur du cycle.
    Tu me parles d'un cycle de 84j alors que je n'en vois que 28 (qui correspond à 1 mois matin/am/nuit).

    La problème que tu as en plus est qu'il faut prendre en compte le mois pour savoir si tu seras du matin/am/nuit.

  2. #22
    Futur Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Hello,
    First thank you very much..pour ta réponse rapide. Comment tu m'a dit c'est bien le problème pour prendre en compte de mois matin ou après midi ou nuit. C'est la raison pour laquelle j'ai pris un cycle de 3 mois (matin. Aprèm. Nuit + repos) et ça fait 84 jours. but cette étape que je sais pas comment faire....par mois 14j de travail, les restes en repos...c'est pour ça je sollicite encore ton aide....

  3. #23
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Pour savoir si tu es du matin/am/soir, il te faut créer une autre procédure qui te renverra la bonne valeur par rapport au mois avec un code comme ci-dessous par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELON monMois
       CAS 1, 4, 7, 10
            RENVOYER "Matin"
       CAS 2, 5, 8, 11
            RENVOYER "AM"
       CAS 3, 6, 9, 12
            RENVOYER "Nuit"
    FIN

  4. #24
    Futur Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci Lo²,

    1) D’abord, j’ai continué avec le code que tu as proposé à Ohlala123, voilà ce que j’ai fait,

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
      DateDébutEXPRESS est une Date ="20150101"
    résultat est entier = DateDifférence("20150101",SAI_Date)
    résultat++
    //Trace(résultat)
    SI résultat > 84 ALORS
                    // On récupère la partie décimale de la division
                    monReste est un réel = PartieDécimale(résultat/84)
                    //Trace(monReste)                      
                    SI monReste = 0 ALORS
                                   // Cela veut dire qu'on démarre un nouveau cycle
                                   résultat = 1
                    SINON
                                   // Avec le modulo, on va récupérer le néme jour par une règle de trois
                                   résultat = Arrondi((monReste*84), 0)
                    FIN
    FIN
     
    //Trace(résultat)
    SELON résultat
                    CAS 29,30,31,32,38,39,40,41,42,47,48,49,50,51                                                
                                   SAI_résultat = "Matin"                                               
                    CAS 5,6,7,8,9,15,16,17,18,24,25,26,27,28,33,34,35,36,37,43,44,45,46,52,53,54,55,56,61,62,63,64,65,71,72,73,74,80,81,82,83,84                                                              
                                   SAI_résultat = "Repos"                                               
                    CAS 1,2,3,4,10,11,12,13,14,19,20,21,22,23                                                          
                                   SAI_résultat = "AM"                                                    
                    CAS 57,58,59,60,66,67,68,69,70,75,76,77,78,79                                                
                                   SAI_résultat = "Nuit"                                                   
    FIN
    Il marche super bien, sauf une erreur que je n’arrive pas le corriger, le problème lors que « monReste = 0 » il avance 1 jour, il m’a dit que je travaille ce jour-là alors je suis en repos, je m’ai demandé si cette erreur est provoqué par mon cycle de 4j de travail, 5j de repos, 5j de travail, 4j de repos, 5j de travail, 5j de repos. As-tu une idée comment je pourrai le modifier STP ?

    2) Je te remercie pour la code que tu m’écris avec selon monMois, tu as cité le mois dans l’ordre 1 matin 2 AM, 3 nuit, le problème je ne commence pas le 1er du mois chaque fois mais par roulement. Je pense que le plus simple est de résoudre le problème de décalage. Mais comment prendre ? si tu as une idée ou une solution je veux bien…Merci.

  5. #25
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut Procédure OK
    Bonsoir Lo²,

    j'ai crée ma procédure et je fais appeler chaque fois aux champs correspond, marche nikel...sauf le décalage de jour. Je viens de voir que même Rocky avait la même problème..

    Si vous avez une idée je suis toujours preneur..

    Merci.....


    Citation Envoyé par ohlala123 Voir le message
    OK, je vais faire comme vous disiez et je vous tiens au courant....

    Merci..

  6. #26
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Hello,

    Le décalage d'une journée doit venir de :
    J'avais ajouté cette ligne parce que je trouvais un décalage ^^

    ou du test sur

  7. #27
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    J'ai essayé..comme suite..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI monReste = 0 ALORS
    	// Cela veut dire qu'on démarre un nouveau cycle
    	résultat = 0
    SINON
    	// Avec le reste, on va récupérer le Niéme jour par une règle de trois
    	résultat = Arrondi((monReste*15), 0)
    FIN
    il n'y a pas de décalage mais seulement à une condition qu'on peut interroger que à partir de date de référence, si j'ai fait une recherche avant cette date le résultat est faux, et même temps je n'ai pas compris le test avec le code suivant :

    [/QUOTE]

    merci de m'éclairer un peu plus SVP?0

  8. #28
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    En fait monReste permet d'avoir le reste de la division du nombre de jours entre 2 dates et la durée de ton cycle.

    Si tu as une différence qui est multiple de 15, cela signifie que monReste = 0 et qu'un nouveau cycle démarre.
    C'est plus clair ?

  9. #29
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Merci à vous,

    mais j'ai demandé comment on test en modifiant le code, vu que déja monreste est egal 0?

  10. #30
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    Je ne comprends pas le 'comment on test'.
    Tu veux dire avec le debug et les points d'arrêt ?

  11. #31
    Futur Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Novembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour Lo²,

    Merci pour tes réponses...je pense qu'ohlala123 veut dire comment faire autrement en modifiant le code.

    Mais je ne toujours pas trouvé la solution pour la décalage de date..
    A ton avis est ce qu'il y a un autre moyen en modifiant le code complément?

  12. #32
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Je dirais tous les moyens sont bons

    Pour le moment, j'ai un peu moins de temps, mais ce que je vous conseille à tous les 2, c'est avec la base de travail que vous avez, d'utiliser le débuggage, les points d'arrêts et le pas-à-pas.
    Cela va vous permettre de mieux comprendre le déroulement, d'avoir les valeurs des différentes variables au fur et à mesure.

  13. #33
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Hello, avez-vous avancé sur ce problème de décalage ?

  14. #34
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    Comme, je disais dans mon post précédent il marche bien sans la décalage à partir de la date de référence. Mais avant ce date le résultat sont faux..quoi que je fasse le résultat sont toujours faux..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /On récupère la partie décimale de la division
    monReste est un réel = PartieDécimale(résultat/15) 
    
    //Trace(monReste)		
    SI monReste = 0 ALORS
    	// Cela veut dire qu'on démarre un nouveau cycle
    	résultat = 0
    SINON
    	// Avec le reste, on va récupérer le Niéme jour par une règle de trois
    	résultat = Arrondi((monReste*15), 0)
    FIN
    et aussi j'essaie de mettre couleur-fond (champ) en cas de férié, depuis hier j'ai essayé pas de code + exemples que j'ai trouvé sur PCSOFT, mais rien ne marche.
    simplement du genre pour le date fixe (férié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     si le champ résultat = Année+"0101" Alors 
    champ résultat..couleudFond=rouge
    Fin
    Merci d'avance si vous avez une idée..

  15. #35
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Je ne vais encore avoir le temps de regarder ce décalage, mais as-tu débuggé avec le pas-à-pas pour comprendre d'où venait le problème ?

    Pour les jours fériés, tu te compliques la vie, il existe la fonction JourFerie(..) qui test la date et te renvoie vrai/faux.
    Pour la couleur, c'est monChampSaisie..CouleurFond = iRougeClair par exemple.

  16. #36
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    le débogueur se déroule correctement, mais seulement, lorsque il commence un nouveau cycle en ce moment là il rajoute un jour.

  17. #37
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    As-tu essayé en enlevant ce test ?

  18. #38
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    RE,

    j'ai testé comme suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //On récupère la partie décimale de la division
    monReste est un réel = PartieDécimale(résultat/15) 
     
    //Trace(monReste)		
    //SI monReste = 0 ALORS
    	// Cela veut dire qu'on démarre un nouveau cycle
    	//résultat = 0
    //SINON
    	// Avec le reste, on va récupérer le Niéme jour par une règle de trois
    	résultat = Arrondi((monReste*15), 0)
    //FIN
    résultats sont correct, mais seulement à partir de la date de référence, sinon les résultat sont faux .

    Pour les jour fériés j'ai testé comme suite :

    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
    // Initialisation des 11 jours fériés communs aux départements français et DOM/TOM
    JourFériéAjoute("0101")	// 1er Janvier
    JourFériéAjoute(jfLundiDePâques)	// Lundi de Pâques
    JourFériéAjoute("0501")	// 1er Mai
    JourFériéAjoute("0508")	// 8 Mai
    JourFériéAjoute(jfJeudiDeLAscension)	// Jeudi de l'Ascension
    JourFériéAjoute(jfLundiDePentecôte)	// Lundi de Pentecôte
    JourFériéAjoute("0714")	// 14 Juillet
    JourFériéAjoute("0815")	// 15 Août (Assomption)
    JourFériéAjoute("1101")	// Toussaint
    JourFériéAjoute("1111")	// 11 Novembre
    JourFériéAjoute("1225")	// Noël
     
    // Vérification d'une date présente dans un champ de saisie
    SI JourFérié(SAI_Date) = Vrai ALORS
    	SAI_Date..CouleurFond = iRougeClair
    FIN
    ce code applique bien la couleur dans le champ, mais le champ reste toujours en couleur quelque soit la date...

  19. #39
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Oui c'est normal que la couleur reste, tu n'indiques pas que dans le cas où le jour n'est pas férié, ce qu'il faut faire

  20. #40
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    Oui c'est vrai, vous avez raison, j'ai rajouté le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SI JourFérié(SAI_J3) = Vrai ALORS
    	SAI_Date..CouleurFond = iRougeClair
     
    SINON
    	SAI_Date..CouleurFond = CouleurDéfaut
    FIN
    Mais le problème "CouleurDéfaut" pas d’équivalent sur Android..

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/12/2010, 15h36
  2. disparition activeX calendrier
    Par djool dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2005, 12h31
  3. [toFAQ]calendrier perpetuel
    Par philippe_jasmin dans le forum C
    Réponses: 17
    Dernier message: 22/04/2003, 19h04
  4. Delphi et XMLRAD pour un calendrier
    Par Toxine77 dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/01/2003, 13h56
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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