我正在尝试创建自定义代码,再加上SSRS表达式,这将允许我在另一个数据集中显示lookupset数组中的不同值的数量(" Faults")。目标数据集中的表达式(" Stations")将如下所示:
=code.CountDistinct(Lookupset(Fields!StationNumber.Value,Fields!OpID.Value, Fields!OpID.Value, "Faults"))
不幸的是,我似乎无法使用CountDistinct功能。我有一些函数可以让我确定一个查阅集的最大值,最小值和平均值,但是我无法找到任何东西来帮助我确定查找集中不同的项目数。
我不是VB专家,但我能够轻松创建其他简单的功能。但我无法弄清楚如何为CountDistinct函数做些什么。
任何帮助将不胜感激。除了使用自定义代码之外,或许有更好的方法来查找不同的计数并在SSRS中的另一个数据集中引用它?如果是这样,请告知。
答案 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
我不确定此代码的变化是否足以成为新答案。我当然不希望任何人认为我在抄袭任何代码。