none
asp.net中在水晶报表中动态加载图片不行,望高手指点! RRS feed

  • 问题

  • using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using CrystalDecisions.CrystalReports.Engine;
    using System.IO;

    public partial class _Default : System.Web.UI.Page 
    {
      protected void Page_Load(object sender, EventArgs e)
      {
      DataSet ds = new DataSet();

      ds.Tables.Add("NewTable");

      ds.Tables[0].Columns.Add("id", Type.GetType("System.Int32"));

      ds.Tables[0].Columns.Add("picture", Type.GetType("System.Byte[]"));

      ds.Tables[0].Columns.Add("name", Type.GetType("System.String"));

      string picPath = @"F:\ddd.jpg";

      AddOneRow(ds.Tables["NewTable"], "1", picPath, "Jackey");

      CrystalDecisions.CrystalReports.Engine.ReportDocument doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();

      doc.Load(Server.MapPath("CrystalReport.rpt"));

      doc.SetDataSource(ds.Tables["NewTable"]);

      this.CrystalReportViewer1.ReportSource = doc;
       
      }

      public void AddOneRow(DataTable tbl, string c1, string c2, string c3)
      {

      FileStream fs = new FileStream(c2, FileMode.Open);

      BinaryReader br = new BinaryReader(fs);

      DataRow row = tbl.NewRow();

      row[0] = c1;
     row[1] = br.ReadBytes((int)br.BaseStream.Length);

      row[2] = c3;
       
       
      tbl.Rows.Add(row);
      fs.Close();

      }

       
    }
    2010年11月13日 3:19

全部回复

  • 你好:

    请问出现什么样的问题。图片控件处显示为空吗?

    请尝试断点跟踪代码并查看报表的数据源中是否包含图像数据。 


    I am here!
    2010年11月16日 2:45
    版主
  • 图片控件显示处为空,我在设置报表数据源之前先输出了一下,发现里面是存有数据的,而且能够用response.binarywrite方式输出图片,为什么在报表中就不显示呢?而且表头的字段名也不显示(比如说图片字段是picture,字段名是picture,这个字段名picture也不显示)。
    2010年11月17日 1:17
  • 我在CSDN论坛中发贴,网友说在winform中试了是没有什么问题的,为什么在asp.net中就不行呢?
    2010年11月17日 8:43
  • 怎么没给解决的啊,真是郁闷,web中动态加载和打印照片难道就这么难吗?
    2010年11月25日 13:58