Step1:数据库文件版本
如果你在数据库中采用了二进制字段存储图片文件
微软 Access 里这些字段叫作 OLE 字段,而Oracle和SQL Server把它们称作 BLOB (二进制大型对象) 字段
那么在报表上显示出来就非常之简单
因为之前我没有做过类似的显示图片文件的报表,等我做出来之后,我自己都乐了
其实对这种二进制形式来说,跟普通的字段是一样的,拖到模板上就行了,呵呵
Setp2:下面我们来做一下加载磁盘上的图片的程序
其实有了上次《就是先创建一个跟数据库版本一致的报表,当然是使用人见人爱的Ado.Net的方式
自己构造一个DataSet,把本地图片读成二进制流写进去
然后将这个DataSet推给报表就行了
我使用了水晶报表自己带的示例数据库里面的"雇员表"
看一下结构,主要是看一下各字段的格式,因为我们在创建DataSet的时候进行对应
特别注意下那个图片字段的格式,在VB.Net里我们可以用Byte来与之呼应
模板文件如下,没啥特别
代码如下,有详尽注释。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
运行效果
后记1:
我参考了海波的《利用数据集在水晶报表中显示图像的 .NET 程序教程 》
http://blog.csdn.net/haibodotnet/archive/2004/04/12/21570.aspx
里面是用子报表实现的,比较巧妙
大家可以参考一下,其中也有个VB.Net的例子
http://ftp1.businessobjects.com/outgoing/products/Devzone/vbnet_win_DynamicImage.zip
后记2:
经过实验,这个方法只能正常显示BMP/JPG图片,Gif就显示不出来
而且其大小似乎是固定的,不能随着图片的大小自动变化
所以这就要求你的图片尺寸一致
本文中的完整代码请在此处下载
https://files.cnblogs.com/babyt/CR_DynLoadPics.rar