用QRGroup与 GroupFoot实现分级汇总?(50分)

  • 主题发起人 主题发起人 ljsoft
  • 开始时间 开始时间
L

ljsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
用QRGroup与 GroupFoot实现分级汇总
想实现如下效果(delphi中有例子,但我做不出来)
1112
11121
1112101 100
1112102 200
total 300
11122
1112201 100
1112202 200
total 300
total 600
但没有汇总结果,
请问GroupFoot应如何使用?
 
上面指的是quickreport
 
这个我的项目中有做过。
按下面的来:
1、写好SQL语句,用两个Query来做,进行关连,这个很重要,不然下面就别做了,如我在项目中是这样写的:
Query1.Sql:
Select syear,cnt,best_cnt,pass_cnt
from Moral_edu
Query2.Sql:
SELECT syear,SUM(CNT) SCNT,SUM(BEST_CNT) SBEST_CNT,
SUM(PASS_CNT) SPASS_CNT,SUM(BAD_CNT) SBAD_CNT
,SUM(CHANG_CNT) SCHANG_CNT,SUM(THREE_CNT) STHREE_CNT,
SUM(BEST_CADRE) SBEST_CADRE,SUM(ILLEGAL) SILLEGAL,
SUM(DELICT) SDELICT,
FROM MORAL_EDU
WHERE
SYEAR = :SYEAR
group by syear
上面两个表要关连起来,让他们syear相等。
2、你的报表中的控件至少要有四个:TQRBand,其中在属性BandType里是这么设置的:
一个是:rbColumnHeader, 一个是:rbDetail, 一个是:rbGroupFooter,一个是:rbSummary
rbColumnHeader里写的是标题,就不用说了;
rbDetail里放控件:TQRDBText,里面可以放值为上面的Query1里的syear,cnt等,
rbGroupFooter里也放控件TQRDBText,但里面的值是从Query2里的,scnt等。
rbSummary里放控见TQRExpr,他的属性里面Expression里用汇总函数,如:sum(scnt)。
设置好后,一切就OK了。
 
to c~c
建议你研究一下delphi的demo
路径
../Borland/Delphi6/Demos/QuickRpt/Qr2
这个例子就用一个query
关键是用QRGroup and GroupFoot
 
我已解决
 
后退
顶部