日期:2014-05-20  浏览次数:20740 次

大家对RDLC单据的连打实现是什么思路
单据连打,也就是将几十上百甚至更多的表单(订单啊出库单啊等等)一次全部预览出来,每张单据一个分页(当然如果一个单据内容很多,要自动分成多页),然后使用针式打印机连续打印出来。

主要应对的是配送类的业务,因为业务的时间及时性需求,一定要把单据快速连续的打印出来,所以不能一张一张的打印。如下例示:

table1存有:单号、客户、单据日期、地址、备注等
table2存有:货品代号、名称、规格、数量、单价、金额等
要实现如下打印格式(表头中有N个单号,即一次要打印N张SA单):

  SA单
-------------------------------------------------
单号:SA001 客户:XXX 单据日期:2010-01-01
地址:XXXXXXXXXXXXX 备注:XXXXXXXXXXXXXX
-------------------------------------------------
存货代号 存货名称 数量 单价 金额
001 笔记本 1 6000 6000
002 台式机 1 3500 3500
--------------------------------------------------
合计: 2 9500
--------------------------------------------------
  第1页 共3页 总850单


而这样的单据打印,在数据上面牵最少涉及到两个数据表,table1(主表)和table2(明细表),当然还会有table3、4、5等辅助信息表。如果是单张打印,我们可以把两个表的数据分别做成两个数据源添加到rdlc里面。

我开始的思路是想把多张单据的数据源循环依次添加绑定到rdcl,但是刷新后reportveiwer里面只能显示最后一张单据的信息。无法实现多张连打。

后来我在后台把多个数据源合并成了一个数据源,也就是在把多个datatable里的信息合并成了一个,用sql把几个表join起来,然后在rdlc里面用表格里的单号进行分组、分页,并在单号组里面添加主表信息充当表单的头部,明细数据不变。
合并后的datatable如下示意:
table_all:单号、客户、单据日期、地址、备注、货品代号、名称、规格、数量、单价、金额等
这样可以实现多张连打了,但是对于每张一页的固定行数又实现不了,因为没办法使用总行数计算,总行数是几百张单据的所有行数。

我想应该是我基本功太不扎实,所以思路总是被阻碍,各位有没有类似的需求,是怎么实现的,或者可否给敝人提供些思路,感激不禁。


------解决方案--------------------
设计模板的时候,把每一页都有内容归入页眉或者页脚,然后利用页面设置控制高度,这样的话到了固定的行数,高度到了,它就自动分页了。
这是一个简单建议,里面可能涉及到的数据源的分配问题。我觉得归入页眉或者页脚的是应该是一个数据源,具体的记录是一个数据源,两个就可以了。
------解决方案--------------------
哥们,这问题解决没? 遇到分组问题,请问你是怎么做的?
------解决方案--------------------
用List循环,设置好页面大小就可以了。
------解决方案--------------------
在设计视图中拖一个List控件,把所有出库单的数据设置成数据源,就会自动循环了。
------解决方案--------------------
我觉得你这个可以试下·插入 子报表 ·