我试图仅对报告的可见行求和,我知道格式为:
=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参数。
答案 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;,这解决了我对细胞配方的问题。