请教个问题(关于在水晶报表的交叉表里加入同比字段……)

babybug 2005-08-02 03:14:35
各位好,我刚接触水晶报表不久,现在遇到的问题,思考了两天了还是没有结果(不要bs我……)

是这样的,数据库中有如下结构的表(oracle):
TABLE
{
CALL_TIMES,
CALL_LONG,
CALL_CHARGE,
DEPARTMENT,
STAT_TYPE,
STAT_DATE
}

我在水晶报表中利用交叉表专家,生成一个交叉表,其中,行为DEPARTMENT、列为STAT_TYPE、汇总字段为CALL_TIMES、CALL_LONG、CALL_CHARGE这三项各自的和

于是生成了类似如下的表格(一个大概,省略了一些,呵呵)

┌─────────┬────────┬─────────┐
│ 列名 │ 列名 │ 汇总 │
├─────────┼────────┼─────────┤
│ 字段1 字段2 │字段1 字段2 │字段1 字段2 │
┌───┼─────────┼────────┼─────────┤
│xxxx │ 数值  数值  │数值  数值 │数值  数值  │
├───┼─────────┼────────┼─────────┤
│xxxx │ 数值  数值  │数值  数值 │数值  数值  │
└───┴─────────┴────────┴─────────┘

现在的问题是:我如何以STAT_DATE为时间标准,为这个表格添加进一个关于CALL_CHARGE的同比字段和一个环比字段(放在汇总列的右边)
要求是不单独在每列总出现,而只出现在汇总列中。(唉,要是能实现功能,在每列出现也没问题,可以抑制显示嘛)

我试过用在数据库专家中通过“添加命令”添加一个用SQL语言描述的“数据库字段”是可以实现对一个具体的DEPARTMENT值对应的CALL_CHARGE计算同比、环比,也就是,为每一个具体的DEPARTMENT值建立一个相应的数据库字段然后手工摆放在交叉表的右边

但是,问题是,虽然现在DEPARTMENT中的数据虽然是确定的而且有挺长一段时间不会增加,但是从以后维护的方便性来考虑,我似乎不能这样去制作这个报表——因为,万一以后DEPARTMENT字段的数据增加,所有这样的报表都得重新修改。

于是我在这里卡住了 :( 不知道怎么去实现同比、环比


今天下午我重新用标准表来制作,按每个DEPARTMENT值分组,用运行总计字段来计算相应各项的汇总信息,结果也是实现到差不多如上的表格,然后在同比、环比那一项不知道该怎么制作了 :( 而且似乎运行效率不高

所以……

麻烦各位帮忙,指点一下!
thanks!
...全文
152 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
babybug 2005-08-03
  • 打赏
  • 举报
回复
我利用DEPARTMENT分组,然后创建了两个运行总计字段“本月总计”和“上月总计”,运行总计字段的重置条件是DEPARTMENT分组更改时,于是再创建一个公式字段
({#本月总计}-{#上月总计})%{#上月总计}
就得到环比了。

而月份的限定是用了一个参数字段DATE,有这个参数字段也就容易限定运行总计字段计算的时间范围了
{STAT_DATE} //限制日期范围
in DateSerial (Year({?DATE}), Month({?DATE}), 1)
To DateSerial (Year({?DATE}), Month({?DATE})+1, 1 - 1);


我后来是这样实现了报表的。算了实现了功能吧,但是报表的效率不高 :)

希望能有高效率些的办法
delbrueck 2005-08-03
  • 打赏
  • 举报
回复
能不能自己写个公式啊,DEPARTMENT做参数输入
babybug 2005-08-02
  • 打赏
  • 举报
回复
啊……
做了个大概能用的表了

我用的方法是 标准表,然后定义一个计算上月CALL_CHARGE的字段,然后再建立一个公式字段计算环比,算是实现了,但是效率不高。一个不大的表,也要四五秒才能显示出来 :(

不知道有没有更好的办法

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧