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

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

图象的格式也很重要。虽然 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 库的一个标准功能。

如何在水晶报表里显示图象?相关推荐

  1. 水晶报表Crystal 语法 实用字段编辑

    公式字段 转日期文本 totext ({IC_AvailabilityContract.Thedatethecontractissigned},"yyyy年MM月dd日") 产品图 ...

  2. 自定义水晶报表的显示

      自定义水晶报表的显示,比如隐藏工具栏,让报表左对齐,去除水晶报表的公司LOGO等---(新作:海波.NET)     -------------------------------------- ...

  3. 水晶报表常见问题整理之一(20050417)

    Q1:如何控制水晶报表在WEB页面上显示的大小?  1:水晶报表显示的大小不是以你内容的多少而是以报表纸型的大小为准的  所以你首先应该设置一个大小合适的纸型  http://www.cnblogs. ...

  4. .Net水晶报表的使用总结

    1.按照正常的方法,新建一个报表文件,和数据库中的一张表关联好,设计好报表式样    和数据库关联时可以先建立一个access文件,做一个假的数据库 2.动态绑定数据源和动态绑架数据以及参数的方式   ...

  5. 自定义水晶报表的外观

    1.外观: 设置 Crystal Report Viewer 的属性: BestFitPage 布尔值.获取或设置页面视图是大小合适还是用滚动条进行裁剪. 配合设置 Width.Height 来实现无 ...

  6. 【水晶报表内功心法】--PUSH模式样板招式

    索引 .[水晶报表内功心法]--序言 .[水晶报表内功心法]--推拉之间 .[水晶报表内功心法]--PULL模式样板招式 ======================================= ...

  7. 在水晶报表中使用Code128条形码

    1.将code128条码字体拷贝到C:\Windows\fonts下 下载地址是 http://download.csdn.net/detail/easyboot/9452777 2 .在水晶报表里的 ...

  8. access数据库使用水晶报表(PUSH)推模式实现多数据源含子报表的订单打印

    最近改造一个小型购物网站,要求使用水晶报表实现订单打印,本人对水晶报表从一无所知到,到最终弄出来整整花了一夜的时间,特此记录下此文和大家共享. 关于水晶报表更详细的介绍建议大家可以参考阿泰的博客:ht ...

  9. 水晶报表调用存储过程的问题

    前言:现在碰到了水晶报表调用存储过程的问题,问题是这样的:ERP软件里有很多的数据表,有些报表的字段要从多个数据表里取数据,并且要对数据进行处理,来作为报表的字段,我看了些资料,说可以通过存储过程来取 ...

最新文章

  1. SAP零售行业解决方案初阶 7 - 自动补货
  2. IOS开发之----异常处理
  3. 每日两SQL(1),欢迎交流~
  4. linux 字符串 空,linux – bash空字符串/命令
  5. css动画改变高度有过渡效果,css3-形变、过渡、动画
  6. springMVC操作mongoDB增删改查
  7. oracle恢复RAC到单机
  8. 有关Silverlight3.0在浏览器外运行的问题
  9. python rabitmq_3、Python结合RabbitMQ实现消息传递
  10. sql server小知识
  11. springmvc 使用Jackson的配置
  12. 大数据智能运维平台方案-1
  13. js获取时分秒数据格式为YYYMMDDHHmm方法
  14. 稻盛和夫「活法」| 读书笔记系列01
  15. 市场上各种深度摄像头测试之华捷艾米A100
  16. 从今起,我蹲马步,苦练基本功
  17. 【CF1280】C. Jeremy Bearimy(贪心)
  18. 记一次el-select远程搜索默认数据回显问题
  19. CVPR2018——以属性为指导的无监督行人重识别
  20. 最全elk7.1.1单机配置: ELK+Filebeat+Kafka!

热门文章

  1. Java游戏服务器架构的并发问题及解决方案
  2. Linux下screen命令实操
  3. 力扣88 - 合并两个有序数组【归并排序思维】
  4. oracle里有没有stuff,STUFF函數在SQL Server和ORACLE中
  5. sdlc esd oracle,SDLC-PCIE高速同步串口卡
  6. ADF用户页面行为监控
  7. 【不全】网络工程师术语表
  8. Javascript笔记大全01,会持续更新~
  9. 智能语音机器人语音识别系统
  10. Ubuntu下安装NS-3图文教程