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

SAP Crystal Reports Discussion :

Encodage tabulation horizontal dans un code 128


Sujet :

SAP Crystal Reports

  1. #1
    Membre averti
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Par d�faut Encodage tabulation horizontal dans un code 128
    Bonjour � toutes et � tous,

    Je cherche maintenant depuis plusieurs jours � int�grer le caract�re tabulation d'en un code barre 128 g�n�r� depuis crystal report sans succ�s.
    J'ai essay� avec les chr(9), chr(09), chr(105) mais sans succ�s. en fait des que j'incorpore le chr dans la formule le code barre ne s'affiche pas.
    Ci-dessous le code que j'avais r�cup�r� sur le grand zebu je crois pour construire mon code 128.

    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
    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
    114
    115
    116
    117
    118
    // V 2.0.0
    // Paramètres : une chaine : remplacer {TEXTE_A_CODER} par la chaîne voulue
    // Retour : * une chaine qui, affichée avec la police CODE128.TTF, donne le code barre
    //          * une chaine vide si paramètre fourni incorrect
    // Déclaration des variables
    Local StringVar code128 := '';
    Local StringVar chaine :="V"+chr(9)+"O";
    Local NumberVar index;
    Local NumberVar cleControle;
    Local NumberVar minIndex;
    Local NumberVar dummy;
    Local BooleanVar tableB := True;
    Local NumberVar longChaine := Length (chaine);
     
    If longChaine > 0 Then
    (
          // Vérifier si caractères valides
          For index := 1 To longChaine Do
          (
                // Condition Case OK en VB = impossible en Crystal, remplacée un If
                If Not (AscW (Mid (chaine, index, 1)) In [32 To 126]) Then
                      (index := 0; Exit For)
          );
     
          code128 :='';
          If index > 0 Then
          (
                index := 1; // index devient l'index sur la chaîne
                While index <= longChaine Do
                (
                      If tableB = True Then
                      (
                            // Voir si intéressant de passer en table C
                            // Oui pour 4 chiffres au début ou à la fin, sinon pour 6 chiffres
                            minIndex := IIf (index = 1 Or index + 3 = longChaine, 4, 6);
                            // Pas de GoTo, donc on duplique testnum:
                            minIndex := minIndex - 1;
                            If (index + minIndex) <= longChaine Then
                            (
                                 While minIndex >= 0 Do
                                 (
                                       If AscW (Mid (chaine, (index + minIndex), 1)) < 48 Or AscW (Mid (chaine, (index + minIndex), 1)) > 57 Then Exit While;
                                       minIndex := minIndex - 1
                                 )
                            );
                            // Fin de testnum
                            If minIndex < 0 Then // Choix table C
                            (
                                 If index = 1 Then // Débuter sur table C
                                 (
                                       code128 := ChrW (210); 
                                       tableB := False;
                                 )
                                 Else // Commuter sur table C
                                 (
                                       code128 := code128 + ChrW(204); 
                                       tableB := False;
                                 )
                            )
                            Else   
                                 If index = 1 Then 
                                 (
                                       code128 := ChrW (209);
                                       tableB := True;
     
                                 ); // Débuter sur table B
                      );
                      If tableB = False Then
                      (
                            // On est sur la table C, essayer de traiter 2 chiffres
                            minIndex := 2;
                            // Pas de GoTo, donc on duplique testnum:
                            minIndex := minIndex - 1;
                            If (index + minIndex) <= longChaine Then
                            (
                                 While minIndex >= 0 Do
                                 (
                                       If AscW (Mid (chaine, (index + minIndex), 1)) < 48 Or AscW (Mid (chaine, (index + minIndex), 1)) > 57 Then Exit While;
                                       minIndex := minIndex - 1
                                 )
                            );
                            // Fin de testnum
                            If minIndex < 0 Then // OK pour 2 chiffres, les traiter
                            (
                                 dummy := Val (Mid (chaine, index, 2));
                                 dummy := IIf (dummy < 95, dummy + 32, dummy + 105);
                                 code128 := code128 + ChrW (dummy);
                                 index := index + 2;
                                 tableB := False
                            )
                            Else // On n'a pas 2 chiffres, rapasser en table B
                            (
                                 dummy := dummy;
                                 code128 := code128 + ChrW (205);
                                 index := index;
                                 tableB := True);
                      );
                      If tableB = True Then
                            // traiter 1 caractère en table B
                      (
                            code128 := code128 + Mid (chaine, index, 1);
                            index := index + 1
                      )
                );
                // Calcul de la clé de contrôle
                For index := 1 To Length (code128) Do
                (
                      dummy := AscW (Mid (code128, index, 1));
                      dummy := IIf (dummy < 127, dummy - 32, dummy - 105);
                      If index = 1 Then cleControle := dummy;
                      cleControle := (cleControle + (index - 1) * dummy) Mod 103);
                // Calcul du code ASCII de la clé
                cleControle := IIf (cleControle < 95, cleControle + 32, cleControle + 105);
                // Ajout de la clé et du STOP
                code128 := code128 + ChrW (cleControle) + ChrW (211)
          );
    );
    code128;

  2. #2
    Mod�rateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par d�faut
    bonjour

    essaye de rentrer ce caract�re ~009

  3. #3
    Membre averti
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Par d�faut
    Citation Envoy� par luc_chivas Voir le message
    bonjour

    essaye de rentrer ce caract�re ~009
    Bonjour,
    j'avais d�j� essay� j'ai oubli� de le mentionner. c'est interpr�t� comme une chaine de caract�re classique donc ressort ~0009 dans le code barre.

  4. #4
    Membre averti
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Par d�faut
    Je me demande si c'est pas la police que j'utilise qui n'est pas capable d'encoder dans le code barre ce caract�re.
    est-ce que vous avez des conseils pour faire CB128 via crystal ?

  5. #5
    Mod�rateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par d�faut
    Bonjour , une des solutions, c'est d'aller faire un tour sur iDAutomation, il y a toutes les UFL pour g�n�rer tout type de code barre

  6. #6
    Membre averti
    Homme Profil pro
    CdP ERP
    Inscrit en
    Mars 2014
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : CdP ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Par d�faut
    Au final via la formule BCSLinearCode128A en combinant avec la police Code128aMHr j'arrive � encoder le char(9), par contre dans le code barre j'ai la valeur qui est affich� en-dessous et des "d�mos" dans les barres.
    Je pense que j'ai la formule car j'avais achet� chez barcodesoft de quoi faire du DMC et du QRC. D'ailleurs je n'avais m�me pas la police Code128aMHr, que j'ai chopp� sur le net...
    Est-ce que tu sais s'il y a un moyen de virer ces "d�mos"?
    sinon au final �a fait un code barre tr�s grand...
    Images attach�es Images attach�es  

Discussions similaires

  1. [XL-2010] Encodage des caract�res dans les codes-source VBA
    Par puresprit dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 10/04/2013, 23h16
  2. Encodage en code 128
    Par gerald2545 dans le forum Contribuez
    R�ponses: 0
    Dernier message: 13/02/2011, 17h37
  3. Comment r�cup�rer dans le code l'encodage de la page (ligne coding)?
    Par tyrtamos dans le forum G�n�ral Python
    R�ponses: 10
    Dernier message: 14/11/2009, 15h19
  4. R�ponses: 2
    Dernier message: 10/10/2007, 15h24
  5. R�ponses: 6
    Dernier message: 19/09/2006, 09h12

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