如何生成这样的报表?

Ascn 2003-11-24 10:41:33
我想生成这样的报表:
    1月 2月 3月 4月 。。。。。。11月 12月
A部门  ? ? 。。。
B部门  ? ? 。。。
C部门  。。。。
。。。
Z部门

//---------------------------------------------------
其中的?需要由一个SQL语句进行统计得出结果,各个?的查询条件类似但不同。
比如:
...Where 月份='1' And 部门='A'
...Where 月份='3' And 部门='A'
...等等。
要求是该条件可以在运行时指定,例如:统计部门为A、B、F,1至6月份的。

我初步的打算是,将统计结果一个一个地插入控件中。但是,这样就有问题了:
1、用什么控件?Grid吗?可是我要显示报表啊;如果用报表,好象不能这样插入
数据,只能给“一个”SQL语句,从数据库中查询出来后进行预览:(
2、一个一个的插入很麻烦,而且速度可能很慢;
3、各位大侠是如何做这种东西的?什么方法比较好?

急盼指教,谢谢!
...全文
65 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Ascn 2003-12-26
非常感谢大家,结贴先。
以后有空再为大家送分:)
  • 打赏
  • 举报
回复
wlic 2003-12-09
仔细研究一下SQL的帮助,有类似的例子
  • 打赏
  • 举报
回复
Ascn 2003-12-06
最近太忙,我先试试:)
谢谢大家!
  • 打赏
  • 举报
回复
pantaloon 2003-11-28
那你就在BEFOREPRINT中写好了,只要限制条件的求和好了。
  • 打赏
  • 举报
回复
goldhawk_2000 2003-11-27
delphi的数据集也可以定位的, 建议你就做一个临时表:
部门 一月 二月 .... sum.

只要你能得到一个如上结构的数据集就可以修改,添加了.用table还是query都可以.


然后打印这个数据集.
  • 打赏
  • 举报
回复
Ascn 2003-11-26
其他报表用了模板,这种纯粹用一条一条的SQL语句统计出的,我还不知道从何入手啊

求教
  • 打赏
  • 举报
回复
Ascn 2003-11-26
汗,我对交叉表是敬而远之,很少用:(,而且我是初学Delphi,对于DecisionQuery也没用
过:(  我决定研究研究交叉表的例子

模板报表?其实是这样:报表工具一般不是有个设计器吗?该设计器一般可以将设计的结果
保存为一个文件,以后就可以从文件载入了。我把这称作模板啊。

我上面说的报表是因为我找不到更好的方法,所以以前用PB作时,是用笨方法以SQL语句在循
环中统计,并将其写入表格的相应单元格中。在PB中使用数据窗口,可以很方便的对指定行、
列的那个单元格进行读写。但在Delphi中,我不知道用什么控件好,且对于该种控件如何对
指定单元格读写?

我不知道是否有比上述笨法子更好的方法,如有,该如何作?望各位指教,谢谢
  • 打赏
  • 举报
回复
goldhawk_2000 2003-11-26
感觉上是打印一个两维交叉表的结果. 呵呵

用DecisionQuery,只需要一条语句.然后DBText1连上就可以了,DecisionQuery自动统计

本人不善做报表,也没有用过模板报表 不知道模板报表是怎么回事,如无帮助还望包涵.
  • 打赏
  • 举报
回复
Ascn 2003-11-24
都可以对其中的控件赋值啊,但我要改变某字段第10行的结果?不知道如何写

临时表我也考虑过,由于数据量太大,要先统计每天的,再统计每月的,每个部门如此。
因此,担心给服务器造成太大负荷,也担心客户机这边太忙让人以为死机了,还担心
频繁取数据造成网络流量加大:( 不知道什么方法好些?
  • 打赏
  • 举报
回复
WangZWang 2003-11-24
我比较常用FastReport,dxComponentPrinter...等第三方组件,做报表比较方便。
像你的问题,可以用SQL语句先生成一个临时表,再连接打印控件,就可以实现你打印
格式的要求。对于Delphi自带的Rave报表组件,也可直接对其设计的控件赋值。
  • 打赏
  • 举报
回复
Ascn 2003-11-24
不好意思,可能没说清楚:)
如果是在设计时在报表中放入一些控件的话,我知道有些什么控件,当然就好办了。
但是,在运行时从模板装入呢?因为我的报表有很多个,用了模板的方式。

另外,我初学Delphi,如果知道报表中有个DBText1, 我怎么对它操作?比方说,把
它第10行的数据改为0?
  • 打赏
  • 举报
回复
Ascn 2003-11-24
不发意思,我用的是Report Builder.
主要问题不在于工具的不同,而在于:
我是从模板中载入,在Delphi的Form中不能写代码对报表中的东西进行操作吧?
因为都不知道用户载入的是哪个报表模板,怎么知道对哪个对象赋值啊?
  • 打赏
  • 举报
回复
ququhu 2003-11-24
这个...那个...东西很多啊.

1.在FR里面声明参数
2.在DELPHI里面对参数进行赋值.
  • 打赏
  • 举报
回复
Ascn 2003-11-24
以前是用PB开发的,现在要改。
以前用PB时,是按不同但类似的条件进行统计后,一个一个地写入PB的数据窗口中的,
显示速度倒还可以。

现在用Delphi做。参数怎样设置、怎样赋值啊?我才刚进入Delphi大门:(
  • 打赏
  • 举报
回复
ququhu 2003-11-24
啊?你的报表是怎么显示的啊
是本来就是一个一个的条件查询后的显示?
这样的话就设参数一个一个的赋值吧.
还是用SQL查出来的一整张表?
这个就好办了吧.
  • 打赏
  • 举报
回复
pantaloon 2003-11-24
gz
  • 打赏
  • 举报
回复
ququhu 2003-11-24
我没有用过模版,在哪里可以下的说?我想看看.
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5067

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2003-11-24 10:41
社区公告
暂无公告