Home:  Products:  Barcode Fonts:  Font Encoders:  Business Objects® Crystal Reports UFL:

Crystal Reports Barcode Font UFL

  • Crystal Reports Barcode Font TutorialEasily create barcodes in Crystal Reports.
  • Compatible with Crystal 7 and up.
  • Enables easy Change To Barcode functionality.
  • Supports Visual Studio .NET.
  • Supports many linear barcode types including Code-128, GS1-128, DataBar, Code-39, Interleaved 2 of 5, Code-93, UPC, EAN, Postnet and Intelligent Mail.
  • Supports double-byte language settings when used with the Universal Barcode Font or the DataBar Font.
  • Compatible with Windows 95 and greater, including 32 bit and 64 bit versions of Windows Vista and Windows Server 2008.
  • Royalty-free with the purchase of any license to one of IDAutomation's barcode fonts.

Function List | Support | Native Generator | Font Formulas | Integration Guide | Barcode Fonts

 Crystal Reports Barcode UFL Tutorial

The Crystal Reports Barcode UFL is one of the easiest product to use when creating barcodes in reports. However, if reports are to be distributed, IDAutomation recommends the Native Crystal Reports Barcode Generator, which allows embedded distribution without any required fonts, UFLs or plug-ins.

“This is easily the best software I’ve found for barcode printing in Crystal by a long way -- I must have downloaded 6 or 7 other fonts and packages, but none are as easy to use as this.” Michael Ainley, IT Manager, UK

This UFL supports many linear barcode types including Code-128, GS1-128, Code-39, Interleaved 2 of 5, Code-93, UPC, EAN, DataBar, Postnet and Intelligent Mail.  Advanced 2D barcodes such as Aztec, DataMatrix, PDF417 and QR-Code must use the UFL supplied with that product.

Easy Barcode Tutorial for Crystal 12 and greater:

New functionality introduced in Crystal Reports version 12 makes it easy to turn fields into barcodes. When using Crystal versions below 12, the standard UFL tutorial must be followed.

  1. Install the appropriate barcode fonts. If in doubt about which font to use, IDAutomation recommends the Universal Barcode Font for the Code 128 barcode.
  2. Download and install the latest version of IDAutomation's Crystal Reports UFL. Only the latest version released in March 2008 is compatible with the new "change to barcode" functionality introduced in Crystal Reports 12.
  3. Add a field to the report that contains only the data that is to be encoded in the barcode. If necessary, a formula field may be created to append text or concatenate fields.
  4. Select the Preview tab (or File - Print Preview) to ensure the correct data appears in the field.
  5. Right-click on this field, choose "Change To Barcode" and select from the list of installed barcode fonts, the type of barcode to create.
    Crystal Reports 12 Change To Barcode
  6. The barcode should be instantly created in the report. To create a text interpretation, simply add the same field to the report again and position it below the barcode as necessary.
  7. Print one page of the report and test with a barcode scanner. IDAutomation suggests testing with the IDAutomation USB Barcode Scanner, which scans all popular linear, GS1 DataBar and PDF417 barcodes. When 2D Data Matrix, QR Code, Aztec or Intelligent Mail symbols need to be verified, IDAutomation suggests the 4600G 2D Imager with PQA.

Barcode UFL Tutorial for Crystal Reports Versions 7 to 11:

  1. Install the appropriate barcode fonts. If there is a doubt as to which font to use, IDAutomation recommends the Code 128 Barcode Font Advantage Package. When using Code 128 or Interleaved 2 of 5, if the character set is not US English, 1252 Latin-1, 1250 European, 1251 Cyrillic, 1253 Greek, 1254 Turkish, 1255 Hebrew or 1256 Arabic, the Universal Barcode Font Advantage™ must be used. This example uses the Code 128 Barcode Font Advantage Package. Some font packages also include Font Formulas, which allow the font formatting routines to be embedded in a report without the need for a UFL.
  2. Download IDAutomation's Crystal Reports UFL and install it. After installing the UFL, the barcode functions should show up under Additional Functions in the formula editor. For backward compatibility with formulas of previous reports, IDAutomation also provides the previously released COM based Crystal UFL. If the earlier version of the UFL is used, refer to the documentation in that package.
  3. Choose the Design tab to enter the design mode of the report.
  4. Open the Field Explorer. In version 9, choose View - Field Explorer. In versions prior to 9, choose Insert - Formula Field.
  5. Right click on Formula Fields and select New.
  6. In the Formula Name dialog box, enter a name to identify the formula field. This can be any name, for example, "Code128Barcode." In this example, the formula is simply named "Barcode."
    In the Formula Name dialog box, enter the name you want to identify the formula by. This can be any name, for example, "barcode1". In this example we name the formula "Barcode". 
  7. Click OK and select Use Editor if asked. The Formula Editor should now be open.
  8. In the Functions Column, expand Additional Functions and expand the IDAutomation section. From the list provided, choose the appropriate function. When creating DataBar Expanded Stacked symbols, a formula is used instead of a function. If the IDAutomation functions do not show up in the Additional Functions section after installing the UFL, copy the U25IDAutomation.dll file from the Windows System directory (for example C:\Windows\System32) to the directory where the Crystal DLLs are located. In Crystal 11, the file may be copied to C:\Program Files\Common Files\Business Objects\3.0\bin; in Crystal 10 and previous versions, the file may be copied to %Windows%\Crystal where %Windows% is the directory where Windows is installed.
  9. Make sure the function utilized matches the font listed in the "font to use" column. As an example, only use the IDAutomation_Code128() function with the IDAutomationC128 Font.
  10. With the cursor in between the parentheses of the function, select the data field that is to be encoded. Data fields used in this formula must be formatted as text. If the data fields are not text, use ToText for conversion. The syntax of the formula should look similar to the formula below which formats Field1 of Table1 to a Code 128 barcode font. IDAutomation_Code128 ({Table1.Field1}) or IDAutomation_Code128 (ToText( {Table1.Field1} ) )
  11. Choose Save and then Close. If an error such as "A string is required" appears, convert the data to text with the ToText function. For example: IDAutomation_Code128 (ToText( {Customers.CustNum} ) )
  12. To include a text interpretation of what is being encoded below the barcode; it is recommended to create an additional formula. In this example, the formula is named BarcodeHR to return the "human readable" text for Table1.Field1:
    {Table1.Field1}
    When creating GS1-128 (UCC/EAN) barcodes which require specific text interpretations, the appropriate HR function may be used for that purpose. For example, to display the text for a GS1-128 barcode, BarcodeHR is created with a different formula to return the formatted text from Table1.Field1: IDAutomation_Code128HumanReadable ({Table1.Field1})
  13. Return to the Field Explorer dialog box.
  14. Click on the formula field and drag it onto the report.
    Click on the formula field and drag it onto your report.
  15. Now that the fields have been created in the Crystal Report, choose the Preview tab to make sure the data is being retrieved from the fields and properly formatted to the barcode font. Strange characters will append to the beginning and ending of the data from the fields, which are required for the start and stop characters in the barcode. Additional formatting may also be necessary that scrambles the data; this is normal for Code 128, Interleaved 2 of 5 and all functions in the Universal Barcode Font and DataBar Font. The graphic below in this tutorial shows the first field produced by the @Barcode formula and the second produced by the @BarcodeHR formula.
    Choose the Preview tab to make sure the data is being pulled from the fields and properly formatted to the barcode font.
  16. Choose the Design tab again and size the barcode formula field to display the appropriate barcode font in the report.
  17. Change the font of the formula field to be the appropriate barcode font and set the point size to 12 points or another appropriate size. Ensure the formula used matches the font listed in the "font to use" column. This is a very important step; if this is not correct, barcodes will not be properly created.
    NOTE: When selecting the font from the pull down menu, please do not use the fonts that begin with the "@" Symbol. Instead, scroll down in the list and select fonts that begin with "IDAutomation.
  18. Select the Preview tab (or File - Print Preview) to view the barcodes in the report. Print one page of the report and test with a scanner. IDAutomation suggests testing with the easy-to-use IDAutomation USB Barcode Scanner, which scans all popular linear, GS1 DataBar and PDF417 barcodes. When 2D Data Matrix, QR Code, Aztec or Intelligent Mail symbols need to be verified, IDAutomation suggests the 4600G Hand Held Products Imager.
    When you choose the Preview tab you should see your barcodes in the report.

 Creating Formulas to Combine Multiple Fields or Encode Functions:

Functions may be easily modified with formulas to combine multiple fields or append text in a single barcode, as demonstrated in the following examples:

  • The following formula appends the text "ECC200", combines two fields in a single barcode and places a tab function (which is ASCII 009) between them:
    IDAutomation_Code128ApplyTilde ( "ECC200" & {Table1.DataField1} & "~009" & {Table1.UPC})
  • This formula add in the GS1-128 Application Identifier (~202) and calculates a MOD 10 check digit.
    IDAutomation_Code128ApplyTilde ("~202" & {Table1.DataField1} & "~m19" )

 Font Formulas:

Many of IDAutomation's font packages include Font Formulas, which allow font formatting routines to be embedded in a report without the need for a UFL. These formulas are saved as part of the report file (.rpt) and do not have any external dependencies (with the exception of the required barcode font). When distributing reports, IDAutomation suggests using this method or implementation of the Native Barcode Generator for Crystal Reports, which creates dynamic embedded barcodes without fonts.

 Distributing IDAutomation's UFL and Fonts with Crystal Runtime Files

If the report is being distributed, it is recommended that IDAutomation's Native Barcode Generator be considered which allows for distribution of a Crystal report without the need for any additional fonts, UFLs or plug-ins. Additionally, IDAutomation Formulas for Crystal Reports only require the applicable barcode font to be installed.

IDAutomation's UFL is free to use and distribute with the application if one of IDAutomation's licensed barcode fonts has been purchased. The following is a list of runtime files that should be distributed with the application:

Crystal Reports UFL Files to Distribute
(IDAutomation recommends using an advanced installation application to distribute files for Windows)
 Purpose of File  File to Distribute  Notes
Font File(s) ???.ttf The TrueType barcode fonts. Font files may be distributed only if a Developer License has been purchased.
Crystal UFL U25IDAutomation.dll The IDAutomation Crystal UFL. It should be installed in the Windows System directory (for example C:\Windows\System32).

 UFL Barcode Function List:

The functions listed below are all available in IDAutomation's UFL download and are only valid when used with the barcode font listed in the "font to use" column. The data input type for all functions is a string.

 Functions for Standard Barcode Fonts
Barcode Type Functions  (Follow links for more information) Font to use
Code-11 IDAutomation_Code11 (DataToEncode) IDAutomationC11
Code-128 IDAutomation_Code128 (DataToEncode)
Recommended for general bar-coding purposes.
IDAutomationC128
Additional Code 128 Functions:
IDAutomation_Code128ApplyTilde (DataToEncode)
IDAutomation_Code128ApplyTilde() applies Code 128 tilde processing to the barcode and is used to create GS1-128 or encode functions.
IDAutomation_Code128A (DataToEncode)
IDAutomation_Code128B (DataToEncode)
IDAutomation_Code128C (DataToEncode)
IDAutomationC128
IDAutomation_Code128HumanReadableTilde (DataToEncode)
This method returns the human readable text for Code 128 barcodes, such as with GS1-128.
Text Font
Code-39 IDAutomation_Code39 (DataToEncode)
IDAutomation_Code39Mod43 (DataToEncode)
IDAutomationC39
Code-93 IDAutomation_Code93 (DataToEncode) IDAutomationC93
Codabar IDAutomation_Codabar (DataToEncode) IDAutomationCB
EAN-13 IDAutomation_EAN13 (DataToEncode) IDAutomationUPCEAN
EAN-8 IDAutomation_EAN8 (DataToEncode) IDAutomationUPCEAN
Interleaved 2 of 5 IDAutomation_I2of5 (DataToEncode)
IDAutomation_I2of5Mod10 (DataToEncode)
IDAutomationI25
MSI / Plessey IDAutomation_MSI (DataToEncode) IDAutomationMSI
UPC-A IDAutomation_UPCa (DataToEncode) IDAutomationUPCEAN
UPC-E IDAutomation_UPCe (DataToEncode) IDAutomationUPCEAN
USPS IntelligentMail IDAutomation_IntelligentMail (DataToEncode) IDAutomationPOSTNET
or IDAutomation_Uni
USPS Postnet IDAutomation_Postnet (DataToEncode) IDAutomationPOSTNET
USPS Planet IDAutomation_Postnet (DataToEncode) IDAutomationPOSTNET
not applicable IDAutomation_Mod10 (DataToEncode) not applicable
 Universal Barcode Font Functions
The functions listed below are preceded with IDAutomation_Uni_ and are to be used with the IDAutomation Universal Barcode Font Advantage™ or the IDAutomation DataBar Font.
Barcode Type Functions  (Follow links for more information) Font to use
Code-128 IDAutomation_Uni_C128 (DataToEncode)
C128() is recommended for general bar-coding purposes.
IDAutomation_Uni
or IDAutomation DataBar
Additional Code 128 Functions:
IDAutomation_Uni_C128ApplyTilde (DataToEncode)
IDAutomation_Uni_C128ApplyTilde() applies Code 128 tilde processing and is used to create GS1-128 or encode functions.

IDAutomation_Uni_C128A (DataToEncode)
IDAutomation_Uni_C128B (DataToEncode)
IDAutomation_Uni_C128C (DataToEncode)
IDAutomation_Uni
or IDAutomation DataBar
IDAutomation_Code128HumanReadableTilde (DataToEncode)
This method returns the human readable text for Code 128 barcodes, such as with GS1-128.
Text Font
Code-39 IDAutomation_Uni_C39 (DataToEncode, N_Dimension, IncludeCheckDigit)
Example: IDAutomation_Uni_C39 ("12345678",3,TRUE )
IDAutomation_Uni
or IDAutomation DataBar
Codabar IDAutomation_Uni_Codabar (DataToEncode, N_Dimension, StartChar, StopChar)
Example: IDAutomation_Uni_Codabar ("12345678",2,A,B )
IDAutomation_Uni
or IDAutomation DataBar
Interleaved 2 of 5 IDAutomation_Uni_I2of5 (DataToEncode, N_Dimension, IncludeCheckDigit)
Example: IDAutomation_Uni_I2of5 ("12345678",2,FALSE  )
IDAutomation_Uni
or IDAutomation DataBar
MSI / Plessey IDAutomation_Uni_MSI (DataToEncode, N_Dimension, IncludeCheckDigit) IDAutomation_Uni
or IDAutomation DataBar
USPS IntelligentMail IDAutomation_IntelligentMail (DataToEncode) IDAutomation_Uni only
USPS Postnet IDAutomation_Uni_Postnet (DataToEncode, IncludeCheckDigit) IDAutomation_Uni only
USPS Planet IDAutomation_Uni_Planet (DataToEncode, IncludeCheckDigit) IDAutomation_Uni only
 DataBar Functions
The methods listed below are preceded with IDAutomation_DataBar_ and are only to be used with the IDAutomation GS1 DataBar Font.
Barcode Type Functions  (Follow links for more information) Font to use
DataBar IDAutomation_DataBar (DataToEncode) IDAutomation DataBar 34
DataBar Expanded IDAutomation_DataBarExpanded (DataToEncode) IDAutomation DataBar 34
DataBar Expanded Stacked DataBar Expanded Stacked requires a custom formula field to be copied from the sample report provided. IDAutomation DataBar 34
DataBar Limited IDAutomation_DataBarLimited (DataToEncode) IDAutomation DataBar 13
DataBar Stacked IDAutomation_DataBarStacked (DataToEncode) IDAutomation DataBar 13
DataBar Stacked Omnidirectional IDAutomation_DataBarStackedOmniDirectional (DataToEncode) IDAutomation DataBar 34
DataBar Truncated IDAutomation_DataBar (DataToEncode) IDAutomation DataBar 13

Function Property Descriptions:

  • DataToEncode - a string value that represents the data being encoded.
  • N_Dimension - determines the width of the wide bars that is a multiple of the X dimension. Valid values are 2, 2.5 and 3. The default is 2. The X dimension is determined by the font point size.
  • IncludeCheckDigit - a Boolean value that determines whether a check digit should be automatically calculated and included for the DataToEncode.
  • ApplyTilde - when ApplyTilde is set to "1" in Code 128 with the Auto character set, the format ~ddd may be used to specify the ASCII code of the character to be encoded and several other tilde options are enabled.

 DataBar Expanded Stacked Symbol Generation:

This procedure inserts a formula field for DataBar Expanded Stacked symbols and is compatible with Crystal Reports version 9 and up. This is a necessary step to ensure that DataBar Expanded Stacked symbols are created properly in Crystal Reports.

  1. Install the package and open the Crystal Report example provided.
  2. Choose View - Design to switch to design mode.
  3. Highlight the @IDAutomation_DataBarExpandedStacked field and choose Edit - Copy.
  4. Open the report the barcode is needed for and choose Edit - Paste to paste the field where it is desired.
  5. Highlight the field and choose Edit - Edit Formula.
    1. Modify the "DataToEncode:=" line of the formula to equal the data that is to be encoded in the barcode.
    2. Change the "Segments:= 4;" line of the formula to equal the number of segments needed.
      The complete formula should look something like the following:
      stringVar DataToEncode:= {Table1.DataField1};
      numberVar Segments:= 6;
      stringVar CompleteBarcodeString:="";
      numberVar i:=0;
      numberVar DataSegments:= ToNumber (IDAutomation_DataBarExpandedStackedSet(DataToEncode,Segments));
      For i:=1 to DataSegments Do
      (
      CompleteBarcodeString := CompleteBarcodeString + IDAutomation_DataBarExpandedStackedGet(DataToEncode,Segments,i);
      );
      CompleteBarcodeString
  6. Continue implementation and testing with Step 11 of the tutorial.

 Support:

Free product support may be obtained by reviewing articles that are documented at the IDAutomation's Barcode Font Support Site and by searching the resolved public help desk issues. Priority phone, email and help desk support is also provided up to 30 days after purchase. Additional priority phone, email and help desk support may be obtained if the Priority Support and Upgrade Subscription is active. For assistance with other Crystal reports issues refer to Crystal Reports Support Site.

Common Issues & Notices:

Advanced DataBar and 2D Integration Links:

Related Information:

Overview of Crystal Barcoding Options:

 

© Copyright 2000-2008 IDAutomation.com, Inc., All Rights Reserved.  Legal Notices.

Over 70% of Fortune 100 companies use IDAutomation's products to automate their businesses.