Ssrs 2008 分组页面总计和结转总计

Ssrs 2008 分组页面总计和结转总计,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,关于这一点,我在谷歌上搜索了很多,但没有发现任何有用的东西。以前有人问过这个问题,但没有人回答 我有一个tablix,它用金额列显示分组数据: Tablix (data) Name (group) Amount (rows) 如果“Name”组跨越多个页面,我希望显示第一页上显示的金额总和的页面总数。下一页必须显示上一页的结转总额 我尝试过很多事情,特别是我的自定义程序集(比如保留一个包含每个组总数的字典,并在报告的页

关于这一点,我在谷歌上搜索了很多,但没有发现任何有用的东西。以前有人问过这个问题,但没有人回答

我有一个tablix,它用金额列显示分组数据:

Tablix (data)
             Name (group)
                         Amount (rows)
如果“Name”组跨越多个页面,我希望显示第一页上显示的金额总和的页面总数。下一页必须显示上一页的结转总额

我尝试过很多事情,特别是我的自定义程序集(比如保留一个包含每个组总数的字典,并在报告的页脚中尝试显示总数等)。真正打乱任何实现的是报表页眉、正文和页脚“执行”的顺序

有什么想法或建议吗?

试试这篇文章

这不是一个直接的答案,但如果你有创意,使用sql或使用运行总数来分隔页面,这可能会让你开始

但是,要回答您的问题,它不是ssrs中的一项功能。

原因是:

  • 无法获取分组数据的一个实例是否在详细信息级别拆分为多个页面(以便结转总额显示在重复列标题下方)
  • 页眉和页脚总是在正文元素之后“计算”
  • 只能在页眉和页脚中使用的表达式中引用ReportItem
  • 不能从页眉或页脚更改正文元素(主要是因为上面的一点)
  • 无法扩展tablix控件以添加自己的功能
我决定在页脚中显示组页面总数,存储它并将其拾取以显示到下一页

这是通过使用

= IIf(RunningValue(Fields!AmountDC.Value, Sum, "Group1") <> Sum(Fields!Amount.Value, "Group1"), code.SetTotal(RunningValue(Fields!Amount.Value, Sum, "Group1")), Nothing) 
并将当前总数存储在嵌入代码的专用字段中

Private running As Double = 0

Public Function SetTotal(ByVal val As Double) As Double
    running = val
    Return val
End Function

Public Function GetTotal() As Double
    Return running
End Function
在页脚的最后一页,存储的总数被提取出来

= code.GetTotal()

这太简单了,但它仍然是我经过多次尝试后所能得到的最接近的

真的很抱歉,但是无法计算一页中显示的数据的“大小”,因为在本例中,我显示的是分组数据,这些数据不以分页符分隔,甚至在字段可能增长并占用更多空间的情况下更是如此。从我的理解来看,这几乎是不可能的,因为这就像试图在word文档中做这样的事情一样!如果是这样,我建议可能没有解决方案,因为没有功能。我仍将继续收听,因为我对其他建议感兴趣。祝你好运。我想知道为什么这么难做到,因为这在一般的报道中是很常见的事情!在Crystal Reports中,它是“以编程方式”完成的,但是报告元素的求值顺序是有意义的,因此可以这样做!这项服务很好,但似乎越来越有限。这是一个很好的问题。
= code.GetTotal()