Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Mise en table horraire pointage
#1
Bonjour a tous,
De nouveau j'ais besoin de votre aide.
Voila j'ai un fichiers horraire comme suit:

Empl........Date .............Heure.....IN-OUT
0002........18-02-2012......10:25.....1
0003........18-02-2012......10:24.....1
0004........18-02-2012......10:24.....1
0005........18-02-2012......10:25.....1
0003........18-02-2012......14:30.....2
0004........18-02-2012......15:25.....2
0002........18-02-2012......16:00.....2
0005........18-02-2012......16:20.....2

Employe = numero de l'employé
Date = date de travaille
Heure = heure du pointage
In-Out = si 1 alors IN (debut du travail) si 2 alors OUT (fin du travail)

je voudrais remplir un tableau pour chaque employe de la maniere suivante :

employer :0002
Date............Heure Debut.......Heure Fin.......Heure Travaillé
18-02-2012....10:25...............16:00............6:25

employer :0003
Date............Heure Debut.......Heure Fin.......Heure Travaillé
18-02-2012....10:25...............14:30............4:06

employer :0005
Date............Heure Debut.......Heure Fin.......Heure Travaillé
18-02-2012....10:25...............16:20............5:55

D'avance Merci
Hamid
Répondre
#2
Bonjour,

Tu as un fichier employé et un fichier horraire ? ou un seul fichier horraire ?
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#3
Bonjour,

Oui bien sur j'ais un fichier employé et un fichier horaire.
Répondre
#4
hamid a écrit :Bonjour,

Oui bien sur j'ais un fichier employé et un fichier horaire.


Une solution... à adapter avec tes rubriques clés.
Code :
Pour tout Employé
TableAjouteLigne(Table.Horraire, Employé.Numéro)
   Pour tout Horraire sur Employé.IDEmployé
      TableAjouteLigne(Table.Horraire, "", Horraire.Date, Horraire.Heure, Horraire.In-Out)
   Fin
Fin
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#5
Bonjour,

Je crois que je ne me suis mal exprimé, ce que je voudrais c'est afficher sur une même ligne d'un tableau l'heure d'entré, l'heure de sortie, et le total des heures travaillés, car ce que j'ai au départ c'est un fichier *txt, et dans ce fichier on a pour chaque ligne :

Employé = numero de l'employé
Date = date de travaille
Heure = heure de pointage
In-Out = si 1 alors IN (début du travail) si 2 alors OUT (fin du travail)

Or dans le code que vous m'avez donné
TableAjouteLigne(Table.Horraire, "", Horraire.Date, Horraire.Heure, Horraire.In-Out)
on aura pour chaque ligne du tableau la même chose que le fichier *txt, sinon expliquer moi.

Merci pour votre aide
Hamid
Répondre
#6
Bonjour a tous
Pas de solution ?Smile
Merci Hamid
Répondre
#7
Bonjour Hamid
Voici une solution à améléorer :
-soit EMPLOYE : Fichier liste des employés
HORRAIRE :Fichier de Pointage
- soit TABLE_POINTAGE une table Memoire pour récuperer les infos avec les colonnes dans l'ordre :
DATE ....EmpL.....HEURE-DEBUT.....HEURE_FIN....NBRE_HEURES....IN_OUT

Code :
HLitPremier(EMPLOYES,EmpL)
TANTQUE PAS HEnDehors(EMPLOYES)
    //Lecture du fichier HORRAIRE et recherche de EmpL
    HLitRecherchePremier(HORRAIRE,EmpL,EMPLOYES.EmpL)
    TANTQUE HTrouve(HORRAIRE)
        SI HORRAIRE.IN_OUT=1 ALORS
         TableAjouteLigne(TABLE_POINTAGE,HORRAIRE.DATE,HORRAIRE.EmpL,HORRAIRE.HEURE,"",0,HORRAIRE.IN_OUT)
        SINON
          TableAjouteLigne(TABLE_POINTAGE,HORRAIRE.DATE,HORRAIRE.EmpL,"",HORRAIRE.HEURE,0,HORRAIRE.IN_OUT)
       FIN
        
    HLitSuivant(HORRAIRE,EmpL)
    FIN

HLitSuivant(EMPLOYES,EmpL)
FIN

TableAffiche(TABLE_POINTAGE)


Il te reste un travail à faire :
// Sur traitement Affichage de TABLE_POINTAGE
- Calcul des nombres d'heures travaillées ( HEURE_FIN - HEURE_DEBUT : Ce n'est pas facile à partir de 23:59 ) voir dans ce forum un ancien poste de Samifred à ce sujet.
http://www.winfred.ch/fichiers/pointage.rar

- Puis Faire un Etat basé sur TABLE_POINTAGE en implantant un groupement et rupture sur La rubrique EMPL.
( une autre solution serait de reparcourir en boucle la table memoire sur EMPL et faire Un modification du champs HEURE_FIN, tu n'auras qu'une ligne par employé)
Répondre
#8
Bonjour Gwing,
Et merci pour ton aide,
Oui en effet la table se rempli bien, mais on a pas réglé le problème, car il faut que l'on ait sur une même ligne l'heure d'entrée et l'heure de sortie or ici a chaque changement de ligne du fichier horaire on a une ligne dans la table.
Merci
Hamid
Répondre
#9
bonjour

Gwing a écrit :- Puis Faire un Etat basé sur TABLE_POINTAGE en implantant un groupement et rupture sur La rubrique EMPL.
a moins que tu sois obligé de passer par une table pour faire tes calcules ;
tu peux résoudre facilement le problème en passant par un état avec groupement et rupture .
Essais aussi ce code que tu peux améliorer et réduire .
ça doit marcher , mais je te garantie rien concernant les performances pour une grande base de données :

Code :
TableSupprimeTout(TABLE_POINTAGE)


HLitPremier(EMPLOYES,EmpL)
TANTQUE PAS HEnDehors(EMPLOYES)
    //Lecture du fichier HORRAIRE et recherche de EmpL
    HLitRecherchePremier(HORRAIRE,EmpL,EMPLOYES.EmpL)
    TANTQUE HTrouve(HORRAIRE)
        SI HORRAIRE.IN_OUT=1 ALORS
         TableAjouteLigne(TABLE_POINTAGE,HORRAIRE.DATE,HORRAIRE.EmpL,HORRAIRE.HEURE,"",0,HORRAIRE.IN_OUT)
      
        SINON
        
        // lire les ligne de table_pointage  pour pointer les employer un par un
          POUR TOUTE LIGNE DE TABLE_POINTAGE
              SI TABLE_POINTAGE.COL_EMPL=EMPLOYES.EmpL ALORS
              TABLE_POINTAGE.COL_HEUREF=HORRAIRE.HEURE
              FIN    
      
          FIN
          
      
       FIN
        
      HLitSuivant(HORRAIRE,EmpL)
      FIN
HLitSuivant(EMPLOYES,EmpL)
FIN

TableAffiche(TABLE_POINTAGE)
Répondre
#10
Bonjour
Oui en effet il faut absolument que je passe par une table car il y a plusieur operation a faire sur cette table de plus il me faux le detail de tous les entres et sortie,ce que tu propose avec l'etat c'est la somme de tous les durees pour chaque employe mais moi j'ais besoin du detail de chaque entre sortie de chaque employe. Merci.
Cordialement
Hamid
Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Mise a jour d'une table/liaison spirlet 2 1,789 29-04-2015, 05:58 PM
Dernier message: spirlet
  Génération du pointage mensuel selon période compteabdou 16 3,904 22-07-2014, 02:55 PM
Dernier message: compteabdou
  Remplacer le 0,00 par une tiret ou mise a blanc table moradsoft 3 1,117 04-06-2013, 12:33 AM
Dernier message: moradsoft
  Besoin de pointage.rar de Samifred JayDev 2 1,417 13-04-2013, 02:18 PM
Dernier message: JayDev
  mise à jour d'un enregistrement à partir d'une autre table piogo113 19 11,178 15-05-2010, 08:22 PM
Dernier message: Patrice974
  Mise a Jour dans champs table hamid 7 2,618 16-05-2009, 12:32 PM
Dernier message: abelosoft

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)