xtrareports-11918-feature-guide-to-devexpress-reports-use-report-controls-use-bar-codes-code-39-extended.md
Code 39 Extended is an extended version of the Code 39 (USD-3) barcode that supports the ASCII character set.
Refer to the following article for more information: Code 39 Extended.
Drag the XRBarCode item from the DX.25.2: Report Controls tab and drop it onto the report.
Set the XRBarCode control’s Symbology property to Code39Extended (an object of the Code39ExtendedGenerator type).
Specify common barcode properties and properties specific to Code39Extended.
The Code 39 Extended barcode automatically replaces each character that cannot be encoded by the Code 39 barcode with a pair of characters that can be encoded by the Code 39 barcode. For example, the ‘\t’ character is replaced by ‘$I’. When the barcode is scanned, the pair is replaced with [TAB]:
| Property | Value |
|---|---|
| XRBarCode.Text: | “12345\t678” |
| Coded text: | “12345$I678” |
| Scanned text: | “12345[TAB]678” |
The checksum is not considered part of a barcode’s text and checksum characters are never replaced. When the XRBarCode.ShowText and BarCodeGeneratorBase.CalcCheckSum properties are enabled, the barcode does not display a checksum character to avoid mistakenly treating a checksum as part of barcode text.
The following code creates the Code 39 Extended barcode and specifies its properties.
View Example: How to add a bar code to a report
using System;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Windows.Forms;
using DevExpress.XtraPrinting.BarCode;
using DevExpress.XtraReports.UI;
// ...
public XRBarCode CreateCode39ExBarCode(string BarCodeText) {
// Create a barcode control.
XRBarCode barCode = new XRBarCode();
// Set the barcode's type to Code 39 Extended.
barCode.Symbology = new Code39ExtendedGenerator();
// Adjust the barcode's main properties.
barCode.Text = BarCodeText;
barCode.Width = 400;
barCode.Height = 100;
// Adjust the properties specific to the barcode type.
((Code39ExtendedGenerator)barCode.Symbology).CalcCheckSum = false;
((Code39ExtendedGenerator)barCode.Symbology).WideNarrowRatio = 2.5F;
return barCode;
}
Imports System
Imports System.Collections.Generic
Imports System.Drawing.Printing
Imports System.Windows.Forms
Imports DevExpress.XtraPrinting.BarCode
Imports DevExpress.XtraReports.UI
' ...
Public Function CreateCode39ExBarCode(ByVal BarCodeText As String) As XRBarCode
' Create a barcode control.
Dim barCode As New XRBarCode()
' Set the barcode's type to Code 39 Extended.
barCode.Symbology = New Code39ExtendedGenerator()
' Adjust the barcode's main properties.
barCode.Text = BarCodeText
barCode.Width = 400
barCode.Height = 100
' Adjust the properties specific to the barcode type.
CType(barCode.Symbology, Code39ExtendedGenerator).CalcCheckSum = False
CType(barCode.Symbology, Code39ExtendedGenerator).WideNarrowRatio = 2.5F
Return barCode
End Function
The code example below shows how to create a report with the Code 39 Extended barcode:
using DevExpress.XtraPrinting.BarCode;
using DevExpress.XtraReports.UI;
//...
var barCode = CreateCode39ExBarCode("012345678");
var report = new XtraReport() {
Bands = {
new DetailBand() {
Controls = { barCode }
}
}
};
Imports DevExpress.XtraPrinting.BarCode
Imports DevExpress.XtraReports.UI
'...
Private barCode = CreateCode39ExBarCode("012345678")
Dim report As New XtraReport()
Dim band = New DetailBand()
band.Controls.Add(barCode)