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

本文介绍了如何在VS2005中使用水晶报表动态批量打印从数据库获取的本地图片。通过创建DataSet,设置表间关系,并将图片转换为二进制数据填充到报表中,实现每个ID对应报表一页的打印效果。
摘要由CSDN通过智能技术生成

目的:从数据库中得到本地图片的路径,再将其打印到报表上,每一个ID查询出来的信息(包括多幅图片)对应报表中的一页

环境:VS2005+自带水晶报表

参考文献:http://babyt.cnblogs.com/archive/2005/04/21/142789.html 阿泰BLOG

遇到的问题:http://topic.csdn.net/u/20090925/16/1cf16b4d-e7a4-4d3c-a7c6-5850862cd5fb.html?71028

基本思想:在数据库里添加图片字段,SQL Server把它们称作 BLOB (二进制大型对象) 字段,将其映射到报表上

 

需要说明的是:下图中表UriResult1是强类型,也就是说如果要在该表手动添加其它表字段的时候,当联合查询数据库,并将查询

                    出来的值赋给UriResult1时候会报"未能启用约束.一行或多行中包含违反非空 唯一或外键约束的值",这个时候

                    可以采用弱类型,即手动生成UriResult1.如果UriResult1只对应一张表,则不会报错

 

这里就不介绍详细步骤了,只把核心的内容记录下

1.数据库用到的表

   ChemResult    SickInfo     UriResult

   由于图片不存储在数据库,但是为了显示在报表上,需要在某张表中添加图片的字段,作为映射用,这里在UriResult添加了6个图片字段

2.手动添加一个DataSet,取名为AveDataSet,其中AveDataSet.xsd文件如图一所示:

   AveDataSet.xsd

                                                              图一   

 

需要说明的是:如图所示,UriResult1为表UriResult的别名,是从服务器资源管理器里拖进AveDataSet.xsd里的

                                DataTable1为工具箱里拖进来的DataTable,其中的8个字段都是手动一行一行添加的

注意以上两个Table的字段名,以及格式都要统一,否则会报错的,而且还要添加他们的关系,字段也是一一对应

这里我设定的是 DataTable1为父表, UriResult1为字表               

3.打开报表,设定表的关系

   数据库连接             数据库表连接

                 图二                                                                         图三

    这里图二表示数据库连接,将数据集中的映射表DataTable1与数据库的三张表连接

          图三表示各表内连接的关系,每两个字段确定一条数据,这里特别提醒,不要有分支,否则报表会有很多不需要的数据显示

4.把数据库专家里面DataTable1的字段拖进报表的详细资料里面

                                                         数据库专家

5.实现的代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值