如何在水晶报表里显示图象?

原创 2004年01月08日 11:39:00

通常我们要在水晶报表里显示文本和数字数据。有时候,数据库里会包含图象数据,并且我们也希望在水晶报表里使用它。有很多途径可以在报表中显示数据驱动的图象

第一要确保图象具有足够的大小和质量。设法在报表里将高质量的大图象显示为简略图是没有意义的。使用图象编辑程序以合适的分辨率及大小创建你能够显示的图象。

图象的格式也很重要。虽然 BMP 是一种相当通用的格式,但是它需要占用巨大的空间。因此,将图象转换为类似 JPG 或者 GIF 的压缩格式是合乎需要的。水晶报表支持所有这些格式。

接下来要解决的问题是如何将图象放入水晶报表。在过去,我们以为唯一的答案是使用数据库途径。但是,还有许多其它途径。让我们看一下其中的三种途径……

1. 数据库解决方案:实现容易,但是需要非常大的磁盘空间。

你可以在数据库字段里存储图象数据。微软 Access 里这些字段叫作 OLE 字段,而 Oracle 和 SQL Server 把它们称作 BLOB (二进制大型对象) 字段。

该技术的一个实例是水晶报表提供的 Xtreme 实例数据库。在“雇员”表里有一个包含雇员照片的字段,名字是“雇员照片”。你只需将这些字段插入报表,与使用其它字段的方式相同。

好的一面,你可以直接将图象字段与数据库数据联系起来。不好的一面,这些图象将占用相当大的数据库空间。这意味它们也会对性能和存储有不利影响。

2. 开发者解决方案:功能有限并且需要一个开发人员。

在一些水晶报表图书里,我们读到了如何用编程语言(比如:Visual Basic)写一个水晶报表查看器。在程序里,你能够捕获类似“格式化节”这样的事件,然后改变报表里的 OLE 对象以加载不同的图象。

好的一面,这可以让你松散耦合数据和图象。不好的一面,这需要开发复杂的程序,而且它只能与特定的报表一起使用。我们正在考虑开发这种查看器,直到偶然碰见了如下两种技术。最近,我们听说在水晶报表 9 里这些格式化事件对开发者将不可用。

3. 驱动器解决方案:快速灵活的第三方产品。

水晶报表 8 和 9 里有一个伟大的特性就是你可以使用 COM 数据源。这意味着你能够用程序代码创建记录集,然后把它用作报表的数据源。

我们开发了 cViewIMAGE (http://www.crystalkeen.com/tools/cviewimage.htm),一个可以从任何 ODBC 表里读取三个字段(标识符,描述和图象的文件名)的 COM 数据源。该 COM 数据源将创建第四个字段,包含文件名对应的图象。在子报表里使用它可以显示图象。

该方案的最大好处在于整个记录集被装入内存,因此可以快速加载和处理图象,而且对于使用那些图象和数据库字段,它也很灵活。它只需要一个 ODBC 数据源。

不好的一面,它需要进行一些初始化设置以定位图象,但是我们已经使驱动器足够灵活,因此使你能够支持多种配置。我们甚至可以创建扩充版本以包含表里的其它全部字段。让我们知道这样做是否有价值。

4. 分发解决方案:安装 UFL(用户功能库)既简单又便宜。

另外一种解决方案就是导出到 HTML,使用我们的 SMTP用户功能库 (User Function Library) (http://www.crystalkeen.com/tools/mailfunctionlibrary_smtp.htm)。我们还有其它一些用户功能库,可以将输出发送到 Outlook,XML 或者磁盘文件。有些人把这称作“报表脉冲”,在这里你的报表引擎使用功能库生成多种输出文件。

目前我们有一个 SMTP 库可以在报表处理时将图象嵌入 HTML 消息。这是我们的 SMTP 库的一个标准功能。

利用数据集在水晶报表中显示图像的 .NET 程序教程

目录描述文件列表步骤Form1.csVB.NET 版描述该 C# .NET Windows 程序演示了如何创建数据集,并将图像添加到数据集,以及在运行时将数据集传递到子报表。文件列表- bin/Deb...
  • haibodotnet
  • haibodotnet
  • 2004年04月12日 12:42
  • 23169

【水晶报表之图片篇-c】 CR 11版本动态加载的另一种简单方案

2005年我在《水晶报表中如何动态加载图片(图片文件版本及数据库版本)》 提供的方法中,用了编程的方法,虽然也实现了,但是比较繁琐 地址: http://www.cnblogs.com/baby...
  • findsafety
  • findsafety
  • 2015年03月24日 16:09
  • 2859

解决水晶报表无法显示图片的方法

 水晶报表能显示表格,但是图片显示不出来,解决办法如下:在网站根目录下新建虚拟目录:crystalreportwebformviewer2路径为:x:/Program Files/Microsoft ...
  • kgdiwss
  • kgdiwss
  • 2006年08月29日 12:04
  • 2849

水晶报表中插入图片,已验证成功,就一个简单的方法。

  • 2013年05月29日 16:48
  • 22KB
  • 下载

水晶报表插入图片,一学就会,超级简单

  • 2014年08月25日 14:48
  • 22KB
  • 下载

为你的水晶报表装载本地图片

本文为解答该贴所做:http://topic.csdn.net/u/20090524/15/911fd15a-32c6-4be9-9aa1-3ee95365e7e3.html  并没有什么新内容,主...
  • findsafety
  • findsafety
  • 2014年11月13日 17:03
  • 1959

水晶报表中显示动态图片

Normal07.8 磅02
  • gong_hui2000
  • gong_hui2000
  • 2008年06月18日 11:08
  • 6497

水晶报表

主要思路: 将图片以二进制流放入 DataTable 中,传入报表中显示。   例子: 1. 建立xml表结构定义:XSDSchema1.xsd 元素(Element):El...
  • a6225301
  • a6225301
  • 2013年05月17日 10:40
  • 782

在水晶报表上添加BMP图片

http://www.myexception.cn/c-sharp/66116.html http://www.cnblogs.com/oosnoopy/archive/2005/12/17/299...
  • SunCherryDream
  • SunCherryDream
  • 2015年04月29日 21:57
  • 566

如何在水晶报表里显示图象?

通常我们要在水晶报表里显示文本和数字数据。有时候,数据库里会包含图象数据,并且我们也希望在水晶报表里使用它。有很多途径可以在报表中显示数据驱动的图象第一要确保图象具有足够的大小和质量。设法在报表里将高...
  • haibodotnet
  • haibodotnet
  • 2004年01月08日 11:39
  • 3668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在水晶报表里显示图象?
举报原因:
原因补充:

(最多只允许输入30个字)