如何根据另一个字段的值从分组总和中排除一个值?
即我打开报告=>报告属性=>代码并插入我的自定义代码,但是如何更改以下代码以排除下列情况的另一个字段的数值?
Public Function ChangeWord(ByVal s As String) As String
Dim strBuilder As New System.Text.StringBuilder(s)
If s.Contains("Others") Then
strBuilder.Replace("Others", "Other NOT INCL")
Return strBuilder.ToString()
Else : Return s
End If
End Function
答案 0 :(得分:4)
我假设你要从一个总和中排除一个数值,其中同一行上一个单元格的字符串值包含“Others”,并且你提供的函数被用作表的分组标准在报告中。如果这不正确,请道歉。
如果不使用第二个逻辑,无论是函数还是Iif
条件,都不可能做到这一点。我目前没有可用的SSRS来测试这个,但是(假设你的值列是一个整数,代码看起来像这样:
Public Function ExcludeOthers(rowDesc As String, rowVal as integer)
if ChangeWord(rowDesc) = "Other NOT INCL"
Return 0
else
Return rowVal
end if
End Function
然后,在您希望出现条件和的单元格中:
=Sum(ExcludeOthers(Fields!desc.Value,Fields!val.Value))
或者,您可以在没有函数的情况下通过在条件和出现的单元格中使用Iif
来执行此操作:
=Sum(Iif(ChangeWord(Fields!desc.Value) = "Other NOT INCL",0,Fields!desc.Value))
根据源数据的性质,您还可以通过向报表的源查询添加计算列来执行此操作。
我赞成第二种或第三种选择 - 为此目的,自定义代码似乎有点过分。