fastreport中合计的一个问题(没办法简短描述清楚) ( 积分: 50 )

  • 主题发起人 主题发起人 cnhotel
  • 开始时间 开始时间
C

cnhotel

Unregistered / Unconfirmed
GUEST, unregistred user!
原打印样式是:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
001 JHL 22*33 红 11件+8条 123
001 JHL 12*12 红 12件+25条 351
002 JHL 16*26 蓝 8件+20条 103
002 JHL 12*56 棕 20件+10条 305
客户嫌打印出来的重复信息太多,罗嗦,故修改为以下格式:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
22*33 11件+8条 123
12*12 12件+25条 351
002 16*26 蓝 8件+20条 103
12*56 棕 20件+10条 305
也就是把重复的信息尽量去掉不打印出来,这个问题基本上解决了,通过在该字段的beforeprint事件和adterdata事件中设置变量比较是否一样,一样就赋值为空...但还有个问题就是同一缸号的重量需要合计并显示出来!
我现在的处理方法是增加一个child2,加一个变量totalzl循环合计重量值,在判断缸号不一样的时候将child2显示出来,但是存在问题,就是最后一种缸号的合计没办法显示,可能是因为循环到最后一行而下面已经没有对比的缸号值,执行不到那里,所以我在程序中传递一个记录总数ADO的Recordcount值到fastreport中用来判断当前打印的行是否已经到了最后一行,到了最后一行也将child2显示出来,但没有达到我的效果:
现在打印出的具体格式如下:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
22*33 11件+8条 123
12*12 12件+25条 351
合计重量: 499
002 16*26 蓝 8件+20条 103
12*56 棕 20件+10条 305
按正常在002下面也要出现类似合计才正确,现在就是不能显示出来...

用fastreport带的交叉表可以实现上述功能,但比较丑陋不能调节表格大小等 :(
 
原打印样式是:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
001 JHL 22*33 红 11件+8条 123
001 JHL 12*12 红 12件+25条 351
002 JHL 16*26 蓝 8件+20条 103
002 JHL 12*56 棕 20件+10条 305
客户嫌打印出来的重复信息太多,罗嗦,故修改为以下格式:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
22*33 11件+8条 123
12*12 12件+25条 351
002 16*26 蓝 8件+20条 103
12*56 棕 20件+10条 305
也就是把重复的信息尽量去掉不打印出来,这个问题基本上解决了,通过在该字段的beforeprint事件和adterdata事件中设置变量比较是否一样,一样就赋值为空...但还有个问题就是同一缸号的重量需要合计并显示出来!
我现在的处理方法是增加一个child2,加一个变量totalzl循环合计重量值,在判断缸号不一样的时候将child2显示出来,但是存在问题,就是最后一种缸号的合计没办法显示,可能是因为循环到最后一行而下面已经没有对比的缸号值,执行不到那里,所以我在程序中传递一个记录总数ADO的Recordcount值到fastreport中用来判断当前打印的行是否已经到了最后一行,到了最后一行也将child2显示出来,但没有达到我的效果:
现在打印出的具体格式如下:
缸号 客户 规格 色别 件+条 重量
001 JHL 10*50 红 10件+20条 25
22*33 11件+8条 123
12*12 12件+25条 351
合计重量: 499
002 16*26 蓝 8件+20条 103
12*56 棕 20件+10条 305
按正常在002下面也要出现类似合计才正确,现在就是不能显示出来...

用fastreport带的交叉表可以实现上述功能,但比较丑陋不能调节表格大小等 :(
 
顶上去
弟兄们路过的帮顶啊~~
急~~
 
能不能使用groupheader按照“缸号”group一下,然后在groupfooter上面对“重量”进行SUM
 
看到过Demos中有这样的例子的,因为比较仓促也没有来得及测试...
因为用groupheader也涉及到控制每页打印行数及界面美观...
 
www.zptang.ys168.com
 
统一 ytt611
 
cnhotel:
老兄肯定是要用分组有方法解决的.
但是我和你遇到的问题是一样的,就是关于有了groupheader之后不知道怎么办?
希望能告诉
 
不清楚周海涛说的之后指什么。
不过cnhotel说的控制打印行数可以这么做:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3281057
也不知道对大家有没有有用,仅供参考
 
帮你顶一下,我也觉得非得用Groupheader不可,你用比较的方法不实在,也麻烦很多
至于怎样用Groupheader那就看你的了,我以前也用过类似的,而且还是两重groupheader
应该不难吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
843
import
I
I
回复
0
查看
763
import
I
后退
顶部