1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

TUTO Générer des codes EAN13

Discussion dans 'Windev' créé par suenodesign, Fev 9, 2018.

  1. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    462
    J'aime reçus:
    665
    Générer des codes EAN13

    Bonjour tout le monde,

    Aujourd'hui je viens vous proposer une méthode qui vous permettra de générer des codes à barres de type EAN13

    servant à identifier des produits par exemple.

    Vous pouvez passer le code généré à un champ Code-barres EAN13 et le tour est joué.

    Bien à vous chers amis
    [​IMG]

    Code (Windev):
    PROCEDURE My_Modulo10(sCode)

    nModulo est un entier = 0
    nLg est un entier =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sCode)
    POUR i=1 A nLg
        SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (nLg-i+2) ALORS
            nModulo +=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sCode[[i]])*3
        SINON
            nModulo+=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sCode[[i]])
        FIN
    FIN

    SI modulo(nModulo,10)=0 ALORS
        RENVOYER 0
    FIN
    //trace(10-modulo(nModulo,10))
    RENVOYER 10-modulo(nModulo,10)


    Utilisation
    ------------------------------------------------------------------------------------------------------------------
    sEAN_Auto est une chaîne=DateSys()+HeureVersChaîne(HeureSys(), "HHMMSS")
    sEAN_Auto=sEAN_Auto[[3 A 14]]
    Champ_Codes_Barres=sEAN_Auto+My_Modulo10(sEAN_Auto)

     
    #1 suenodesign, Fev 9, 2018
    Dernière édition: Jan 20, 2019
  2. elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    281
    J'aime reçus:
    144
    merci pour le programme , mais j'ai juste une remaque : c'est quand je clic plusieur fois vite le codbare ce répéte par fois je pense que c'est a cause du temps

    donc si on utilise une boucle pour codifier tous les articles a la fois en risque de tombé sur des doublon !

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    1,451
    J'aime reçus:
    834
    Salut

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    tu peux vérifier si la valeur existe déjà dans la table avant le ajoute table pour éviter les doublons et mettre une temporisation.
    regarde cette discussion

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    elhacene apprécie ceci.
  4. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    462
    J'aime reçus:
    665

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    merci pour le programme , mais j'ai juste une remaque : c'est quand je clic plusieur fois vite le codbare ce répéte par fois je pense que c'est a cause du temps

    donc si on utilise une boucle pour codifier tous les articles a la fois en risque de tombé sur des doublon !

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    Pour minimiser au maximum le risque d'avoir des codes à barres en double voilà ce que je fais :

    Code (Windev):
    MoiMême..Etat=Grisé // On grise le bouton pour éviter le double clique
    sHeure est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),"HHMMSSCC")
    sCB est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    [[3 A 4]]+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),Vrai),"03d")+sHeure[[1 A

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sHeure)-1]]
    sEAN13_Auto est une chaîne=sCB+My_Modulo10(sCB)
    MoiMême..Etat=Actif // On réactive le bouton
    Champ_CodeBarres1=sCB
    Important :
    sEAN13_Auto est le code à barres à sauvegarder sur la base

    ------------------------------------------------------------------------------------------------------------------------------
    DateVersChaîne (FONCTION)
    Formate une date au format spécifié.
    • ListeAjoute date spécifiée au format spécifié.
    • WinDevWebDev - Code ServeurWinDev MobileEtats ET RequêtesWindows MobileWindows Store appsiPhone/iPadPHP la date heure spécifiée au format spécifié.
    Ex : DateVersChaîne(DateSys(),"AA") OU DateSys[[3 A 4]] --> "19"

    DateVersEntier (FONCTION)
    Transforme une date en un entier. Cet entier correspond :
    • soit au nombre de jours écoulés entre le 1er janvier 1800 ET la date spécifiée.
    • soit au nombre de jours écoulés entre le 1er janvier de la date spécifiée ET la date spécifiée.
    Ex : DateVersEntier(DateSys(),Vrai) --> "20190121" >> "21" (21ème jour de l'année)

    HeureVersChaîne (FONCTION)
    Formate l'heure passée en paramètre SELON le format spécifié.
    Ex : HeureVersChaîne(HeureSys(),"HHMMSSCC") --> Nous sert l'heure système au centième près
    ------------------------------------------------------------------------------------------------------------------------------

    L'adjonction de ces trois fonctions nous permet d'obtenir une chaîne A 12 caractères A laquelle on Ajoute le chiffre de contrôle de l'EAN13 ET le tour est joué.

    Une autre astuce :
    Je me suffit de générer un seul code [sCB] à douze chiffres et j'initie une boucle pour parcourir toutes les lignes de la table des produits et j'incrémente ce [sCB] à chaque itération tout en lui ajoutant le chiffre de contrôle par la fonction My_Modulo10(sCB)

    Code (Windev):
    sHeure est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),"HHMMSSCC")
    sCB est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    [[3 A 4]]+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),Vrai),"03d")+sHeure[[1 A

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sHeure)-1]]
    sEAN13_Auto est une chaîne=sCB+My_Modulo10(sCB)
    nPRD_EAN est un entier=sCB
    POUR i=1 _A_ Table1..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


        nPRD_EAN+=i
        sEAN13_Auto=nPRD_EAN+My_Modulo10(nPRD_EAN)
    FIN
    Comme ça je n'ai pas à faire le traitement sur la date est l'heure pour chaque produit. ;)

    N.B :
    - On parle là de la génération des codes à barres de type EAN13
    - Le code fourni est fait en
    WD20 pour faire profiter tout le monde. :)

    Remarque :
    Dans ton code ici :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Tu fais appel aux fonctions Val et Hasard qui présentent toutes les deux des imperfections qui risquent de fausser les résultats.
     
    #4 suenodesign, Jan 21, 2019
    Dernière édition: Jan 21, 2019
    elhacene et michel aiment ça.
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    281
    J'aime reçus:
    144

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Héllo @Tous :)

    Une question à 10 Francs :
    - pourquoi ne pas mettre la rubrique des codes barres en "clé sans doublon" ?

    Il suffirait ensuite de refaire un codebarre si on a un doublon à l'enregistrement de celui-ci ;)
    Cliquez pour agrandir...
    ok si on mis le code barre on clé unique on va avoir un gros problem erreur d'intégrité car le stock est saisie en avance sans code barre et certain article ne possède pas de code barre donc impossible ajouter des article sans saisie obligatoirement un codbare,
    mais le problème qui reste c'est ou va tu trouvé les frans vu qu'on a passé en euro:happyblush:p

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Pour minimiser au maximum le risque d'avoir des codes à barres en double voilà ce que je fais :

    Code (Windev):
    MoiMême..Etat=Grisé // On grise le bouton pour éviter le double clique
    sHeure est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),"HHMMSSCC")
    sCB est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    [[3 A 4]]+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),Vrai),"03d")+sHeure[[1 A

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sHeure)-1]]
    sEAN13_Auto est une chaîne=sCB+My_Modulo10(sCB)
    MoiMême..Etat=Actif // On réactive le bouton
    Champ_CodeBarres1=sCB
    Important :
    sEAN13_Auto est le code à barres à sauvegarder sur la base

    ------------------------------------------------------------------------------------------------------------------------------
    DateVersChaîne (FONCTION)
    Formate une date au format spécifié.
    • ListeAjoute date spécifiée au format spécifié.
    • WinDevWebDev - Code ServeurWinDev MobileEtats ET RequêtesWindows MobileWindows Store appsiPhone/iPadPHP la date heure spécifiée au format spécifié.
    Ex : DateVersChaîne(DateSys(),"AA") OU DateSys[[3 A 4]] --> "19"

    DateVersEntier (FONCTION)
    Transforme une date en un entier. Cet entier correspond :
    • soit au nombre de jours écoulés entre le 1er janvier 1800 ET la date spécifiée.
    • soit au nombre de jours écoulés entre le 1er janvier de la date spécifiée ET la date spécifiée.
    Ex : DateVersEntier(DateSys(),Vrai) --> "20190121" >> "21" (21ème jour de l'année)

    HeureVersChaîne (FONCTION)
    Formate l'heure passée en paramètre SELON le format spécifié.
    Ex : HeureVersChaîne(HeureSys(),"HHMMSSCC") --> Nous sert l'heure système au centième près
    ------------------------------------------------------------------------------------------------------------------------------

    L'adjonction de ces trois fonctions nous permet d'obtenir une chaîne A 12 caractères A laquelle on Ajoute le chiffre de contrôle de l'EAN13 ET le tour est joué.

    Une autre astuce :
    Je me suffit de générer un seul code [sCB] à douze chiffres et j'initie une boucle pour parcourir toutes les lignes de la table des produits et j'incrémente ce [sCB] à chaque itération tout en lui ajoutant le chiffre de contrôle par la fonction My_Modulo10(sCB)

    Code (Windev):
    sHeure est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),"HHMMSSCC")
    sCB est une chaîne=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    [[3 A 4]]+

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (),Vrai),"03d")+sHeure[[1 A

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sHeure)-1]]
    sEAN13_Auto est une chaîne=sCB+My_Modulo10(sCB)
    nPRD_EAN est un entier=sCB
    POUR i=1 _A_ Table1..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


        nPRD_EAN+=i
        sEAN13_Auto=nPRD_EAN+My_Modulo10(nPRD_EAN)
    FIN
    Comme ça je n'ai pas à faire le traitement sur la date est l'heure pour chaque produit. ;)

    N.B :
    - On parle là de la génération des codes à barres de type EAN13
    - Le code fourni est fait en
    WD20 pour faire profiter tout le monde. :)

    Remarque :
    Dans ton code ici :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Tu fais appel aux fonctions Val et Hasard qui présentent tous deux des imperfections qui risquent de fausser les résultats.
    Cliquez pour agrandir...
    oui ta raison apropos de Val et hasard, c'est pour sa que j'ai crée la requete et le controle de taile afin de remidier et d'evité de parcourir le fichier article directement
     
    #5 elhacene, Jan 21, 2019
    Dernière édition par un modérateur: Jan 21, 2019
    WX1331 et joker aiment ça.
  • Partager cette page

    Chargement...