Office中国论坛/Access中国论坛

标题: 化整为零——也谈报表打印 [打印本页]

作者: roych    时间: 2011-8-12 11:58
标题: 化整为零——也谈报表打印
本帖最后由 roych 于 2011-8-12 11:59 编辑

       本来报表打印没什么好说的,关键在于排版,特别是印染行业。设计得好,那么这张报表就是完美的配方单;设计不好,那么这张报表就是天书。       这份堪称完美的报表(倒是我做的主界面很简陋),是在一家染化料公司上班的朋友设计的。他却告诉我遇到了些问题。主要在于染不同的材质,所需的染料助剂不同,因此有些需要一张配方单,另一些则需要两张。
       在报表中,往往都是按记录条数来打印的,所以他这个要求看起来不太合理。通常我们可以这样考虑:
       1、先全部打印一次,再把需要两张的打印一次。缺点:需要重新把两张的合在一起,增加工作量。
       2、两张和一张的分开打印。缺点:需要分批次,如果有急单,可能要分几次。
       那么,有没有完美些的办法呢?答案当然是:有。那就是化整为零。
       化整为零的思路是,每次只打印一条记录,根据记录类型来确定打印几次,然后依次把记录全部打印完毕。
       为了达到每次打印一条记录(即一张订单),我们需要进行报表打印筛选,并且每次打印完毕后就要筛选下一条记录。因此,数据源几乎是随时都在变化的,为此,我们开始考虑用ADO。打开记录集后,利用MoveNext的方法,可以随时获取不同的记录。
       至此,思路已成型,接下来就是代码的问题(内有注释)了:
       [attach]46396[/attach]
       实例不一定适合你,但我依然希望报表的设计,还有思路,可以给你一定的参考价值。




作者: asklove    时间: 2011-8-12 14:11
下了就得顶
作者: cjf78    时间: 2011-8-12 16:55
我要顶一下
作者: ycxchen    时间: 2011-8-12 17:16
谢谢分享,学习!
作者: xiaowuo2    时间: 2011-8-12 21:12
下完再顶,谢谢了
作者: tmtony    时间: 2011-8-13 11:07
谢谢分享,中国人做报表是世界高手。
作者: goto2008    时间: 2011-8-25 21:54
谢谢分享
作者: yodong    时间: 2011-8-29 09:13
学习一下
作者: changweiren    时间: 2012-2-21 22:51
谢谢分享,高手作品
作者: 灰太郎    时间: 2021-3-1 20:47
11111111
作者: 灰太郎    时间: 2021-3-1 20:47
1111111
作者: 灰太郎    时间: 2021-4-9 18:26
111111
作者: 灰太郎    时间: 2021-9-13 21:33
顶一下
作者: 灰太郎    时间: 2021-9-13 21:33
顶一下,1111




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3