Utilisation de la police de codes-barres Code 128 dans les états de codes-barres

Procédez comme suit pour remplacer la police de codes-barres par défaut dans les états par la police Code 128. Le code 128 imprime des codes-barres plus petits que la police par défaut (police Code39QuarterInch).

Notez que la police de codes-barres Code 128 prise en charge par Infor imprime uniquement les caractères actuellement disponibles dans la police de codes-barres par défaut.

Remarque :  Avec le code 128, le code 128Narrow et le code 128VeryNarrow, une taille de police de 48 ou supérieure est recommandée. Avec le code 128Wide, le code 128VeryWide, une taille de police de 36 ou supérieure est recommandée.

Lorsque vous utilisez cette police, vous devez sélectionner Anglais comme paramètre régional Windows.

Les différences entre le code 128A et le code 128B sont les suivantes :

  • Le code 128A ne permet pas l'utilisation de caractères minuscules contrairement au code 128B.
  • Le code 128A peut coder les signes de ponctuation, les chiffres 0 à 9, les caractères majuscules (pas les caractères minuscules), les codes de contrôle ASCII standard ainsi que les caractères spéciaux indiqués dans le tableau ci-dessous. Le code 128B peut coder les signes de ponctuation, les chiffres 0 à 9, les caractères minuscules et majuscules ainsi que les caractères spéciaux indiqués dans le tableau ci-dessous.

Nous vous recommandons d'utiliser le code 128B, qui est généralement le choix le plus approprié dans la plupart des situations.

Cette table présente les caractères spéciaux Code 128 :

Code ASCII    Code 128A    Code 128B   
32 FNC3 FNC3
33 FNC2 FNC2
34 Eq Eq
35 Code C Code C
36 Code B FNC4
37 FNC4 Code A
38 FNC1 FNC1
(FNC = Touche de fonction)

Pour remplacer la police de codes-barres par défaut par la police Code 128 :

  1. Dans Visual Studio 2008, ouvrez le fichier .rdl dans lequel vous voulez remplacer la police de codes-barres existante par la police Code 128 (les fichiers .rdl sont généralement stockés sur le serveur d'utilitaires, dans le dossier TaskMan\Report).
  2. Incluez l'une de ces fonctions dans le fichier rd :

    Pour le code128 A :

    
    Public Function GetBarCodeOutput t(ByVal inputValue As String) As String
    Dim CheckDigit As Integer = 0 
    Dim i As Integer = 0 
    Dim BarCodeOutput As String = ""
    Dim BarCodeInput As String 
    Dim BarCodeTemp  As String = ""
    Dim SingleByte  As Integer = 0 
    BarCodeInput = inputValue.ToUpper()
    For i = 1 To Len(BarCodeInput)
        SingleByte = Asc(Mid(BarCodeInput, i,1))
        BarCodeTemp = BarCodeTemp + Chr(SingleByte - 32)
    Next 
    CheckDigit = 1
    For i = 1 To Len(BarCodeTemp) 
       SingleByte = Asc(Mid(BarCodeTemp, i,1))
       CheckDigit = (CheckDigit + (SingleByte * i)) Mod 103
    Next 
    BarCodeTemp = BarCodeTemp + Chr(CheckDigit)
    For i = 1 To Len(BarCodeTemp)
        SingleByte = Asc(Mid(BarCodeTemp, i, 1))     
        If SingleByte =0 Then
           BarCodeOutput = Chr(0)
        ElseIf SingleByte > 0 And SingleByte < 94 Then
           BarCodeOutput = BarCodeOutput + Chr(SingleByte + 32)
        Else
           BarCodeOutput = BarCodeOutput + Chr(SingleByte + 103)
        End If
    Next        
    Return  "µ"+ BarCodeOutput + Chr(196)
    End Function

    Pour le cCode128 B :

    
    Public Function GetBarCodeOutput(ByVal inputValue As String) As String
    Dim CheckDigit As Integer = 0 
    Dim i As Integer = 0 
    Dim BarCodeOutput As String = ""
    Dim BarCodeInput As String 
    Dim BarCodeTemp  As String = ""
    Dim SingleByte  As Integer = 0 
    BarCodeInput = inputValue.ToUpper()
    For i = 1 To Len(BarCodeInput)
        SingleByte = Asc(Mid(BarCodeInput, i,1))
        BarCodeTemp = BarCodeTemp + Chr(SingleByte - 32)
    Next 
    CheckDigit = 1
    For i = 1 To Len(BarCodeTemp) 
       SingleByte = Asc(Mid(BarCodeTemp, i,1))
       CheckDigit = (CheckDigit + (SingleByte * i)) Mod 103
    Next 
    BarCodeTemp = BarCodeTemp + Chr(CheckDigit)
    For i = 1 To Len(BarCodeTemp) 
        SingleByte = Asc(Mid(BarCodeTemp, i, 1))     
        If SingleByte =0 Then
           BarCodeOutput = Chr(0)
        ElseIf SingleByte > 0 And SingleByte < 94 Then
           BarCodeOutput = BarCodeOutput + Chr(SingleByte + 32)
        Else
           BarCodeOutput = BarCodeOutput + Chr(SingleByte + 103)
        End If
    Next        
    Return "¶"+ BarCodeOutput + Chr(196)
    End Function
    	
  3. Cliquez avec le bouton droit de la souris sur un objet en codes-barres et sélectionnez Màj Formules. Dans l'éditeur de formule, une formule similaire à celle-ci s'affiche :
    ="*" & Replace(UCase(Trim(Fields!item.Value)),"", "_") & "*"

    Dans cet exemple, Trim(Fields!item.Value) est un champ de base de données qui est remplacé par un code-barres. Les états peuvent aussi inclure des formules pour procédures enregistrées

  4. Remplacez la formule sur une ligne par un appel de la fonction que vous avez ajoutée à l'étape 2 :
    
    =Code.GetBarCodeOutput(FieldValue)
    	

    FieldValue est le champ de base de données ou le champ de procédure enregistrée qui est remplacé par un code-barres, par exemple :

    
    =Code.GetBarCodeOutput(Trim(Fields!item.Value))
  5. Cliquez sur le bouton Fermer pour fermer l'éditeur de formules.
  6. Cliquez avec le bouton droit sur l'objet en codes-barres et sélectionnez le champ Format.
  7. Dans l'onglet Police, sélectionnez la police et la taille de police appropriées. Par exemple, sélectionnez Police Code128 et Taille 48.
  8. Cliquez sur OK.
  9. Enregistrez le fichier .rdl et testez l'état.