2012-02-09 47 views
1

我知道有关于这个主题的类似问题,但不知何故我无法破解这个。Crystal Report法师没有显示

我GOOGLE了这个问题,并得到了大量引用,但没有他们的工作对我来说:-(

我创造,我将使用徽章打印的水晶报表。

一切都很好除了我想条形码的报告,该报告没有显示出来。

我创建这个条形码中运行,并将其保存在我绑定到报告中的数据表。

I K现在有两种方法可以做到这一点。

我能够使用OLE对象获取图像,方法是将对象的Graphic属性指定给包含图像路径的数据库字段。

但这个方法的问题是,我必须保存图像和徽章的数量可以达到10万,并且我不想在服务器上保存10万图像文件。

相反,我想去另一种方法,要绑定字节[]字段来报告,但不知何故,这对我没有用。

这是代码。

  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 [] 字段的表在我的web配置中报告图像处理程序。

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> 

的HttpHandler中的System.Web

<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> 

的HttpHandler在System.webServer

<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

亲切指导我,whee我要去错

+0

没有答案.. ?? :-( – Neelam 2012-02-09 11:23:59

+3

)您是否可以不将条形码作为一串数字字符传递给Crystal,然后使用条形码字体显示?这就是我一直处理Crystal中的条形码的方法 – 2012-02-09 15:59:10

+0

如果您从报告和过去复制图像链接它进入一个新的窗口是否产生了错误信息? – Alxwest 2012-02-10 17:30:30

回答

0

打印条形码Crystal Reports中的最简单方法是传递一个字符串或整数报告,并使用条形码字体显示该字段。这样,您就不必担心将实际图像文件存储在数据库中或将所述图像数据传递给Crystal。