Gestion des pointeuses en temps réel [Résolu]

omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 28 juil. 2011 à 10:33 - Dernière réponse : 4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention
- 8 août 2011 à 14:03
bonjour,
J'effectue dans cette période un stage qui consiste à la manipulation des pointeuses de la société dans le cadre de la gestion du contrôle d'accès et le suivi de présence des collaborateurs.Il me semble que plein ont travaillé sur ce thème pendant que j'ai cherché dans le forum donc je compte vraiment avoir une réponse.
Au début je suis arrivé à me connecter à la pointeuse et récupérer certaines données via la méthode GetGeneralLogData mais le problème que j'arrive pas à extraire d'autre infos très nécessaire pour mon travail à savoir : le numéro de la badge et le nom de l'employé qui a pointé ainsi son ID.
Mais dans tout ça la vrai problématique qui m'est confié consiste à comment stocker ces données récupérées dans la base et surtout surtout comment faire un traitement instantané c'est à dire dès qu'un pointage se fait ce dernier s'enregistre directement dans la base sans avoir cliquer sur un bouton ou exécuter de nouveau mon programme.
Merci.
Afficher la suite 

Votre réponse

31 réponses

Meilleure réponse
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 2 août 2011 à 10:45
3
Merci
VB6 ou VB.net même C++ Borland. Le principe reste le même. Tu dois ajouter l'objet timer à ta former. Mettre un valeur à interval et Enabled à true.Fair un double clique pour arrivé au code comme celui ci-dessous
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Enabled = False
        (ton code)
        (ton code)
        (ton code)
        Timer1.Enabled = True
    End Sub

Merci 4u4me4us 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de 4u4me4us
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 28 juil. 2011 à 14:26
0
Merci
Trop d'information tue l'information

Plus sérieusement tu ne donne pas les bon élément et quand tu dis "Il me semble que plein ont travaillé sur ce thème pendant que j'ai cherché dans le forum donc je compte vraiment avoir une réponse" excuse moi mais

Bref.
De qu'elle type de pointeuse s'agit-il ?
Il faut que tu affiche le code qui te permet déjà d'avoir des info.
Avec qu'elle langage codes-tu ?

Qu'elle basse de donnée utilise tu ?
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 28 juil. 2011 à 14:56
0
Merci
oui tu as raison j'ai parlé au premier degré et vraiment ça n'était pas précis.
concernant ce que j'ai développé jusqu'à maintenant est en vb et le voilà:
CZKEM1.Connect_Net("10.101.10.214", 4370)
Dim vMachineNumber As Long, vTMachineNumber(0) As Long
Dim vEnrollNumber(0) As Long, vEMachineNumber(0) As Long
Dim vVerifyMode(0) As Long
Dim vInOutMode(0) As Long
Dim vYear(0) As Long, vMonth(0) As Long, vDay(0) As Long
Dim vHour(0) As Long, vMinute(0) As Long
Dim bRet As Boolean
vMachineNumber = 1
bRet = CZKEM1.ReadGeneralLogData(1)
If bRet = False Then
Exit Sub
Else
While (CZKEM1.GetGeneralLogData(1, vTMachineNumber(0), vEnrollNumber(0), _vEMachineNumber(0), vVerifyMode(0), vInOutMode(0),vYear(0), vMonth(0), _vDay(0), vHour(0), vMinute(0)) = True)
ListBox1.Items.Add(i & ") " & CStr(vYear(0)) & " - " & Format(vMonth(0), "00") & " - " & Format(vDay(0), "00") _
'& " " & Format(vHour(0), "00") & ":" & Format(vMinute(0), "00") & "Pass Machine Number " & CStr(vTMachineNumber(0)) & ("Enroll Number " & CStr(vEnrollNumber(0))) & "E-Machine Number = " & CStr(vEMachineNumber(0)) & "Verify Mode = " & CStr(vVerifyMode(0)))
End While
cela m'a permis de me connecter à la pointeuse qui est la SCR 100
et extraire les données relatives aux dates de pointages , les matricules des employés et je les mets dans une listeBox; chaque ligne contient un pointage.
alors j'ai pas su extraire le nom et prénom de l'employé et le numéro de la carte ça d'une part, d'autre part concernant la base de données j'ai rien conçu pour le moment, je veux avoir des conseils là dessus.
à propos le traitement instantané, maintenant lors de l'exécution du programme la listeBox contiendra tout les pointages fait jusqu'au moment de l'exécution, une fois quelqu'un pointe après ça ne s'affichera pas qu'à après une nouvelle exécution donc je veux savoir comment procéder pour aboutir à ce résultat désire
j'espère que j'ai quand même éclairci le sujet
Merci
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 28 juil. 2011 à 15:34
0
Merci
C déjà plus claire.

Quand tu poste du code utilise le menu du troisième bouton depuis la droite. Cela rendra le code plus lisible.

On va commencer par le traitement instantané?
Tu dis "maintenant lors de l'exécution du programme la listeBox contiendra tout les pointages fait jusqu'au moment de l'exécution, une fois quelqu'un pointe après ça ne s'affichera pas qu'à après une nouvelle exécution donc je veux savoir comment procéder pour aboutir à ce résultat désire "

Je comprends pas trop. Explique toi avec peux de mots stp. En est au claire sur le fait que ton application tournera sans stop ?
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 28 juil. 2011 à 15:43
0
Merci
exactement l'application doit tourner sans stop c'est à dire chaque pointage doit s'enregistrer automatiquement dans la base, il ne faut pas attendre jusqu'à ce qu'on fait un traitement
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 28 juil. 2011 à 15:57
0
Merci
Ok! Comme je ne connais pas le pointeuse (je cherche des info sur le net) et que après tout c ton projet

Cherche si l'objet CZKEM1 a l’événement change (ou un nom du style) Si oui il faut que tu place le code que ta a poster dans cette événement sans la boucle while. comme cela le code va automatique gérer l'état de le pointeuse et cela constamment. Si non alors il faut mettre le code derrière un timer et changer le while par un if.
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 28 juil. 2011 à 16:12
0
Merci
je serais très reconnaissant si tu m'expliques davantage (je sais que c'est chiant mais pitié )
surtout " Cherche si l'objet CZKEM1 a l’événement change (ou un nom du style) Si oui il faut que tu place le code que ta a poster dans cette événement "
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 28 juil. 2011 à 16:27
0
Merci
Non c pas du tout chiant! De plus je constate

Tout d'abord peux-tu poster la déclaration de l'objet CZKEM1. Car je en le connais pas. Et je voudrais savoir si c un objet de la pointeuse ou un objet web.
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 28 juil. 2011 à 17:03
0
Merci
je m'excuse pour le retard de mes réponses car ma connexion est vraiment merdique.
Concernant l'objet CZKEM1 c'est un composant COM qui à travers lui la communication est assurée avec la pointeuse
http://www.clepsyd.fr/index.php?option=com_content&view=article&id=82%3Asdk-prise-en-main-rapide&catid=45%3Adocumentation-technique&Itemid=95&tmpl=component&type=raw
ce lien explique brièvement tout
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 28 juil. 2011 à 17:42
0
Merci
Bon dans le but d’avancer (je part a 18:00) je v modifier ton code pour q'il fonctionne via un timer. Ce qui est une bonne solution mais pas la meilleur. Je pense que tu devrais te renseigner sur le net au sujet des événements.

Il faut bien sure que tu ajoute u timer à ton projet
Private Sub Timer1_Timer()
  Dim vMachineNumber As Long
  Dim TMachineNumber(0) As Long
  Dim vEnrollNumber(0) As Long
  dim vEMachineNumber(0) As Long
  Dim vVerifyMode(0) As Long
  Dim vInOutMode(0) As Long
  Dim vYear(0) As Long
  Dim vMonth(0) As Long
  Dim vDay(0) As Long
  Dim vHour(0) As Long
  Dim vMinute(0) As Long
  Dim bRet As Boolean
  CZKEM1.Connect_Net("10.101.10.214", 4370)
  vMachineNumber = 1
  bRet = CZKEM1.ReadGeneralLogData(1)
  If bRet = False Then
    Exit Sub
  Else
IF(CZKEM1.GetGeneralLogData(1,vTMachineNumber(0),vEnrollNumber(0),_vEMachineNumber(0),vVerifyMode(0),vInOutMode(0),vYear(0),vMonth(0),_vDay(0), vHour(0), vMinute(0))) then
  ListBox1.Items.Add(i & ") " & Str(vYear(0)) & " - " & Format(vMonth(0), "00") & " - " & Format(vDay(0), "00") _
'& " " & Format(vHour(0), "00") & ":" & Format(vMinute(0), "00") & "Pass Machine Number " & CStr(vTMachineNumber(0)) & ("Enroll Number " & CStr(vEnrollNumber(0))) & "E-Machine Number = " & CStr(vEMachineNumber(0)) & "Verify Mode = " & CStr(vVerifyMode(0)))
End if 

Fais un timer de 500ms je pese que cela devrais fonctionné.

Aussi je te conseille de faire les modif. sur une copie au cas ou j supprimer une lettre des tes variables ou un truc du style.
Commenter la réponse de 4u4me4us
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 10:12
0
Merci
Tu en es oû
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 29 juil. 2011 à 10:20
0
Merci
je m'excuse de n'avoir pas répondu hier car je suis parti , je reprend maintenant.
je gère pas encore la situation,il faut que je me familiarise avec le timer que tu m'a dit d'utiliser en plus j'ai rien encore fait au niveau de la base de données
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 13:20
0
Merci
Sorry de te répondre aussi tard mais j'avais des tâches qui me demandaient du temps.

Donc tu te familarise avec le timer c bein! Comprends que a la diférence de ton while que s'arrete un fois que les conditions sont remplies le timer va touner infiniment.

Tu parles de la base de donnée. Je pense qu'il faut faire une chose après l'autre. Un fois que tu metriseras la pointeuse et ta liste box tu sera plus serain pour la base de donnée.

Mais si tu vois les choses autrements dis le moi c ton projet.
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 29 juil. 2011 à 13:47
0
Merci
est ce que tu peux m'aider à comment je vais recourir au timer car tout ce que j'ai trouvé ne m'a pas servi pour mon cas. J'ai pas su implémenter
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 14:48
0
Merci
Ok! Le code que tu avais était dans un boucle. Ce qui fesait que au ton code s'arréter tout seul?

Avec l'objet timer (icone horloge) tout le code que tu mets dedans sera refait tout les x seconde et sans fin.

1) Il faut que tu place l'objet dans ta form.
2) Dans les propriéter de l'objet il faut que tu met une valeur au champ interval (qui est à 0 par défaut) cette valeur est en mili seconde.
3) il faut que tu façes un double clique sur l'ojet pour ariver à la parite code
4) Il faut que tu colle le code que tu as dans la partie code de l'objet
5) il faut que tu change ton while par un IF

Dis moi si je suis pas claire
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 29 juil. 2011 à 15:01
0
Merci
alors j'ai fait ce que t'as dit j'ai intégré le timer et j'ai placé mon code dans la partie code après un double clic sur l'objet mais en executant j'ai rien obtenu.Il me semble qu'il ne faut pas placer le code dans Timer1_Tick il faut ajouter un bouton ou un truc comme ça
alors comment ça marche ?
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 15:06
0
Merci
"Timer1_Tick" Je pensais que le double clique te ménerais dans Timer1_Timer().

Suprimer tout ce que tu as dans Timer1_Tick et tape à la main
Private Sub Timer1_Timer()
'...tont code
'...ton code
'etc.
end sub
Commenter la réponse de 4u4me4us
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 15:08
0
Merci
Tu dis " ajouter un bouton ou un truc comme ça" pas besion avec un timer doux tout l'intéret
Commenter la réponse de 4u4me4us
omar235689 32 Messages postés vendredi 6 août 2010Date d'inscription 17 avril 2012 Dernière intervention - 29 juil. 2011 à 15:14
0
Merci
même avec Timer1_Timer() rien n'arrive, en fait je pense que c'est logique ça ne requiert pas un bouton pour déclencher l'opération, un événement de déclenchement quoi.N'est ce pas ?
Commenter la réponse de omar235689
4u4me4us 781 Messages postés lundi 22 janvier 2007Date d'inscription 30 octobre 2013 Dernière intervention - 29 juil. 2011 à 15:24
0
Merci
Exactement

Retourne dans ton timer1_timer()
Dans la marge grise tout a gauche tu fais un clique au niveau d'une des premières ligne de code ( Pas une déclaration de varible mais une ligne de code). Là un bande rouge va apparaitre.

Lance le code. attend. le code va automatiquement ce stoper au niveau de la ligne rouge. ensuite en tapant sur la touche F8 pour pouras poursuivre ton code en pas à pas.
Commenter la réponse de 4u4me4us

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.