【发布时间】:2017-01-04 20:21:49
【问题描述】:
此功能有效。
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
我想添加一个条件来删除“ ”字段。
我在 Lookupset 中使用它
=Join(Code.RemoveDuplicates(LookupSet(Fields!Fund_Family.Value &Fields!Portfolio_Company_Name.Value,Fields!Fund_Family.Value & Fields!Portfolio_Company_Name.Value,Fields!Security_Name.Value, "DataSet1")), " / ")
我得到的结果如下所示:
/合作伙伴
/兰花
二十出头
【问题讨论】:
-
你不能在你的 IF 语句中添加
AND items(i) != " "吗? -
公共共享函数 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)) And items(i) != " " 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 这对我来说是错误的。
-
哦,是的,在 VBA 中,不等式运算符是
<>。但是再看一遍,我们希望这是一个OR条件。换句话说,如果它是空白的,那就跳过它。 -
这在语法上确实有效......但现在该列的所有行都显示为空白。
-
你能告诉我为什么当整个字段都没有值时下面的内容会给我一个错误。 =Join(Code.RemoveDuplicates(LookupSet(Fields!Fund_Family.Value &Fields!Portfolio_Company_Name.Value,Fields!Fund_Family.Value & Fields!Portfolio_Company_Name.Value,Fields!Security_Name.Value, "DataSet1")), "/").Remove (1,1) 如果我摆脱 Remove(1,1) 它似乎没有任何问题。
标签: vba reporting-services ssrs-2008 ssrs-2008-r2