如何在水晶报表里显示图象? 选择自 haibodotnet 的 Blog
来源:互联网 发布:数据备份方案模板 编辑:程序博客网 时间:2024/05/17 06:20
通常我们要在水晶报表里显示文本和数字数据。有时候,数据库里会包含图象数据,并且我们也希望在水晶报表里使用它。有很多途径可以在报表中显示数据驱动的图象
第一要确保图象具有足够的大小和质量。设法在报表里将高质量的大图象显示为简略图是没有意义的。使用图象编辑程序以合适的分辨率及大小创建你能够显示的图象。
图象的格式也很重要。虽然 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 库的一个标准功能。
- 如何在水晶报表里显示图象? 选择自 haibodotnet 的 Blog
- 如何在水晶报表里显示图象?
- 如何在水晶报表里显示图象?
- 如何在水晶报表里显示图象?
- 子报表概述 选择自 haibodotnet 的 Blog
- 经典水晶报表设计——列非常多,横向篇幅非常长的表 选择自 haibodotnet 的 Blog
- haibodotnet的专栏(水晶报表)
- 水晶报表中子报表的数据绑定问题 选择自 haozidong 的 Blog
- web下水晶报表的使用! 选择自 Jeacey 的 Blog
- java中如何向水晶报表传参数--补充"haibodotnet的专栏"中"传参数"的内容
- 在水晶报表中如何显示Checkbox的样式
- 如何操作水晶报表里的对象
- 怎样在水晶报表里判断是否是空值(水晶报表 汇总求和 空值 显示为 0.00 的问题)?
- CS下在C#里调用显示水晶报表
- TIPTOP GP5打印报表时如何在水晶报表中显示服务器上的图片
- 如何注册VS.net里的水晶报表
- [VB.NET]如何在水晶报表里设置自定义纸张,如何在WinXP里设置纸张?
- 水晶报表在大型WEB内部管理系统里的滑铁卢
- Ollydbg Anti Anti Hardware Breakpoint Plugin
- C#中调用Windows API
- Rundll32.exe介绍
- 用C#和本地Windows API操纵系统菜单
- Facelets 非常适合 JSF
- 如何在水晶报表里显示图象? 选择自 haibodotnet 的 Blog
- inno setup的一点用法
- 使用Fileupload上传组件
- 数据绑定方式及效率
- web service 应用一[HelloWorldJacky]
- 经历篇
- 比较两个Word文档内容的差异
- 整整1年了...
- 全国各省/市/民族