水晶报表显示图片
2009-10-28 11:11
323 查看
这种情况应该一般都是用的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;
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;
相关文章推荐
- 水晶报表--显示图片
- 水晶报表中显示动态图片
- 水晶报表图片不显示两种问题分析及解决方法
- 水晶报表显示动态图片
- 使用了 httpmodule 水晶报表 ,水晶报表的图表图片无法显示
- 窗体间传送图片并显示在水晶报表上
- VS2005在水晶报表中如何显示数据库中保存的是图片路径的图片
- 在水晶报表中动态显示任意格式的图片
- C#水晶报表显示sqlserver2000储存的图片 C#水晶报表动态显示sqlserver储存的图片
- 水晶报表图片不显示
- 关于水晶报表设计中 根据条件显示与隐藏图片
- 水晶报表 动态控制图片显示 Changing pictures dynamically in Crystal Report
- TIPTOP GP5打印报表时如何在水晶报表中显示服务器上的图片
- 【水晶报表之图片篇-b】 CR 11以下版本动态显示图片(数据库保存图片路径)
- 水晶报表发布后工具栏图片无法显示的解决方案
- 水晶报表中如何动态加载图片时显示不了图片的可能原因之一
- 解决水晶报表无法显示图片的方法
- 水晶报表:图片显示
- 水晶报表部署后不显示图片的解决方法
- 如何在水晶报表中动态显示任意格式的图片?