一个复杂的统计表,请帮帮忙(150分)

  • 主题发起人 主题发起人 328xy
  • 开始时间 开始时间
3

328xy

Unregistered / Unconfirmed
GUEST, unregistred user!
做学校的项目管理软件时遇到以下的问题,要生成一个个人经费的明细报表。
表如下:(按项目负责人排序)
财务编号: 财务户名: 入帐时间: 到款金额: 项目来源: 项目负责人: 经费小计:
X X X 1000 X A
X X X 2000 X A
X X X 3000 X A 6000
X X X 2000 X B
X X X 4000 X B 6000
X X X 1000 X C
X X X 500 X C 1500
其他的都好说,关键是经费小计,即某一项目负责人的项目显示完后,在经费小计中统计出
他的总到款金额(到款金额之和)。用FASTREPORT应怎么实现啊!! 头都大了。。

 
分解与抽象
 
确实有点抽象,能具体一点吗
 
类似报表我用RBuilder 作过,可以按项目负责人作一个分组,就会有你所要的结果,
条件是经费小计要新起一行。不知可否接受。
 
用quickreport 即可.
主要是導入excel 格式就麻煩了.
up
[:D][:D]
 
搞个临时表不行啊?
 
用SQL语句可以吗?

UPDATE YourTable
SET 经费小计=(SELECT COUNT(T1.到款金额) FROM TBL T1 WHERE T1.项目负责人="A")
WHERE 项目负责人="A"

大体上这样,具体的,你再改一改,看可以不!
有个问题,怎么确定A的最后一条记录,可能要到具体程序中控制了?
 
to sunny255:那样的分组怎么做,能详细一点吗
 
怎么没人啊,大家帮帮忙啊
 
今天又想了个办法,看可行否?
先将其中一条的记录查询、统计(合计)的数据insert为一新记录
然后,将原先的其中一条删除,最后查询出来在排序就可以了
[我这里没法试,你自己试试]
code:
INSERT INTO tbl
(SELECT B.财务编号,B.财务户名,B.入帐时间,B.到款金额,B.项目来源,B.项目负责人,COUNT(B.到款金额)
FROM tbl B
WHERE 项目负责人="A" //注:这里的A可以在程序中设置为变量
)

DELETE FROM tbl WHERE (A.项目负责人=B.项目负责人) AND (A.经费小计=B.经费小计)

SELECT * FROM tbl ORDER BY 经费小计 ASC
 
To: 328xy: 請你安裝一個RBulider 控件﹐它本身自帶一個group 功能﹐按項目負責人分組
就會新增一行[項目負責人]的Footer區域﹐然后增加一個DbCalc 的控件﹐
Sum(?) 按項目負責人。搞掂。
 
可是项目已经开发一半了,换成RBUILDER意味着报表得全重做,不现实
 
我查了资料,如果是SQL-server可以使用Compute子句
select * from Talbe
order by 项目负责人
Compute Sum(到款金额) by 项目负责人

可是在access下字句错误,是Access不支持Compute子句,还是我的写法有误,请大家指教啊
 
換成RBuilder 只做這一個報表﹐不一定全做﹐有一段時間我的Delphi中裝有RBuilder
和FastReport兩種控件﹐不影響的。
compute 命令一定要在Sql 7.0 或2000 上才認到。
 
我可以給你推薦一個控件......
如果你樂意..................
 
当然乐意啊,是什么
 
if you use oracle, there are a rollup function that just do this work
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部