rdlc 中如何按照 group 统计

laorer 2009-07-06 03:25:28
在 jasperReport 中, 有个变量的概念, 可以用来组合一些field,其中有一个属性 increament, 什么来时候增加,如果为 none 的话,就是随着记录来放入计算,如果为 goup 的话,即每新增一个组时,就加入运算

现在想问下 rdlc 中有没有类似于 (increament)的属性,或者有没有相应的东西

(rdlc 似乎没有变量的概念,不过 Field 有着类似的功能,它可以由其他 field 相互组合而成,但是不可以包括聚集函数)

举个例子

比如现在有两张表, 订单信息(Order(orderId, custId,freight<运费>,...))--订单详细信息(order_Detail(orderId, produceId,...))

我分成两个组, 第一是按custId, 第二是按 order.orderId,注意有个运费在这,即每个订单只产生一次运费,我现在想求某个客户的总的运费,那么就是 sum(freight), 但这个结果却是随着记录而增加的, 即如果订单号为 1的订单如果有 3笔记录,那么 这个订单的运费 将会被计算 3 次,请问有什么办法只让其计算一次?
...全文
186 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
laorer 2009-07-09
  • 打赏
  • 举报
回复
... 谢谢楼上的, 这种方法就是改变数据源, 我想完成的功能是, 我要做一个 designer,由客户来设定某个元素在应该放到哪个位置, 最后生成 rdlc 文件.
其中, 数据源是由客户设定好的, 并且客户可以根据各个 field 来组合成一个 variable,

这时候就不好改数据源, 因为你不清楚 variable 到底会是怎么样样的内容,

现在看来,微软虽然做了很多东西,但有的时候,做得并不太细,可能是我没找到方法吧, 有哪些英文网站可以问问题的?
  • 打赏
  • 举报
回复
可不可以用主表和子表两个表的数据,得到一个完整的视图,在试图中处理数据
laorer 2009-07-08
  • 打赏
  • 举报
回复
谢谢楼上的, 为什么不在数据源中把相同的去掉,是因为这是一个主从表的查询,子表有多少条记录,主表当然要循环多少次了,

另一个问题, 如果分组了,如何知道有多少个组呢?
laorer 2009-07-07
  • 打赏
  • 举报
回复
我觉得这种需求很正常啊, 应该有办法实现的, 这也不算是特殊需求吧..
我做的这个报表的例子和 northwind 差不多,
  • 打赏
  • 举报
回复
微软的rdlc在处理一些特需问题时是不很方便的,没办法,
laorer 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yangbiqing362937154 的回复:]
那就在数据源里面处理,这应该可以的,
[/Quote]

这个也可以, 不过如果我 要再加个 变量 count... 难道又要改数据源?
laorer 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ltxpossible 的回复:]
try with this:
formula=Sum ({@charge}, {@group_name})

[/Quote]

试过, 不过还是一样, =Sum ({@charge}, {@group_name}) 不是表示范围的吗?
悔说话的哑巴 2009-07-07
  • 打赏
  • 举报
回复
帮顶
ltxpossible 2009-07-07
  • 打赏
  • 举报
回复
try with this:
formula=Sum ({@charge}, {@group_name})
  • 打赏
  • 举报
回复
那就在数据源里面处理,这应该可以的,
laorer 2009-07-07
  • 打赏
  • 举报
回复
我按订单分组了, 但是统计的结果 (sum( 运费)) 是按记录的量 来算的, 即一个订单如果有三条记录,那么运费将会计算三次...
  • 打赏
  • 举报
回复
你说了每个订单只产生一次运费,那么可以按订单分组,再SUM(运费),应该可以吧,
laorer 2009-07-07
  • 打赏
  • 举报
回复
再顶一顶吧
  • 打赏
  • 举报
回复
我个人觉得,ReportView控件是对数据的呈现,起到浏览的作用,对数据进行逻辑处理不是它的强项。
你的问题中说,订单号相同的,运费相同的记录有多条,为什么不在数据源里把相同的处理掉了,

有时候rdlc还真解决不了一些看似很平常的问题,比如在Matrix中,你要在列组后加一静态列是不可能的,
只能加在这个列组下级目录中,但实际中这样的需求很正常,所以只能想其它办法了。

laorer 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zxkid 的回复:]
因为你的数据源是个主从表,主从表会自动INNER JOIN成一张表,所以造成了这个问题
[/Quote]

但怎么样解决呢?我只想新增组时,才把相应的字段放入到统计方法中?

或者另外一个问题, 我如何来知道现在是处于第几个组中了?
zxkid 2009-07-07
  • 打赏
  • 举报
回复
因为你的数据源是个主从表,主从表会自动INNER JOIN成一张表,所以造成了这个问题
laorer 2009-07-06
  • 打赏
  • 举报
回复
子报表... 是一种方案,不过就一个分组的功能,要用到子报表,就显示太笨重了...
zxkid 2009-07-06
  • 打赏
  • 举报
回复
好久没接触了忘了 你可以试一下子报表
laorer 2009-07-06
  • 打赏
  • 举报
回复
没人理我? 那再顶一顶吧

4,816

社区成员

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

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