【发布时间】:2017-03-29 17:47:54
【问题描述】:
在我的SSRS 报告中,我正在使用LOOKUPSET 函数来concatenate 之一field values。为了获得distinct concatenated 值,我在报告代码中使用了RemoveDuplicates Vb 函数。
function 代码是:
Public Shared Function RemoveDuplicates(ByVal items As Object()) As String()
System.Array.Sort(items)
Dim k As Integer = 0
For i As Integer = 0 To items.Length - 1
If i > 0 AndAlso items(i).Equals(items(i - 1)) Then
Continue For
End If
items(k) = items(i)
k += 1
Next
Dim unique As [String]() = New [String](k - 1) {}
System.Array.Copy(items, 0, unique, 0, k)
Return unique
End Function
我的文本框Expression 是,
=Join(Code.RemoveDuplicates(LookUpSet(Fields!id.Value,
Fields!id.Value,
Fields!code.Value,
"ds_DataSet1")), " , ")
此expression 在除blanks 之外的所有情况下都可以正常工作。如果Fields!code.Value 仅包含空白,则报告预览将在field value 中返回错误#Error。
当我从expression 中删除RemoveDuplicates 函数时,它适用于所有情况。我是否需要在vb function 中进行更改以合并空白?我在这里缺少什么?
【问题讨论】:
-
您是否需要这些空白,或者您可以在运行代码之前删除它们吗?
-
空白是指没有数据的列
-
是的,我假设你的意思是 Fields!code.Value = nothing
-
是的.. 完全正确。如果所有值都为空,则该函数将引发错误
-
代码的预期输入是什么样的?
标签: sql-server vb.net reporting-services ssrs-2012