【问题标题】:RDLC report footer with value from "Current Record"RDLC 报告页脚的值来自“当前记录”
【发布时间】:2012-02-15 13:52:53
【问题描述】:

我不知道这是否可能,但我想我会问。很多时候,报表需要数据分组才能在报表底部锚定一些摘要信息,例如发票。您不希望总数仅基于 2 条详细信息行向上移动,而另一条为 20 条。我尝试使用绑定到数据源的 Tablix 进行输出,但无法完全正确......它会向上移动或强制中断并显示在下一页顶部。

所以,如果有人有一些想法可以帮助解决这个问题,那也太好了。

我的第二种方法是只使用一个简单的报表页脚。但是,整个“报告”页面在技术上并不“绑定”到任何数据源。因此,如果我在页脚中放置一个文本框并希望它显示某些内容,我不能选择“与 Tablix 关联的数据源中的最新行”,它总是需要一个聚合,例如

=First(Fields!SomeField.Value, "SomeDataSource" )
=Sum( ...
=Last( ...   
etc...

我只是希望它具有最新的...所以我尝试使用报告变量来创建一个并考虑让它在每行正在处理时更新,所以它总是具有任何“最新”值是,我可以将这个值转储到报告的底部。

对任何一个的任何建议都会很棒。谢谢。

【问题讨论】:

    标签: report rdlc footer


    【解决方案1】:

    我知道这是一个老问题,但我遇到了一个非常相似的问题并想出了一个独特的解决方案。我有一个声明,需要在页面底部打印付款单,即使声明行项目换到另一页。我通过以下方式解决了它:

    • 使报表中的所有行高度一致。
    • 计算填充页面需要多少行(减去我的付款单的高度。
    • 获取报表中的行项目数。
    • 计算将我的付款单推送到页面底部所需的剩余行数。
    • 添加具有计算出的空白行数的子报表,以填补行项目和付款单之间的必要空间。

    这种方法的优点是我可以为多个客户生成账单,并且由于填充是组的一部分,它将为每个客户的账单定制,并为每个客户的工资单进行底部对齐。

    您可以使用类似的方法将“页脚”信息推送到页面底部。由于它仍在您的数据组中,因此您也可以访问所需的数据值。

    【讨论】:

    • 感谢您的想法,听起来是个不错的解决方案。我在另一种开发语言中做过类似的事情,但从未想过在这里应用它。在发帖时,我很早就对 C# / 报告中的此类技术不熟悉。我将标记为答案,因为我知道它会根据我过去的经验起作用。
    【解决方案2】:

    在页脚中,您可以引用报告正文中的报告项目,如下所示:

    =ReportItems!myFooterValueTextBox.Value
    

    问题是您只能在页脚中引用一个报表项,因此您可能需要在表格中添加不可见的页脚行并将所有总计连接到该行中的一个单元格 (myFooterValueTextBox):

    =First(Fields!SomeField.Value, "SomeDataSource") + "|" +
     Sum(...) + "|" + .... +
     Last(...)
    

    我在示例中使用管道作为分隔符,因此在页脚中,我将拆分字符串并将值放入适当的容器中,如下所示:

    =Split(ReportItems!myFooterValueTextBox.Value,"|")(0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-14
      • 2012-01-13
      • 2018-11-11
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2019-12-28
      相关资源
      最近更新 更多