SSRS代码用于确定查找集的不同计数

时间:2016-07-04 15:09:26

标签: vb.net reporting-services sql-server-2008-r2

我正在尝试创建自定义代码,再加上SSRS表达式,这将允许我在另一个数据集中显示lookupset数组中的不同值的数量(" Faults")。目标数据集中的表达式(" Stations")将如下所示:

=code.CountDistinct(Lookupset(Fields!StationNumber.Value,Fields!OpID.Value, Fields!OpID.Value, "Faults"))

不幸的是,我似乎无法使用CountDistinct功能。我有一些函数可以让我确定一个查阅集的最大值,最小值和平均值,但是我无法找到任何东西来帮助我确定查找集中不同的项目数。

我不是VB专家,但我能够轻松创建其他简单的功能。但我无法弄清楚如何为CountDistinct函数做些什么。

任何帮助将不胜感激。除了使用自定义代码之外,或许有更好的方法来查找不同的计数并在SSRS中的另一个数据集中引用它?如果是这样,请告知。

1 个答案:

答案 0 :(得分:1)

尝试使用您的报告代码。我刚刚从其他答案修改了一些代码,返回一个整数,它是不同值的计数。 Reference.

Public Shared Function CountDistinct(m_Array As Object()) As Integer

    System.Array.Sort(m_Array)
    Dim k As Integer = 0
    For i As Integer = 0 To m_Array.Length - 1
        If i > 0 AndAlso m_Array(i).Equals(m_Array(i - 1)) Then
            Continue For
        End If
        m_Array(k) = m_Array(i)
        k += 1
    Next
    Return k

End Function

我不确定此代码的变化是否足以成为新答案。我当然不希望任何人认为我在抄袭任何代码。