Barcode-Schriftart Code 128 in Barcode-Berichten verwenden

Verwenden Sie folgende Vorgehensweise, um die Standard-Barcode-Schriftart in Berichten durch die Barcode-Schriftart Code 128 zu ersetzen. Code 128 liefert einen kleineren Barcode-Ausdruck als die Standard-Schriftart (Barcode-Schriftart "Code39QuarterInch").

Beachten Sie, dass in Infor für die Barcode-Schriftart Code128 nur die aktuell in der Standard-Barcode-Schriftart verfügbaren Zeichen gedruckt werden können.

Hinweis:  Bei Verwendung von Code128, Code128Narrow und Code128VeryNarrow wird ein Schriftgrad von 48 oder größer empfohlen. Bei Verwendung von Code128Wide und Code128VeryWide wird ein Schriftgrad von 36 oder größer empfohlen.

Bei Verwendung dieser Schriftart muss in Windows die regionale Einstellung "Englisch" eingestellt sein.

Unterschiede zwischen Code 128A und Code 128B:

  • Code 128A unterstützt im Gegensatz zu Code 128B keine Kleinbuchstaben.
  • Code 128A kann Satzzeichen, die Ziffern 0 bis 9, Großbuchstaben (keine Kleinbuchstaben), Standard ASCII-Steuercodes und die in der nachfolgenden Tabelle aufgeführten Sonderzeichen kodieren. Code 128B kann Satzzeichen, die Ziffern 0 bis 9, Kleinbuchstaben und die in der nachfolgenden Tabelle aufgeführten Sonderzeichen kodieren

Die Verwendung von Code 128B bietet sich in den meisten Fällen an.

Die folgende Tabelle enthält die Code 128-Sonderzeichen:

ASCII Code    Code 128A    Code 128B   
32 FNC3 FNC3
33 FNC2 FNC2
34 Shift Shift
35 Code C Code C
36 Code B FNC4
37 FNC4 Code A
38 FNC1 FNC1
(FNC = Funktionstaste)

So ersetzen Sie die Standard-Barcode-Schriftart in Berichten mit der Barcode-Schriftart Code128:

  1. Öffnen Sie in Visual Studio 2008 die RDL-Datei, in der Sie die vorhandene Barcode-Schriftart durch die Barcode-Schriftart Code128 ersetzen möchten (RDL-Dateien sind normalerweise auf dem Funktionsserver im Ordner TaskMan\Report gespeichert).
  2. Fügen Sie eine dieser Funktionen in die rdl-Datei ein:

    Für 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

    Für Code128 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. Klicken Sie mit der rechten Maustaste auf ein Barcode-Objekt, und wählen Sie Formel bearbeiten. Im Formel-Editor wird ein Formular wie das folgende angezeigt:
    ="*" & Replace(UCase(Trim(Fields!item.Value)),"", "_") & "*"

    In diesem Beispiel ist Trim(Fields!item.Value) ein Datenbankfeld, das durch einen Strichcode ersetzt wird. Berichte können auch Formeln für gespeicherte Prozeduren enthalten.

  4. Ersetzen Sie die einzeilige Formel durch einen Aufruf der Funktion, die Sie in Schritt 2 hinzugefügt haben:
    
    =Code.GetBarCodeOutput(FieldValue)
    	

    , wobei FieldValue das Datenbankfeld oder die gespeicherte Prozedur ist, das/die durch einen Strichcode ersetzt wird, zum Beispiel:

    
    =Code.GetBarCodeOutput(Trim(Fields!item.Value))
  5. Klicken Sie zum Schließen des Formel-Editors auf Schließen.
  6. Klicken Sie mit der rechten Maustaste auf das Barcode-Objekt, und wählen Sie Formatfeld.
  7. Wählen Sie auf der Registerkarte Schriftart die gewünschte Schriftart und -größe. Wählen Sie etwa Font Code128 und Size 48.
  8. Klicken Sie auf OK.
  9. Speichern Sie die RDL-Datei und testen Sie den Bericht.