水晶报表如何作合计累计

H678999 2010-11-16 08:18:19
以前报表是在后台调用EXCEL处理好再嵌入网页呈现给用户的
现在想用水晶报表表做,刚开始什么都不知道,在哪里声明变量,什么时候赋值什么时候清0,都不知道

报表数据源现有记录(已包括合计及累计的占位行)
日期    摘要   入库数 出库数
2010-02-01 承上累计 15   30
2010-02-15 入库   1
2010-02-16 入库   1
2010-02-19 出库       1
2010-02-29 本月合计
2010-02-29 本年累计
2010-03-01 出库       1
2010-03-15 入库   2
2010-03-16 入库   1
2010-03-20 出库       3
2010-03-31 本月合计
2010-03-31 本年累计

如何生成如下报表

日期    摘要    入库数 出库数 结存数
2010-02-01 承上累计  15   30    1 (假设年初结存为16)
2010-02-15 入库    1        2
2010-02-16 入库    1        3
2010-02-19 出库         1    2
2010-02-29 本月合计  2    1    2
2010-02-29 本年累计  17   31    2
2010-03-01 出库    1        1
2010-03-15 入库    2        3
2010-03-16 入库    1        4
2010-03-20 出库         3    1
2010-03-31 本月合计  3    4    1
2010-03-31 本年累计  20   35    1
首先说明:
合计及累计行在数据库查询时已经生成占位行,而不是用组设置方式处理.

我的要求是:
1 传入承上累计的结存数(后台传入,不要在报表加载时弹出索要参数输入值的提示)
2 为每行填上结存数
3 遇到"本月合计"行时,把合计值写入"入库数"或"出库数"栏内,本月合计清0
4 遇到"本年累计"行时,把累计值写入"入库数"或"出库数"栏内,本年累计若年份未变则继续累加,年份变了要清0
...全文
443 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2010-11-20
  • 打赏
  • 举报
回复
关于没边框的解决方法,参考

http://www.cnblogs.com/babyt/archive/2008/04/04/1137345.html
H678999 2010-11-19
  • 打赏
  • 举报
回复
基本搞定了.
不过,还有点美中不足,就是用边框做表格时.遇空值会留下个连边框也没有空块,很不主观.
还有,0值抑制显示后,也会变成空块.
虽然在查询记录时就把空值替换成非空,或在报表里设空值判断后变成非空显示,但报表选项里不是有个把Null转成默认值功能吗,可惜这个功能勾上了效果跟没勾上没什么两样.不知何故?
H678999 2010-11-17
  • 打赏
  • 举报
回复
泰哥来了!
我这几天才接触水晶报表,以前觉得用EXCEL更方便些,但总觉得那样是东挪西的功能,于是开始搞水晶报表,狂搜过N多资料后,学习过不少泰哥的文章,现在基本能做出上面效果的报表了,这一切得多谢.

下面是我的实现方法:
合计累计行是数据库预先生成占位行(是在详细资料里的,呵呵).入库栏/出库栏 在正常记录时取 入库数/出库数,遇到合计/累计行时取 汇总字段的数.
这种通过填空详细栏得到的汇总,与分别单独生成两行合计累计比,是有点另类.
当然原先是用组汇总生成的,但要得到与明细行一样的表格,就要把合计及累计这两行都得补设相同多个格子,加上表格边框设置,会麻烦很多.

有何不妥当的地方吗?请泰哥指点.

还有,参数问题还未解决,请帮看一下,比如,我要在报表刷新前传入一个期初结存数给一个"参数字段",如表上第一行的结存数1,其它行是在它的基础上算出来的,如何在报表Load前让这个参数到位,现在讨厌的是报表Load前会自动出现一个提示输入该参数的页面,不输入就没有下一步.





水猿兵团五哥 2010-11-17
  • 打赏
  • 举报
回复
第一:用分组来实现合计
第二:要分月合计和年合计可能要用到公式,自己试下吧
阿泰 2010-11-17
  • 打赏
  • 举报
回复
参数传递请参考
【水晶报表内功心法】--信手拈来,掌控对象 [推荐]
中的第3小节。

如果你的数据要在报表中对照此参数进行运算的话,数据多的话性能会比较低。
不过如果按照你给的示例数据,按月的话,一年也就360几天,如果传入得数据也就是几百条,那倒没什么问题
H678999 2010-11-17
  • 打赏
  • 举报
回复
好了,合计累计都OK了,
但上面所说的传入参数的问题未解决,请高手再指教一下.
我定义了一个参数字段,用来传入期初结存数,以后各行的结存数都是以它为基础算出来的.但设了它后,加载报表时会问要这个参数,我希望从后台设值而不要显示手工输入的界面.
H678999 2010-11-17
  • 打赏
  • 举报
回复
数据库查询可以汇总,但要得到每日结存数,非常麻烦,因为SQL没一行行往下算的功能,定位每行都要SELECT一次,行数多了效率非常低.所以才想用水晶报表.
现在我已可以算出每行结存数和每月合计数(以年月为组,组变更时清0),
但本年累计不好搞,要么跨年了还没能清0,要么每月被清0,如何做?
还有,期初数,我是用参数传入的,但定义了参数字段后,打开报表前系统会自作主张地出现索要参数的输入界面,
如何能传入参数又不显示参数输入界面?
mac1106 2010-11-17
  • 打赏
  • 举报
回复
有两种办法,一个是在数据库设计的时候就计算好,然后在前台只需要显示就够了
二是,你在用crystal reports的时候有函数可以计算、、、、、、

4,818

社区成员

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

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