仅对SSRS中的可见行进行求和

时间:2015-03-02 21:44:45

标签: ssrs-2008 aggregate visibility ssrs-tablix

我试图仅对报告的可见行求和,我知道格式为:

=Sum( iif( <use the condition of the Visibility.Hidden expression>, 0, Fields!A.Value))

在我的报告中,我将行可见度设置为:

=IIF(CInt(Fields!EM_ET.Value)=1 Or CInt(Fields!EM_ET.Value)= 2,True,False)

不完全确定我错过了什么,但当我将其用作表达时:

=Sum(IIF(CInt(Fields!EM_ET.Value)=1 Or CInt(Fields!EM_ET.Value)= 2,True,False),0,Fields!EM_ET.Value)

我得到以下错误:textrun的值表达式&#39; FTD1.Paragraph [0] .TextRuns [0]&#39;有一个对聚合函数无效的scope参数。

enter image description here

3 个答案:

答案 0 :(得分:3)

您将True/False作为输出提供给表达式中的SUM()。您需要将表达式更改为,

=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value)= 2,0,Fields!EM_ET.Value))

答案 1 :(得分:0)

感谢代码编码器。 如果我使用'0',我会收到一些错误消息,所以我替换它没有任何工作。我认为这会有所帮助。

=SUM(IIF(ISNOTHING(Fields!value1.Value) OR ISNOTHING(Fields!value2.Value),NOTHING,Fields!value1.Value))

答案 2 :(得分:0)

我遇到了类似的问题。我知道这个问题有一个明确的答案,但它并不完全正确。

以下内容包含&#34;标记正确的代码&#34;回答:

=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value) = 2,0,Fields!EM_ET.Value))

以下代码片段包含上面的代码,稍作调整:

=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value) = 2,NOTHING,Fields!EM_ET.Value))

通过更改&#34; 0&#34;到&#34;没什么&#34;这将解决您的公式中任何挥之不去的问题。我遇到问题的公式是返回&#34;#错误&#34;在单元格中,该单元格应该返回行组内列中可见单元格的总和。

我的公式最初看起来像这样:

=IIF(Sum(Fields!VCBitType.Value) <> 0 OR (Parameters!Details.Value = "Detail"), Sum(IIF((Fields!VCBitType.Value = 0) and (Parameters!Details.Value = "Dangerous"),0,Fields!VC.Value)), "")

在看到Hari的评论后,我改变了我的公式:

=IIF(SUM(Fields!VCBitType.Value) <> 0 OR (Parameters!Details.Value = "Detail"), SUM(IIF((Fields!VCBitType.Value = 0) and (Parameters!Details.Value = "Dangerous"),NOTHING, Fields!VC.Value)), "")

我想将单元格值设置为&#34;&#34; (空)而不是完全隐藏单元格或将单元格的值设置为&#34; 0&#34;在我的报告中(由于不显示单元格完全使报告显得非常时髦)。因为我这样做,使用&#34; 0&#34;在我的公式中与单元格的值相冲突,这是&#34;&#34; (空),导致公式破裂。我做的唯一改变是改变&#34; 0&#34;至于&#34;没什么&#34;,这解决了我对细胞配方的问题。