Reporting services 一个名称在SharePoint列表中多次出现,但对于BIDS报告只需要一次
我正在基于SharePoint列表构建一个投标报告。我想创建一个多值参数,以按名称筛选列表,但每个名称都会在列表中显示多次。该报告已经将被过滤的工作地点,我需要这个过滤器除了。我对SSRS还很陌生,所以可能有一个更简单的解决方案,但我想到了两种方法,尽管这两种方法都不是特别有效 一种方法是为每个站点创建单独的MVP,并在参数的可用值中手动写出该站点的每个名称。问题是,我不认为有一种方法可以根据您正在查看的站点隐藏参数;例如,如果我正在查看站点A,那么站点B-Z的下拉列表也会显示出来。他们什么也不会做,因为多余的网站已经被过滤掉了,但这会让人看不见。从长远来看,这种方法也很难维护,需要有人介入并手动将每个新名称添加到参数中Reporting services 一个名称在SharePoint列表中多次出现,但对于BIDS报告只需要一次,reporting-services,ssrs-2008,bids,Reporting Services,Ssrs 2008,Bids,我正在基于SharePoint列表构建一个投标报告。我想创建一个多值参数,以按名称筛选列表,但每个名称都会在列表中显示多次。该报告已经将被过滤的工作地点,我需要这个过滤器除了。我对SSRS还很陌生,所以可能有一个更简单的解决方案,但我想到了两种方法,尽管这两种方法都不是特别有效 一种方法是为每个站点创建单独的MVP,并在参数的可用值中手动写出该站点的每个名称。问题是,我不认为有一种方法可以根据您正在查看的站点隐藏参数;例如,如果我正在查看站点A,那么站点B-Z的下拉列表也会显示出来。他们什么也不
另一种更好的方法是添加一个只包含名称和站点ID的新数据集,并找到某种方法过滤掉名称的每次重复,因此只剩下名称和关联的站点。不过,我不知道如何做到这一点。最终找到了一个解释: 本质上,这让您创建一个参数,作为基于一段自定义VB代码的分类陪审团操纵数据集。然后,第一个参数用于填充第二个多值参数,该参数包含所有唯一值 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
NB:在此过程中设置数据集时,请确保更改查询以反映您自己的数据源;不要只是盲目地复制/粘贴。@Cœur:gosh-五年半之后!:-)但你是对的——我一定是被我纠正过的其他案例“欺骗”了(比如“发生”-实际上必须是“发生”-两个“c”,两个“r”,只有“e”,没有“a”)。但在这里,你是完全正确的-你的拼写是正确的,我的“更正”是错误的。