FastReport使用求解,制作类似存则的追加打印,希望能有详细的设计和实现步骤说明 2003-05-30问题已经挂了挺久了,不知是因为我没有经常提前的缘故,

  • 主题发起人 主题发起人 siyan
  • 开始时间 开始时间
S

siyan

Unregistered / Unconfirmed
GUEST, unregistred user!
FastReport使用求解,制作类似存则的追加打印,希望能有详细的设计和实现步骤说明 2003-05-30问题已经挂了挺久了,不知是因为我没有经常提前的缘故,还是问题实在太过低级,应者寥寥,实在令人伤心!唉 (300分)<br />先说一下我自己的初步想法:
我在要打印的表中增加一个标识是否打印的字段,在报表中定义两个主项数据的band
第一个取打印过的数据,但Memo【显示】属性设为False
第二个取未打印的数据,这样就可以实现记录的过滤与打印时的定位问题
然后在打印完之后,修改打印的数据的是否打印标识
这一切初看之下十分简单,然而,问题是
对这些数据,我不是只需要打印一张报表就行了,有两张表需要打印这些数据时,
我就只好在数据表中对新的报表再增加一个标识,然后按照前一个报表的做法做相应的控制,
如果还有第三张,那我是否加第三个标识,如果还有其他的......,我简直不敢想象了
而且在打印完修改打印标识,也不是看上去那么简单的问题,如果打印出错了怎么办,
我怎么知道哪些打了哪些没打,为此,我还得为客户提供一个对打印标识进行维护的程序,来进行纠错处理
那么为这两个报表,花费的精力也太大了,以后的维护与扩展恐怕都不会太容易吧
不知道各位有什么好的建议,请多多指教
 
你可以增加一个TfrDialog,在其中对要打印的部分进行控制...
 
你有没注意,在存折的左边或者右边有一列的数字,那就是记录已打印到第几行的
(这是我的猜测)
如果我的猜测没错的话,操作人员只要在打印前输入从第几行数据打起不就一切OK!
而且解决了你所说的另打一张表,还可以从任意行打起呢!
祝你好运!!

 
不好意思,大富翁老上不了,所以现在才回帖
每次打印前都要让用户输入,恐怕用户不见得会愿意吧
我的想法是减少人工干预,当然在必要时也可以干预
 
如果不人工干预,那可就麻烦了,
照你的说法,还得用事务处理呢,要不然打一半卡壳了,你还把所有的
字段都更新了,那也不对!
不过我想你可以另外再建一个表,专用来保存每个存折的每一个报表打印到第几行!
例如 字段1=存折帐号
字段2=打印表号
字段3=打印到第几行
你每次打印完后来更新这个表就OK啦!
至少不要象你所说的那样,加一个打印报表就加一个字段!



 
接分[:D][:D][:D]
 
给个参数给FastReport让它从第几行开始打。
 
没有满意的答案,再提一下
 
作这种玩意儿,还是自己写代码好些,省得去研究控件,拐弯抹角的,别扭!
 
to wfzha
全部代码都自己写,恐怕工作量也太大了吧
到时做不完岂不是找K
 
siyan:
按我上面的说法,是可以实现的而且不麻烦,我就已经实现了!
 
to ulingjcj
谢谢你的关心,事实上我已经按照我自己的想法实现了,我也知道你的实现不难
只是要用户干涉不是一个好的方法,毕竟用户水平不一样,所以我没有用你的方法
我之所以不结束帖子而继续提问,只是想知道,除了我和你所说的方法
是否还有其他更好的解决思路
让我再等几天吧,几天之后就结贴
 
to siyan:
你既然已实现了,gx
不过我是用我所说的第二种方法实现的,这种方法已经不用人工干预了!
只要在程序中知道打印了几行后,去更新后台的数据就OK了!
第二次要打的时候从数据库中得到已打印行数,即这次的打印起始行
不用人工干预!
 
能把步骤详细的解说一下吗
 
建一个表
字段1=存折帐号
字段2=打印表号
字段3=打印到第几行
如: 字段1, 字段2 字段3
10210 1 12 //存折帐号为10210的存折,的第一个打印表,打到12行
10210 2 13 //存折帐号为10210的存折,的第二个打印表,打到13行
10211 1 9 //存折帐号为10211的存折,的第一个打印表,打到9行
这就实现了一个存折帐号可以打印多份,并且每份的已打印行数都不一样.
并且每个帐号要打印多份的话只要在这个表中插入一条记录即可

每次打印之前根据帐号及相应的打印份数,从表中的字段3得到已打印的行数,
然后从该行打起,
当每次打印完相应帐号的打印完后就更新字段3的值.
 
谢谢ulingjcj的热心,既然没有其他人关心这个问题,那就结束吧
 

Similar threads

回复
0
查看
863
不得闲
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
后退
顶部