Visual Studio 2008附带的Crystal Reports软件是否允许您在报表上放置条形码

时间:2011-01-27 21:49:57

标签: visual-studio-2008 visual-studio-2010 crystal-reports barcode

我们使用Visual Studio 2008附带的水晶报告创建了几个报告。我们现在需要在这些报告中包含条形码。这可以通过visual studio 2008及其包含的水晶报告版本来完成吗? VS 2010(从业务对象下载visual studio 2010的水晶报告后)。

有没有其他方法可以免费提供,或者我们绝对需要购买水晶报告或第三方软件才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我在其中一个论坛上找到了以下解决方案,但我不记得哪一个,(请告诉我,如果你知道原帖,我会链接到它。)

以下是在crysal报告上添加条形码所需的步骤。

1)将一个类型为byte array的列添加到报表中使用的数据集中。 2)打开crytal报告并验证数据库,以便在crytal报告中更新新添加的列。 3)在水晶设计器中,拖动设计图面上的新数据库列并将其放在所需位置。 4)在生成报告的方法中,添加以下代码以将条形码图像的内容填充到新列中。

Dim fsImageFile As FileStream
Dim brReader As BinaryReader
fsImageFile = New FileStream(strBarcodeImageFilePath, FileMode.Open)
brReader = New BinaryReader(fsImageFile)

Dim bImageByte(Convert.ToInt32(fsImageFile.Length + 1)) As Byte
bImageByte = brReader.ReadBytes(Convert.ToInt32(fsImageFile.Length))

drMyCrystalReport.BarcodeImage = bImageByte

在上面的示例中,drMyCrystalReport是数据集的数据行,BarcodeImage是添加到数据集的列。 此代码将图像文件的内容添加到数据库列,并且水晶报告会在添加此列时显示该内容。

答案 1 :(得分:0)

这取决于您要打印的条形码符号系统。对于Code 39条形码,您只需将字符串括在一对“*”字符之间并使用Code39字体;它是自我检查所以不需要进一步处理。我使用Free3of9.ttf,效果很好。

Code 128需要一个校验位,并且需要一个函数来计算将在字符串末尾使用的正确字符(与字体相关)以形成完整的条形码。这些字体中有一些,包含各种语言的函数库。其中一个来自Brian Dobson(FreeBarcodeFonts)并且似乎是一个相当完整的解决方案,包括用于Windows上的Crystal Reports的DLL。

我对使用动态生成的图像文件的想法没有任何评论,因为Crystal Reports是一个非常模糊的工具。听起来似乎有道理,即使你是通过数据库中的存储过程来完成的。

其他符号可用,大部分商业化。在网上搜索“条形码字体”和符号系统名称以获得大量结果。