Crystal reports Barcode, handheld

What font are you using?

I just did a test with IDAutomationC39M and the space Character being substituted with an underscore reads it as a space.  

'*'+replace({SalesTer1.TerritoryDesc}," ","_")+'*'

Yields a single barcode (no gap in it), the decodes to "TERR 001".  (the value of SalesTer1.TerritoryDesc is "TERR 001")

Doing the same but substituting an equal sign for the space, also works.

One caveat, if there is an underscore in your data, it will be read as a space.

'*' + {SalesTer1.TerritoryDesc} + '*'
Yields "TERR 002" when the source data was "TERR_002"

I think you'll need to use
to keep an original underscore.  So do this replacement before doing a " " -> "_"


I customized Job Pick List report by adding barcodes for warehouse, bin and lot.
The issue I am having related to bin for example made of 2 words, like BIN 09.
When barcode created in Crystal reports it makes barcode also made of 2 barcodes. And our handhelds don't read that. They only read when barcode is shown as 1 barcode. How to make it as 1 instead of 2 in crystal reports. Thanks Mike.

Try this:

replace ({table.field}," ","")
Hi Larry:

Do you have a complete formula for barcode 39 with the space?

Also what important, that:
After barcode is converted to 1 barcode, it should read back with handheld back to Epicor as 2 words,
like BIN 09, not BIN09.

Please let me now.

Hi Larry,
do you have a complete formula for the barcode 39 with space?
What important also:
1. BIN 09 is bin field.
2. It has to be coded as 1 barcode.
3. When read with handheld, it should read BIN 09, not BIN09, so Epicor can recognize it.

Please let me know.


Add a * at the beginning and end..... everything in between is treated as the actual barcode data, including spaces.

The example below is a barcode I use for labour capture, ie MES.  The job number is scanned then the bar code example below..... $I is a tab and $M is an enter.  I actually had the job number in there as well but found under certain circumstances the operation sequence was dropping digits based on timing (possible server speed at scan time etc).   

"*" & totext({JobAsmbl.AssemblySeq},0,"") & '$I' & totext({JobOper.OprSeq},0,"") & '$I' & '$I' & '$I' & '$I' & '$M' & "*"

This is using simple Symbol usb barcode readers (configuration required)

To print the barcode symbol for the space character, replace it with an underscore.

replace(({table.field}," ","_")

I tried this;

"*"& replace({table.field}," ","_")&"*"

It creates 1 barcode, but when scanned by handheld, it show *BIN_09*

Native Code39 doesn't have an underscore character. Typically, an underscore is encoded as $O. So either the font is making that substitution, or the reader is.

You can also try replacing the space with an equal sign.

Go to an online barcode generator an make an image for a barcode containing a space, and see how your scanner interprets it.