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 :

Code barre EAN 128


Sujet :

WinDev

  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut Code barre EAN 128
    Bonjour,

    j'aimerais pouvoir créer un code barre EAN 128 avec séparateur de champs à partir de 2 champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SAI_CODE_EAN = 3655800411934
    SAI_LOT = 0004150
    et je voudrais un code barre présenté de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (01)3655800411934(10)0004150
    Quelqu'un saurait comment faire ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Tu peux utiliser le champ code barre en le paramétrant en EAN 128

    Ensuite dans ton code tu mets

    ChampCodeBarres = "(01)" + SAI_CODE_EAN + (10) + SAI_LOT.

    Mais tout ceci est expliquer dans l'aide à la rubrique code barres

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    Merci pour ta réponse.

    Par contre, le code EAN 128 avec séparateur est lié une norme très précsie, en utilisant ta méthode, le code barre généré ne correspond pas à la norme.

    Il doit y avoir une autre manière de faire.

  4. #4
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Ok je ne savais pas.

    Voici un lien vers la norme EAN128
    si ça peut t'aider.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    Merci mais je connais les contraintes d'un code barre UCC/EAN 128, c'est d'ailleurs pour ça qu eje demande de l'aide, je n'ai rien trouvé dans l'aide de Windev concernant les "AI".

    Finalement, est-ce qu'on peut créer un code barre de ce genre dans Windev ?

  6. #6
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonsoir,

    En effet, il est tout à fait possible de programmer via Windev.
    J'ai déjà développer ce type de code barre et cela fonctionne parfaitement.

    Auriez vous commencé à coder, de la sorte je me propose de vous aider

    Bonne fin d'après midi
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    Bonsoir Raptor92,

    j'accepte volontié votre aide.

    tout le problème, c'est que je ne sais pas quelle syntaxe utiliser pour coder.

    Ce que je souhaite c'est créer un véritable code barre type UCC/EAN 128 avec les contraintes connues comme par exemple :

    (AI) + code EAN produit + séparateur de champs (10) + numéro de lot

  8. #8
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonsoir,

    L'explication ne se fait pas en deux lignes, je vous prépare cela et reviens vers vous demain

    Bonne soirée
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    tout est dans la doc : http://doc.pcsoft.fr/fr-FR/?3046064&product=WB
    Le séparateur dont tu parle s'appelle FNC1

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    Je l'avais déjà lu aussi mais il y a une partie que je ne comprends bien :

    l'exemple : (01)93067280205495(3103)018750

    Avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iAperçu(i100)
    iImprimeCodeBarre("01<FNC1>93067280205495<FNC1>3103018750", ...
    CB_EAN128, 20, 20, 90, 90, CB_CaractèresContrôle)
    iFinImprime
    Je comprends bien <FNC1> après le 01 pour jouer le rôle du séparateur mais ensuite pour la 2e partie, il y en a un autre <FNC1> pour interprêter les 4 chiffres suivant (3103).

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Par défaut
    Je viens de tester l'exemple et la position des FNC1 me turlupine quelque peu!
    J'ai fais le test ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    iAperçu(i100)
    iImprimeCodeBarre("(01)93067280205495(3103)018750(37)10<FNC1>", ...
    CB_EAN128, 20, 20, 90, 90, CB_CaractèresContrôle+CB_Texte+CB_IgnoreFormatage)
    iFinImprime
    J'ai quasiment le résultat escompté sauf que le <FNC1> apparait dans le libellé dessous le code. Sinon le résultat à l'air bon.

  12. #12
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour,

    Désolé pour le retard, je crois ne pas avoir bien compris, avez vous un problème d'impression ouun problème de génération automatique du code barre ?
    Bonne après midi
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  13. #13
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    Mon problème se situe sur la génération d'un bon code barre EAN 128.

    A partir d'un logiciel spécialisé dans les codes barres, j'ai édité celui dont j'ai besoin et j'essaye d'obtenir le même sous windev.

    Une fois que j'aurais obtenu les bons paramètres, ensuite, je pourrais générer tous les codes barres dont j'ai besoin en fonction du code EAN du produit et du numéro de lot.

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Citation Envoyé par windsor Voir le message
    A partir d'un logiciel spécialisé dans les codes barres, j'ai édité celui dont j'ai besoin et j'essaye d'obtenir le même sous windev.
    La solution à ton problème devrait être dans le code ci-dessous :

    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
     
    sGTIN   		 est une chaîne = "01234567890123"
    sCodeproduit 	est une chaîne = "MONCODEPRODUIT"
    sMonCodeBarre	est une chaîne = ""
    sLot 			est une chaîne = "0123456789"
    sMonLibelle		est une chaîne = ""
    nQté 			est un entier = 150
     
    sMonCodeBarre = "02" + sGTIN + "37" + nQté + Caract(29) ...
    				+ "241" + sCodeproduit + Caract(29) ...
    				+ "10" + sLot
     
    sMonLibelle		= "(02)" + sGTIN + "(37)" + nQté ...
    				+ "(241)" + sCodeproduit + "(10)" + sLot
     
    iAperçu(i100)
    iImprimeCodeBarre ( sMonCodeBarre, CB_EAN128, 0, 0, 180 ,30 )
    iPosY ( iPosY() + 30 )
    iImprime ( sMonLibelle )
    iFinImprime
    je te laisse étudier cela en sachant que certaines données ont une longueur fixe (sGTIN par exemple) et d'autres non (nQté), qui elles nécessitent de positionner un indicateur de fin de données. Une exception cependant pour la dernière donnée, qui même si elle est variable, ne doit pas avoir l'indicateur.

    Attention aussi, ce code barre contient un peu trop d'informations (ou est trop grand) et sera difficilement lisible. Il serait donc préférable de le scinder en deux ou de le rétrécir.

  15. #15
    Membre chevronné
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    Juin 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : Juin 2009
    Messages : 221
    Par défaut
    Citation Envoyé par fucce Voir le message
    Je viens de tester l'exemple et la position des FNC1 me turlupine quelque peu!
    J'ai fais le test ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    iAperçu(i100)
    iImprimeCodeBarre("(01)93067280205495(3103)018750(37)10<FNC1>", ...
    CB_EAN128, 20, 20, 90, 90, CB_CaractèresContrôle+CB_Texte+CB_IgnoreFormatage)
    iFinImprime
    J'ai quasiment le résultat escompté sauf que le <FNC1> apparait dans le libellé dessous le code. Sinon le résultat à l'air bon.
    C'est très bien je trouve et cela correspond bien à la description de l'EAN128 qui est très complète sur wikipédia.

    Je traduis le code EAN128 :
    Code EAN13 de la pallette ou du carton : 93067280205495
    Poids net avec 3 décimales : 018750 (18,750 donc)
    Nombre de colis dans la palette ou le colis : 10
    FNC1 n'a rien à faire là je pense.
    si on trouve (37), la chaine doit commencer par (02) et non pas (01) (d'après wiki)

    Je ne comprend pas la présence de <FNC1> dans le code car l'option CB_CaractèresContrôle s'occupe de cela.

    On y est presque.

  16. #16
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonsoir,

    Décidément, désolé pour le retard...

    Si on considère que chaque type de code barre est créé selon le même principe mais avec pour chacun ses propres caractéristiques, je vous joins un bout de code fonctionnel et servant à créer un code barre de type EAN13.

    En tenant compte de spécifiés pour un code barre de type AEN128, vous obtiendrez votre code pour ce type (à noter que j'ai déjà créé un AEN128 en partant de ce code et que cela fonctionne)

    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
    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
    //- Déclaration des variables
    
    sVariable_EAN est une chaîne
    prefixe_AEN est une chaîne
    nouveauCode_AEN est une chaîne
    Cle est une chaîne
    nTotal est un entier
    
    // -- On recherche le dernier codebarre existant
    
    
    Requete est une chaîne="SELECT MAX(ART_CODEBARRE) FROM ARTICLES " 
    		SI SQLExec(Requete, "REQ1") ALORS
    		SI SQLAvance("REQ1")=0 ALORS
    		sVariable_EAN=SQLLitCol("REQ1", 1)
    
    // -- ON EXTRAIT LES 12 PREMIERS CHIFFRES
    
    SI EnModeTest() ALORS Trace("TRACE N°5- Extraction de AEN13-", Gauche(sVariable_EAN,12))
    							prefixe_AEN=Gauche(sVariable_EAN,12)
    						
    // -- ON AJOUTE 1
    
    							prefixe_AEN=NumériqueVersChaîne(Val(prefixe_AEN)+1,"012d")
    	FIN
    	SINON
    	SQLInfoGene("REQ1")
    	Trace("Erreur SQL R1 : ", SQL.MesErreur)
    	FIN
    					
    SQLFerme("REQ1")
    					
    //calcul du caractère de contrôle
    
    // -- ON GENERENT LA CLE DE CONTROLE D'UN CODE BARRE DE TYPE EAN13
    
    POUR ii = 1 A Taille(prefixe_AEN)        
    //Code est les 12 premiers caractères du code barre
    SI EstPair(ii) ALORS
    nTotal+=Val(prefixe_AEN[[ii]])*3
    SINON
    nTotal+=Val(prefixe_AEN[[ii]])
    FIN
    FIN 
    Cle = ((PartieEntière(nTotal/10)+1)*10)-nTotal
    SI Cle = 10 ALORS
    Cle = 0
    FIN
    
    // -- ON OBTIENS LE NOUVEAU CODE BARRE
    	
    
    				
    nouveauCode_AEN=prefixe_AEN + Cle
    En espérant que cela vous permettra d'avancer.
    Bonne fin de journée
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


Discussions similaires

  1. Générer des codes barre EAN-13
    Par nico62370 dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/06/2014, 10h17
  2. Lire un code-barre EAN-128
    Par Enthau dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/05/2013, 16h21
  3. [AC-2003] Code barre / EAN
    Par Shakallica dans le forum Access
    Réponses: 9
    Dernier message: 25/04/2013, 11h14
  4. [WD14] Code bare EAN 128
    Par windsor dans le forum WinDev
    Réponses: 3
    Dernier message: 12/04/2011, 16h41

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