本文为解答该贴所做:http://topic.csdn.net/u/20090524/15/911fd15a-32c6-4be9-9aa1-3ee95365e7e3.html 
并没有什么新内容,主要是如何读取本地图片显示在报表中。
如果是CR XI及以上版本,可以用更简便的方法,参考:水晶报表图片动态加载的另一种简单方案
本文的方法是:水晶报表中如何动态加载图片(图片文件版本及数据库版本) 中的图片文件版本。
本文适用于VS2003及VS2005自带版本的水晶报表,当然同样适用于CR XI及以上版本,就是烦了点。
本文使用VS2005及自带版本的水晶报表。

在这里,我把命题重新提炼一下:
已经有一个完整的报表,现在报表需要加载一个本地磁盘图片做为logo。报表中的logo随着本地图片的变化自动变化。
一般我们通过插入一个pictureobject来插入磁盘图片,但是插入后,图片就成为报表的一份,达不到变化的目的。

1:首先我们已经有了一个单表的完整水晶报表应用

2:为了能挂接我们的本地图片,在dataset里新建立一个表mylogo。
里面放上两个字段,字段类型为System.Byte[]或System.sByte[]
注意,默认类型里只有System.Byte和System.SByte,要自己输入的。

这个mylogo就是一个中介,我们把本地图片读到这个表里,水晶报表从这个表里读到图片显示。

3:在现有报表里加入一个子报表,数据源就是这个mylogo.

把两个字段拖到子报表上。

4:代码段是这样的

 1  //设置数据源信息
 2         DataSet1 ds1 = new DataSet1();
 3         OleDbDataAdapter da = new OleDbDataAdapter();
 4         String connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath ("~/app_data/test.mdb")+";";
 5         OleDbConnection cn = new OleDbConnection(connstr);
 6 
 7 
 8         //获取记录集,注意,最终获取的记录集需要与xsd的结构一致!      
 9         da = new OleDbDataAdapter("SELECT EmployeeId1 as EmployeeId,EmployeeName1 as EmployeeName From Employee1", cn);
10         da.Fill(ds1, "Employee");
11 
12         //把本地图片先写入到数据集
13 
14         //将图片读到stream,并转换为byte[]
15         //图片1
16         FileStream fs1 = new FileStream(@"c:\1.bmp", FileMode.Open, FileAccess.Read);
17         BinaryReader br1 = new BinaryReader(fs1);        
18         byte[] bt1 = br1.ReadBytes((int)fs1.Length);
19         //图片2
20         FileStream fs2 = new FileStream(@"c:\a2.jpg", FileMode.Open, FileAccess.Read);
21         BinaryReader br2 = new BinaryReader(fs2);
22         byte[] bt2 = br2.ReadBytes((int)fs2.Length);
23         
24         fs1.Close();
25         fs2.Close();
26         //写入到ds1中(仅1行)
27         ds1.myLogo.AddmyLogoRow(bt1, bt2);
28        
29 
30         //以上为数据部分,与报表无关
31         //-----------------------------------------------------------
32         //以下为报表部分
33 
34         //使用报表对象加载报表
35         
36         string reportPath = Server.MapPath("~/app_data/crystalreport1.rpt");
37         myReport.Load(reportPath);
38         //绑定数据集,注意,一个报表用一个数据集。
39         myReport.SetDataSource(ds1);
40         CrystalReportViewer1.ReportSource = myReport;

5:效果是这样的

为你的水晶报表装载本地图片相关推荐

  1. winform水晶报表中添加图片

    文章目录 前言 一.VS中找不到ReportView 二.使用步骤 1.直接拉取控件到窗体 ​编辑 2.添加参数 总结 前言 应用场景:在做一个巡检机器人项目时,对于巡检结果,需要在Winform端显 ...

  2. 水晶报表中动态显示图片

    1.在原有xsd的架构上增加一列imgdata,数据类型为Base64Binary; 2.生成项目,重新指定报表数据源,将imgdata字段放入报表的相应位置; 3.代码中,生成数据集时,查询语句在原 ...

  3. VS2005水晶报表发布

    引子 http://blog.163.com/lxg_5027/blog/static/3921253200931510209288/ 今天在做项目时,用到了vs的水晶报表, 在本地发布都可以看,但放 ...

  4. Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 二)...

    在Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据一)中,解释了如何把Crystal Report整合到Sharepoint ...

  5. 水晶报表 动态批量打印本地图片

    目的:从数据库中得到本地图片的路径,再将其打印到报表上,每一个ID查询出来的信息(包括多幅图片)对应报表中的一页 环境:VS2005+自带水晶报表 参考文献:http://babyt.cnblogs. ...

  6. C#实现调用打印机(打印字符串、打印绘图、打印图片),还差打印水晶报表

    C#实现调用打印机(打印字符串.打印绘图.打印图片),还差打印水晶报表 目的:调用打印机的使用 缺陷:打印的对象不全(还差打印水晶报表),不能实现在插件绘图板中画什么打印什么 改进:同缺陷,希望朋友们 ...

  7. 水晶报表设置图片高度与宽度

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) {//实例化水晶报表信息 ReportDoc = new ...

  8. fastreport打印指定路径图片显示不出来_报表工具中图片文件怎么展示---本地图片--网络图片--数据库图片...

    用于报表展示的图片来源有多种,如:数据库的图片字段.服务器本地图片.网络图片等,因此,报表工具也针对多种图片来源提供了多种多样的处理方式. 下面从不同的图片来源角度,举例介绍报表工具如何设置呈现. 图 ...

  9. 水晶报表动态加载磁盘图片

    1.首先,我们先创建一个DataSet.xsd文件,如下图所示,这是一个表 2.查看此表的代码,注意字段LIMG的数据类型为base64Binary. <?xml version="1 ...

最新文章

  1. matlab有没有查找替换,matlab-字符查寻与替换
  2. Mac OS X如何进行字体管理
  3. 注册与验证码php源代码,PHP验证码处理源代码
  4. 基于heartbeat v1+ldirectord实现LVS的高可用
  5. 技术实践 | 网易云信视频转码提速之分片转码
  6. 管程,进程及线程之间的区别
  7. 困了。还得背课文。变词型
  8. word2010添加b5纸张大小_纸张幅面规格尺寸你了解吗?
  9. python中的 同步与异步 互斥锁 和 死锁
  10. mysql第五章项目二_高性能MySQL笔记 第5章 创建高性能的索引
  11. HDU 2829 Lawrence
  12. window.location.reload(false);window.location.reload(true);history.Go(0)区别
  13. Illustrator 教程,如何在 Illustrator 中创建颜色渐变?
  14. HttpClient 学习整理【转】
  15. PGSQL触发器实例
  16. gif动图怎么制作?怎么截取视频做成gif动图?
  17. Allegro导出pdf的两种方式
  18. survival cutoff值
  19. 全球及中国汽车扬声器粘合剂行业市场发展状况与竞争格局分析报告2022-2028年
  20. 公众号h5拼团购买业务梳理

热门文章

  1. python中ttk和tkinter_Python tkinter与ttk日历
  2. python3笔记_python3基础笔记(一)
  3. bootstrap的日期选择器 完整源码demo附效果图
  4. 源码推荐:仿写映客直播 ,快速切换主题 ,星星评分控件,表格样式,可以横向移动的表格, 仿微信键盘-
  5. 我了解到的新知识之——电热水器用电安全
  6. 忘记Rxjava吧,你应该试试Kotlin的协程
  7. mui 微信支付 与springMVC服务器交互
  8. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
  9. Linux下模拟RAID5实现磁盘损坏,数据自动切换到备份磁盘上
  10. 从XXX 产品的失败谈起