xtrareports-116381-feature-guide-to-devexpress-reports-use-report-controls-use-bar-codes-intelligent-mail-package.md
The Intelligent Mail Package Barcode ( IMPB ) is used on mail in the United States. Barcodes of this symbology are used only for packages, as opposed to Intelligent Mail barcodes, which are used for postcards, letters, and flats. This barcode can encode package tracking information required to sort and deliver packages more efficiently with the piece-level tracking capability.
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 IntelligentMailPackage (an object of the IntelligentMailPackageGenerator) type).
Specify common barcode properties and properties specific to Intelligent Mail Package.
Use the barcode’s FNC1Substitute property to get or set the symbol (or set of symbols) in the barcode’s text that will be replaced with the FNC1 functional character when the barcode’s bars are drawn.
The following code creates the Intelligent Mail Package 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 CreateIntelligentMailPackageBarCode(string BarCodeText) {
// Create a barcode control.
XRBarCode barCode = new XRBarCode();
// Set the barcode's type to Intelligent Mail Package.
barCode.Symbology = new IntelligentMailPackageGenerator();
// Adjust the barcode's main properties.
barCode.Text = BarCodeText;
barCode.ShowText = false;
barCode.WidthF = 300;
barCode.HeightF = 150f;
// If the AutoModule property is set to false, uncomment the next line.
barCode.AutoModule = true;
//barcode.Module = 3;
// Adjust the property specific to the barcode type.
// (Assigned below is the default value.)
((IntelligentMailPackageGenerator)barCode.Symbology).FNC1Substitute = "#";
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 CreateIntelligentMailPackageBarCode(ByVal BarCodeText As String) As XRBarCode
' Create a barcode control.
Dim barCode As New XRBarCode()
' Set the barcode's type to Intelligent Mail Package.
barCode.Symbology = New IntelligentMailPackageGenerator()
' Adjust the barcode's main properties.
barCode.Text = BarCodeText
barCode.ShowText = False
barCode.WidthF = 300
barCode.HeightF = 150F
' If the AutoModule property is set to false, uncomment the next line.
barCode.AutoModule = True
'barcode.Module = 3;
' Adjust the property specific to the barcode type.
' (Assigned below is the default value.)
CType(barCode.Symbology, IntelligentMailPackageGenerator).FNC1Substitute = "#"
Return barCode
End Function
The code example below shows how to create a report with the Intelligent Mail Package barcode:
using DevExpress.XtraPrinting.BarCode;
using DevExpress.XtraReports.UI;
//...
var barCode = CreateIntelligentMailPackageBarCode("9212391234567812345671");
var report = new XtraReport() {
Bands = {
new DetailBand() {
Controls = { barCode }
}
}
};
Imports DevExpress.XtraPrinting.BarCode
Imports DevExpress.XtraReports.UI
'...
Private barCode = CreateIntelligentMailPackageBarCode("9212391234567812345671")
Dim report As New XtraReport()
Dim band = New DetailBand()
band.Controls.Add(barCode)