仅对 SSRS 中的可见行求和
Summing Only Visible Rows in SSRS
我试图只对报告的可见行求和,我知道格式是:
=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'FTD1.Paragraph[0].TextRuns[0]' 的值表达式具有对聚合函数无效的范围参数。
您将 True/False
作为 expression.You 的 SUM()
的输出,需要将您的表达式更改为,
=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value)= 2,0,Fields!EM_ET.Value))
感谢码农。
如果我使用“0”,我会收到一些错误消息,所以我替换了它没有用的东西。我认为这会有所帮助。
=SUM(IIF(ISNOTHING(Fields!value1.Value) OR ISNOTHING(Fields!value2.Value),NOTHING,Fields!value1.Value))
我遇到了类似的问题。我知道这个问题有一个明确的答案,但它并不完全正确。
以下包含来自 "marked correct" 答案的代码:
=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))
通过将“0”更改为 "NOTHING",这将解决您的公式中任何挥之不去的问题。我遇到问题的公式是 return 单元格中的“#Error”,该单元格应该 return 行组内列中可见单元格的总和。
我的公式原来是这样的:
=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)), "")
我想在我的报告中将单元格值设置为“”(空),而不是完全隐藏该单元格或将该单元格的值设置为“0”(因为不显示单元格完全使报告看起来真的很时髦)。因为我这样做了,所以在我的公式中使用“0”与“”(空)的单元格值冲突,导致公式中断。我所做的唯一更改是将“0”更改为 "Nothing",这解决了我在使用单元格公式时遇到的问题。
我试图只对报告的可见行求和,我知道格式是:
=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'FTD1.Paragraph[0].TextRuns[0]' 的值表达式具有对聚合函数无效的范围参数。
您将 True/False
作为 expression.You 的 SUM()
的输出,需要将您的表达式更改为,
=Sum(IIF(CInt(Fields!EM_ET.Value) = 1 Or CInt(Fields!EM_ET.Value)= 2,0,Fields!EM_ET.Value))
感谢码农。 如果我使用“0”,我会收到一些错误消息,所以我替换了它没有用的东西。我认为这会有所帮助。
=SUM(IIF(ISNOTHING(Fields!value1.Value) OR ISNOTHING(Fields!value2.Value),NOTHING,Fields!value1.Value))
我遇到了类似的问题。我知道这个问题有一个明确的答案,但它并不完全正确。
以下包含来自 "marked correct" 答案的代码:
=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))
通过将“0”更改为 "NOTHING",这将解决您的公式中任何挥之不去的问题。我遇到问题的公式是 return 单元格中的“#Error”,该单元格应该 return 行组内列中可见单元格的总和。
我的公式原来是这样的:
=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)), "")
我想在我的报告中将单元格值设置为“”(空),而不是完全隐藏该单元格或将该单元格的值设置为“0”(因为不显示单元格完全使报告看起来真的很时髦)。因为我这样做了,所以在我的公式中使用“0”与“”(空)的单元格值冲突,导致公式中断。我所做的唯一更改是将“0”更改为 "Nothing",这解决了我在使用单元格公式时遇到的问题。