水晶報表顯示圖片

這種情況應該一般都是用的xsd做爲報表的數據源,通過以下的步驟解決這個問題:
1、在原有xsd的架構上增加一列imgdata,數據類型爲Base64Binary;
2、生成項目,重新指定報表數據源,將imgdata字段放入報表的相應位置;
3、代碼中,生成數據集時,查詢語句在原來的查詢語句基礎上增加一個空一字段imgdata如:
select   ....,cast(null   as   image)   as   imgdata   from....,
4、處理數據集,
foreach(DataRow   row   in   MyDataSet.Tables.Rows)
{
FileStream   fs   =   new   FileStream(row[ "imgpath "],FileMode.Open);
byte[]   buff   =new   byte[fs.Length];
fs.Read(buff,   0,   buff.Length);
fs.Close();
row[ "imgdata "]   =buff;
}
5、加載報表
CrystalReport1   rpt   =   new   CrystalReport1();
rpt.SetDataBase(MyDataSet);
this.CrystalReportViewer1.ReportSource=rpt;
或者
CrystalReportDocument   rpt   =   new   CrystalReportDocument();
rpt.Load( "../CrsytalReport1.rpt ");//這裏的路徑爲報表文件的絕對路徑
rpt.SetDataBase(MyDataSet);
this.CrystalReportViewer1.ReportSource=rpt;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章