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 :

Lire le pointage par numéro de la pointeuse


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut Lire le pointage par numéro de la pointeuse
    Bonjour tout le monde

    Je fais ce code afin de lister mes appareils de pointeuses (j'ai 2 pointeuses) dans une table mémoire et depuis de chaque machine je veux lire le pointage des employés comme suit

    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
     
    //Appareil 1
    SAI_AdresseIP=192.168.201
    SAI_port=4370
     
    //Appareil 2
    SAI_AdresseIP=192.168.250
    SAI_port=4370
     
    EstConnecté = zKemKeeper>>Connect_Net(SansEspace(SAI_AdresseIP),SansEspace(SAI_Port))
    SI EstConnecté = Vrai ALORS
    NuméroAppareil =zKemKeeper>>MachineNumber()
    zKemKeeper>>GetSerialNumber(SAI_NuméroAppareil,sSérie)
    Serie =SansEspace(sSérie)
     
    tableajouteligne(table,NuméroAppareil, Serie) 
    FIN
    Mais j'ai le meme numero de l'appareil
    Serie >>>> Appareil
    A2NC1818602458 >>>>> 4370
    A2NC1818602165 >>>> 4370

    Alors que 4370 est le numéro du port de la machine

    Merci de me donner une piste et pourquoi j'ai le même numéro comme celui de port

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Je ne vois aucune boucle dans ton code, il n'y a qu'une seule interrogation.
    Je ne vois donc pas comment tu arrives à avoir 2 lignes dans ta table.
    Ensuite tu affectes 2 valeurs différentes à SAI_AdresseIP, sans aucun code entre les deux. Donc la première affectation ne sert à rien.
    Au final j'ai bien l'impression que tu interroges 2 fois la même machine, donc il est normal que tu récupères 2 fois la même donnée.

    Tatayo.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Merci pour ton retour

    Mon problème c'est pas la boucle car ma table il affiche les 2 pointeuses (bien sur j'utilise la boucle)
    Pour l'affectation car j'ai 2 machines donc j'ai 2 adresses (les 2 adresses sont déjà enregistrées dans un fichier)

    Ma question comment je peux avoirs le numéro de chaque machine ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Si tu veux qu'on te dise ce qui ne va pas dans ton code, il faut nous montrer le vrai code.
    Celui que tu nous a fourni ne contient aucune boucle…

    Tatayo.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Si tu veux qu'on te dise ce qui ne va pas dans ton code, il faut nous montrer le vrai code.
    Celui que tu nous a fourni ne contient aucune boucle…

    Tatayo.

    D'une autre manière

    Je fais ce code afin de lister mes appareils de pointeuses (j'ai 2 pointeuses) dans une table mémoire qui sont déjà enregistrées dans un fichiers "POINTEUSES " au moment de la création.
    Actuellement je veux lire les employés de chaque machine.

    Les données du fichier POINTEUSES
    Appareil 1
    POINTEUSES.IP=192.168.1.201
    POINTEUSES.port=4370
    POINTEUSES.NumerAppareil =4370 //Meme numéro
    Appareil 2
    POINTEUSES.IP=192.168.1.250
    POINTEUSES.port=4370
    POINTEUSES.NumerAppareil =4370 //Meme numéro

    Mais j'ai un problème au moment de la création au niveau de numéro de la machine, il donne le même numéro aux 2 appareils comme cité ci dessous.
    Alors pour afficher les employés je dois baser sur le numéro

    Voila le code de la création des pointeuses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    EstConnecté = zKemKeeper>>Connect_Net(SansEspace(SAI_AdresseIP),SansEspace(SAI_Port))
    SI EstConnecté = Vrai ALORS
      NuméroAppareil =zKemKeeper>>MachineNumber()
      zKemKeeper>>GetSerialNumber(SAI_NuméroAppareil,sSérie)
      Serie =SansEspace(sSérie)
     
      POINTEUSES.IP                   =sai_IP
      POINTEUSES.port                =4370
      POINTEUSES.NumerAppareil =NuméroAppareil
      POINTEUSES.Serie               =Serie 
      hajoute(POINTEUSES)
    FIN
    Pourquoi j'ai le même numéro et comme celui de port ?

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Je viens de regarder une documantation sur cette librairie Zkemkeeper : http://digitalfarsi.com/files/22112014163844.pdf
    Il y a bien une méthode qui s'appelle GetSerialNumber().
    Mais je ne vois pas de méthode qui s'appelle MachineNumber().

    Je vois beaucoup une variable dwMachineNumber, mais en lecture rapide, je ne vois pas comment la récupérer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Au regard de tes infos, l'adresse IP doit être de format xxx.xxx.xxx.xxx (192.168.1.100 par exemple)
    et non xxx.xxx.xxx (192.168.1)
    Bon dev
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Je vois aussi que dans ton code tu utilises un coup NuméroAppareil, un coup SAI_NuméroAppareil.
    Idem pour SAI_AdresseIP et sai_IP.

    Tatayo.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je viens de regarder une documantation sur cette librairie Zkemkeeper : http://digitalfarsi.com/files/22112014163844.pdf
    Il y a bien une méthode qui s'appelle GetSerialNumber().
    Mais je ne vois pas de méthode qui s'appelle MachineNumber().

    Je vois beaucoup une variable dwMachineNumber, mais en lecture rapide, je ne vois pas comment la récupérer.

    Merci tcb pour ton retour

    La fonction MachineNumber() existe, alors que la fonction GetSerialNumber() affiche la serie de la machine

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par EDM-TAHITI Voir le message
    Hello,
    Au regard de tes infos, l'adresse IP doit être de format xxx.xxx.xxx.xxx (192.168.1.100 par exemple)
    et non xxx.xxx.xxx (192.168.1)
    Bon dev
    Merci EDM-TAHITI pour ton retour

    Un oubli c'est tout

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Je vois aussi que dans ton code tu utilises un coup NuméroAppareil, un coup SAI_NuméroAppareil.
    Idem pour SAI_AdresseIP et sai_IP.

    Tatayo.
    Merci pour ton retour

    Tout simplement je re-écrit mon code, c'est pour cela j'ai commis ces erreurs

    Mais tout cela ne sont pas l'origine de mon problème !

  12. #12
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EstConnecté = zKemKeeper>>Connect_Net(SansEspace(SAI_AdresseIP),SansEspace(SAI_Port))
    Il se pourrait que le port soit considéré comme chaine est non comme entier
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EstConnecté = zKemKeeper>>Connect_Net(SansEspace(SAI_AdresseIP),val(SansEspace(SAI_Port)))
    On ne sait jamais...
    Bon dev
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Tu dis que la fonction MachineNumber() existe. As-tu une documentation qui explique comment marche cette méthode ? Peux-tu partager un lien vers cette documentation ?

    La documentation, c'est quand même le pilier n°1 de la programmation. On peut essayer de deviner, c'est un jeu très amusant. Mais pas très efficace.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par Fmfib Voir le message
    Merci pour ton retour

    Tout simplement je re-écrit mon code, c'est pour cela j'ai commis ces erreurs

    Mais tout cela ne sont pas l'origine de mon problème !
    Dans ce cas montres-nous le VRAI code, celui qui pose problème.
    Cela nous évitera de chercher du mauvais côté…

    Tatayo.

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Tu dis que la fonction MachineNumber() existe. As-tu une documentation qui explique comment marche cette méthode ? Peux-tu partager un lien vers cette documentation ?

    La documentation, c'est quand même le pilier n°1 de la programmation. On peut essayer de deviner, c'est un jeu très amusant. Mais pas très efficace.

    Voila le lien que j'utilise :file:///C:/Users/lenovo/Desktop/Pointeuse/SDK%20NEW%20X100-C/SDK4/IFACE_SDK_Manual.pdf

  16. #16
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Le lien que tu donnes, il pointe vers ton PC. Tu imagines bien que si je tape le même lien, ça va me diriger vers mon PC, et comme je n'ai pas de répertoire C:/Users/lenovo/ sur mon PC, ça ne va rien donner.

    En cherchant zkemKeeper machinenumber sur le net, on trouve cette portion de code :

    Code Java : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
     
    /********************************************************************************************************************************************
     * Before you refer to this demo,we strongly suggest you read the development manual deeply first.                                           *
     * This part is for demonstrating the communication with your device.There are 3 communication ways: "TCP/IP","Serial Port" and "USB Client".*
     * The communication way which you can use duing to the model of the device.                                                                 *
     * *******************************************************************************************************************************************/
    #region Communication
    private bool bIsConnected = false;//the boolean value identifies whether the device is connected
    private int iMachineNumber = 1;//the serial number of the device.After connecting the device ,this value will be changed.
     
    //If your device supports the TCP/IP communications, you can refer to this.
    //when you are using the tcp/ip communication,you can distinguish different devices by their IP address.
    private void btnConnect_Click(object sender, EventArgs e, string ip)
    {
     
        if (ip == "")
        {
            MessageBox.Show("IP and Port cannot be null", "Error");
            return;
        }
        int idwErrorCode = 0;
     
        Cursor = Cursors.WaitCursor;
        if (btnConnect.Text == "DisConnect")
        {
            axCZKEM1.Disconnect();
            bIsConnected = false;
            btnConnect.Text = "Connect";
            lblState.Text = "Current State:DisConnected";
            Cursor = Cursors.Default;
            return;
        }
     
        bIsConnected = axCZKEM1.Connect_Net(ip, Convert.ToInt32(txtPort.Text));
        if (bIsConnected == true)
        {
            btnConnect.Text = "DisConnect";
            btnConnect.Refresh();
            lblState.Text = "Current State:Connected";
            iMachineNumber = 1;//In fact,when you are using the tcp/ip communication,this parameter will be ignored,that is any integer will all right.Here we use 1.
            axCZKEM1.RegEvent(iMachineNumber, 65535);//Here you can register the realtime events that you want to be triggered(the parameters 65535 means registering all)
        }
        else
        {
            axCZKEM1.GetLastError(ref idwErrorCode);
            MessageBox.Show("Unable to connect the device,ErrorCode=" + idwErrorCode.ToString(), "Error");
        }
        Cursor = Cursors.Default;
    }
     
    //Download the attendance records from the device(For both Black&White and TFT screen devices).
    private void btnGetGeneralLogData_Click(object sender, EventArgs e)
    {
        if (bIsConnected == false)
        {
            MessageBox.Show("Please connect the device first", "Error");
            return;
        }
     
        string sdwEnrollNumber = "";
        int idwTMachineNumber=0;
        int idwEMachineNumber=0;
        int idwVerifyMode=0;
        int idwInOutMode=0;
        int idwYear=0;
        int idwMonth=0;
        int idwDay=0;
        int idwHour=0;
        int idwMinute=0;
        int idwSecond = 0;
        int idwWorkcode = 0;
     
        int idwErrorCode=0;
        int iGLCount = 0;
        int iIndex = 0;
     
        Cursor = Cursors.WaitCursor;
        lvLogs.Items.Clear();
        axCZKEM1.EnableDevice(iMachineNumber, false);//disable the device
        if (axCZKEM1.ReadGeneralLogData(iMachineNumber))//read all the attendance records to the memory
     
        {
            while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out sdwEnrollNumber, out idwVerifyMode,
                       out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode))//get records from the memory
            {
                iGLCount++;
                lvLogs.Items.Add(iGLCount.ToString());
                lvLogs.Items[iIndex].SubItems.Add(sdwEnrollNumber);//modify by Darcy on Nov.26 2009
                lvLogs.Items[iIndex].SubItems.Add(idwVerifyMode.ToString());
                lvLogs.Items[iIndex].SubItems.Add(idwInOutMode.ToString());
                lvLogs.Items[iIndex].SubItems.Add(idwYear.ToString() + "-" + idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString());
                lvLogs.Items[iIndex].SubItems.Add(idwWorkcode.ToString());
                iIndex++;
            }
        }
        else
        {
            Cursor = Cursors.Default;
            axCZKEM1.GetLastError(ref idwErrorCode);
     
            if (idwErrorCode != 0)
            {
                MessageBox.Show("Reading data from terminal failed,ErrorCode: " + idwErrorCode.ToString(),"Error");
            }
            else
            {
                MessageBox.Show("No data from terminal returns!","Error");
            }
        }
        axCZKEM1.EnableDevice(iMachineNumber, true);//enable the device
        Cursor = Cursors.Default;
    }

    Le commentaire dit clairement que le MachineNumber n'est pas utilisé ...
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  17. #17
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40

Discussions similaires

  1. [MySQL] recherche par numéro de téléphone en PHP
    Par stomerfull dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/02/2007, 12h45
  2. Lire un fichier par la fin
    Par romaintaz dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 22/01/2007, 16h40
  3. Réponses: 6
    Dernier message: 16/12/2006, 15h08
  4. Sécuriser l'intallation d'une application par numéro de séri
    Par dadamovic dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 05/11/2005, 21h59
  5. Gestion de l'évolution de ma base par numéro de version
    Par jackfirst72 dans le forum Outils
    Réponses: 4
    Dernier message: 16/03/2005, 13h38

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