Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 一个名称在SharePoint列表中多次出现,但对于BIDS报告只需要一次_Reporting Services_Ssrs 2008_Bids - Fatal编程技术网

Reporting services 一个名称在SharePoint列表中多次出现,但对于BIDS报告只需要一次

Reporting services 一个名称在SharePoint列表中多次出现,但对于BIDS报告只需要一次,reporting-services,ssrs-2008,bids,Reporting Services,Ssrs 2008,Bids,我正在基于SharePoint列表构建一个投标报告。我想创建一个多值参数,以按名称筛选列表,但每个名称都会在列表中显示多次。该报告已经将被过滤的工作地点,我需要这个过滤器除了。我对SSRS还很陌生,所以可能有一个更简单的解决方案,但我想到了两种方法,尽管这两种方法都不是特别有效 一种方法是为每个站点创建单独的MVP,并在参数的可用值中手动写出该站点的每个名称。问题是,我不认为有一种方法可以根据您正在查看的站点隐藏参数;例如,如果我正在查看站点A,那么站点B-Z的下拉列表也会显示出来。他们什么也不

我正在基于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”)。但在这里,你是完全正确的-你的拼写是正确的,我的“更正”是错误的。