【发布时间】:2018-05-15 22:24:34
【问题描述】:
我在 SSRS 数据集中有以下 SQL 查询:
SELECT c.Id
, c.LastName + ', ' + c.FirstName AS CustomerName
, r.PurchaseDate
FROM tblCustomer c
JOIN Receipt r ON r.CustomerId = c.Id
WHERE StoreId = @storeId
我还为报告设置了三个参数:开始日期、结束日期和客户。工作流程是:选择开始日期,选择结束日期,然后过滤上述数据集以仅在多选下拉参数中显示收货日期在开始日期和结束日期之间的客户名称。问题是,当客户在日期范围内有多个收据时,客户在下拉参数中出现了不止一次。我复制了过滤掉重复项的VB代码:
Public Shared Function RemoveDuplicates(parameter As Parameter) As String()
Dim items As Object() = parameter.Value
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
效果很好,只是它只在下拉列表中显示客户 ID。
如何让多选下拉菜单将 CustomerName 作为标签,将 Customer Id 作为值?
【问题讨论】:
-
不是 VB.NET 而不是 VBA 吗?
-
这不是 VBA。我很想编辑,但因为你有金牌而推迟了。它是 VB.NET。请修改,以便我们可以从 VBA 队列中删除。
-
简短回复:stackoverflow.com/questions/27943204/… 较长回复:代码来自一个说它是用于应用程序的 VB 的来源。我相信他们的话,但我会假设你知道你在说什么。
标签: reporting-services ssrs-2008