QuickReport统计打印问题!(愿出300分)(200分)

  • 主题发起人 主题发起人 hikehilter
  • 开始时间 开始时间
H

hikehilter

Unregistered / Unconfirmed
GUEST, unregistred user!
我用QuickReport设计报表,要求是这样的,在每页有一个每页小计,在打印到最后一页时,
有一个总计,这时候要求总计要在每页小计的下面!
我本来的设计是每页小计用PageFooter来实现的,总计用Summary来实现的!现在如何实现
每页总计在在每页小计的下面!!!
急!望高手们指教一二
 
QuickReport不好用。其他打印控件比它好多了。
FastReport、 ReportBuild。
 
总计应该只有一个,而不应该每页都有。
可让最后一页的页计不显示。
 
关键是要用这个QuickReport来做,谁能做得出来啊!!!
 
我发现几乎没有哪个控件能很好的完成每页小计的功能!
 
用两个PageFooter,一个显示每页小计(A),一个显示总计(B),
(B)在(A)之下。
if LastPage then
(B).Enabled:=True
else
(B).Enabled:=False
 
建议使用水晶报表
 
方法1:(变通方法)
增加一个 页码 字段,用程序根据需要分好页,比如30个记录为一组,
前30个记录的 页码字段值 为1, 下30个记录值为2, 依次类推...这样按页码分组
,在组脚求合计,即可达到求页计的目的。
方法2:对printer.canvas 编程,通过对字段循环、及每页记录数循环,当然这就没用
quickreport, 还要编程实现预览,最麻烦的是比例变化。这还要考虑打印机的分辨率。
 
这个问题不难解决嘛。
你是要将最后一页的[页小计]和[合计]放在页脚处还是紧接最后一行数据呢?
如果要放在页脚处,则:
在PageFooterBand中放两个QRExpr,上下摆放,第一个的ResetAfterPrint
设为True,做页小计;第二个的设为False,做合计,并将其Enabled设为False。
然后放一个SummaryBand,高度设为0,在它的AfterPrint事件中写上:
QRExpr2.Enabled := True;
如果要紧接最后一行数据,则:
PageFooterBand同上面设置。SummaryBand中放两个QRLabel,位置和PageFooterBand
中的两个QRExpr一致,然后在SummaryBand的BeforePrint事件中写上:
PageFooterBand.Enabled := False;
QRLabel1.Caption := FloatToStr(QRExpr1.Value.dblResult);
QRLabel2.Caption := FloatToStr(QRExpr2.Value.dblResult);
Good Luck!
 
大家都忽略了我问题的关键性:我在说明一遍!
第一:每页都有一个页小计,自然要页小计在pagefooter才能做的!!!
第二:打印到最后一页时,有页小计和页总计,而且总计不能出现在其它的页,那么只
有summary(用来总计)和pagefooter(用来做每页小计)才能做。但是问题出现了
就是summary在pagefooter的上面,也就是说总计在每页小计的上面,我的要求是总计在
每页小计的下面。谁能做到这个问题,分数立刻给.
 
唉,我的方法就可以呀,刚打了两张试了试,完全符合你的要求 :)
 
而且我希望大家在回答问题的时候不要绕开QuickReport,如果用别的报表制作,
我直接生成Excel,用别的控件也许能完成,关键是,遇到难的东西,我不希望
绕过去,那样还有进步吗?
 
可以添加一个groupheader,然后将groupfooter设置为原先的pagerooter,这样就可以使得
pagerooter在summary前面,现在只需在groupheader的expession中加入能以每页作为group
的表达式,例如页码,就可以分页打印,具体的表达式我也没想出来,如果能用这种方法
实现,请通知我,谢谢
 
试了不行的,那样会跳到原先的pagefooter的后面
 
liuly,请把源程序传给我看看!!我的mail是hikehilter@yesky.com让我看看,
如果可以立刻给你加分啊!!!
 
grouphead中有一个属性groupfooter,可以将它设置为已有的pagerooter
 
加一个 QRBand, Bandtype 设为 PageFooter, 在其中加一个 QRExpression,
其 Expression定义为要统计的表达式,如:Sum(table1.salary)就可以了。
QRExpression.restafterprint:=true//该页所有的合计
QRExpression.restafterprint:=false//到该页的所有累计
 
发到你的信箱了,怎么样,满意否?
 
stock你的问题我已基本接受!!请发一个完整的源码程序给小弟作参考!!!OK
先加100分
 
后退
顶部