如何在单个表达式中实现多个报表项?

时间:2015-11-23 07:33:57

标签: c# asp.net if-statement reporting-services switch-statement

我想在rdlc报告的标题部分使用单个表达式中的两个报告项目。

我试过了,

= IIF(ISNothing(ReportItems!R.value),ReportItems!R1.value,ReportItems!R.value)

= SWITCH(ISNothing(ReportItems!R.value),ReportItems!R1.value, 
       ISNothing(ReportItems!R1.value),ReportItems!R.value)

我也尝试过编写自定义代码功能。

但我明白了,

  

textrun的Value表达式引用多个报表   项目。页眉或页脚中的表达式只能引用一个表达式   报告项目。

1 个答案:

答案 0 :(得分:1)

您的错误告诉您需要了解此问题的所有信息。您试图引用两个报表项,这在页眉或页脚中是不可能的。

您是否考虑过将计算出的值放在报告正文中,然后从标题中引用它?

考虑到以下示例,我已将RCalc的值设置为您的表达式

= IIF(ISNothing(ReportItems!R.value),ReportItems!R1.value,ReportItems!R.value)

我还设置了隐藏的RCalc的可见性

然后标题中的文本框仅引用RCalc

=ReportItems!RCalc.value

因此设计看起来像这样

enter image description here

运行时输出

enter image description here

这是您所追求的行为,这适用于您的情况。如果我可以进一步协助,请告诉我。

<强>更新

当价值来自不同的Tablix时,理论是相同的。

假设文本框R和R1是总计行,它们可以用相同的方式由RCalc引用。请注意,它们不能位于主行数据集

这样的布局在行分组/过滤之外的报告底部设置了文本框(红色文本)。这些是R和R1。请注意,在输出中我已将其可见性设置为隐藏。

enter image description here

这会产生输出

enter image description here

RCalc可以是页面上任何位置的文本框 - 它不必位于数据集中。