我知道关于这个话题有类似的问题,但不知怎的,我无法解决这个问题。
我搜索了这个问题并得到了很多参考资料,但没有一个对我有用: - (
我正在制作一份水晶报告,我将用于徽章印刷。
一切都很好,除非我想在报告中找不到条形码。
我在运行时创建这个条形码并将其保存在我绑定到报告的数据表中。
我知道有两种方法可以做到。
我可以使用OLE对象获取图像,方法是将对象的Graphic属性指定到包含图像路径的数据库字段。
但这种方法的问题是,我必须保存图像,徽章的数量可以达到10万,我不想在服务器上保存10万个图像文件。
相反,我想采用另一种方法,将Byte []字段绑定到报告但不知何故对我不起作用。
这是代码。
System.IO.MemoryStream strmem = new System.IO.MemoryStream();
bc.Save(strmem, System.Drawing.Imaging.ImageFormat.Tiff);
Byte[] mybit = new Byte[strmem.Length];
strmem.Read(mybit, 0, Convert.ToInt32(strmem.Length));
dt.Rows[0]["Barcode_Image"] = mybit;
其中dt是我绑定到报表的表,“Barcode_Image”是System.Byte [] 包含条形码图像的byte []形式的字段
我的网络配置中已经有Crystal Report Image处理程序。
Webconfig: 装配体的
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
System.web中的HTTPHandler
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" validate="false"/>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
System.webServer中的HTTPHandler
<system.webServer>
<handlers>
<add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
</handlers>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
注意:我正在使用visualstudio 2010
请指导我,我错了
答案 0 :(得分:0)
在Crystal Reports中打印条形码的最简单方法是将字符串或整数传递给报表,并使用条形码字体显示字段。这样您就不必担心将实际图像文件存储在数据库中或将所述图像数据传递给Crystal。