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
Vb.net 如何在VB中通过ParameterValue向SSRS发送MDX参数列表?_Vb.net_Reporting Services_Mdx - Fatal编程技术网

Vb.net 如何在VB中通过ParameterValue向SSRS发送MDX参数列表?

Vb.net 如何在VB中通过ParameterValue向SSRS发送MDX参数列表?,vb.net,reporting-services,mdx,Vb.net,Reporting Services,Mdx,如何在VB中通过ParameterValue向SSRS发送MDX参数列表? 我不确定这是否是正确的问题,但这里有一些症状:当我向SSRS发送一个商店ID时,我会返回有效数据。但只要我将一系列存储ID串在一起,它就会返回数值应该在哪里的(破折号)。 因此,这将返回有效的销售数字: Private parametersRdl(1) As ParameterValue parametersRdl(0) = New ParameterValue() parameters

如何在VB中通过ParameterValue向SSRS发送MDX参数列表? 我不确定这是否是正确的问题,但这里有一些症状:当我向SSRS发送一个商店ID时,我会返回有效数据。但只要我将一系列存储ID串在一起,它就会返回数值应该在哪里的(破折号)。 因此,这将返回有效的销售数字:

Private parametersRdl(1) As ParameterValue

        parametersRdl(0) = New ParameterValue()
        parametersRdl(0).Name = "StoreLocations"
        parametersRdl(0).Value = "[Stores].[Store Location].[Stores].&[456789]”

        parametersRdl(1) = New ParameterValue()
        parametersRdl(1).Name = "EndDate"
        parametersRdl(1).Value = "[Current Date].[YearMonthDate].[Month].&[2012-12-01T00:00:00]"
Private parametersRdl(1) As ParameterValue

        parametersRdl(0) = New ParameterValue()
        parametersRdl(0).Name = "StoreLocations"
        parametersRdl(0).Value = "[Stores].[Store Location].[Stores].&[456789], "[Stores].[Store Location].[Stores].&[123456]”

        parametersRdl(1) = New ParameterValue()
        parametersRdl(1).Name = "EndDate"
        parametersRdl(1).Value = "[Current Date].[YearMonthDate].[Month].&[2012-12-01T00:00:00]"
这将返回破折号而不是销售编号:

Private parametersRdl(1) As ParameterValue

        parametersRdl(0) = New ParameterValue()
        parametersRdl(0).Name = "StoreLocations"
        parametersRdl(0).Value = "[Stores].[Store Location].[Stores].&[456789]”

        parametersRdl(1) = New ParameterValue()
        parametersRdl(1).Name = "EndDate"
        parametersRdl(1).Value = "[Current Date].[YearMonthDate].[Month].&[2012-12-01T00:00:00]"
Private parametersRdl(1) As ParameterValue

        parametersRdl(0) = New ParameterValue()
        parametersRdl(0).Name = "StoreLocations"
        parametersRdl(0).Value = "[Stores].[Store Location].[Stores].&[456789], "[Stores].[Store Location].[Stores].&[123456]”

        parametersRdl(1) = New ParameterValue()
        parametersRdl(1).Name = "EndDate"
        parametersRdl(1).Value = "[Current Date].[YearMonthDate].[Month].&[2012-12-01T00:00:00]"
我尝试过各种参数分隔符,如&,逗号,“\,”等。 ParameterValue是否接受列表?我是否多次设置或附加参数srdl(0).Value? 当然,当我在BIDS中设置默认设置时,效果非常好。当我通过web发送一个列表时,日志显示它用\、(斜杠逗号)附加它们,但这似乎不起作用

Visual Studio 2010、VB.net、SSRS 2010(管理)、SSRS 2005(执行)


谢谢你的帮助

好的,下面是答案。只要按名称引用参数,就可以为同一参数添加多个值。有几种方法可以做到这一点。 第一种方法允许您定义列表对象的确切数量,但是第二种方法使添加一组值变得更容易。无论如何,每个方法都允许您将MDX值列表添加到同一SSRS参数

方法1:按特定索引添加值

Private parametersRdl(7) As ParameterValue
‘ Add your other parameters 
        parametersRdl(5) = New ParameterValue()
        parametersRdl(5).Name = "StoresStoreLocation"
        parametersRdl(5).Value = "[Stores].[Store Location].[Stores].&[123]"

        parametersRdl(6) = New ParameterValue()
        parametersRdl(6).Name = "StoresStoreLocation"
        parametersRdl(6).Value = "[Stores].[Store Location].[Stores].&[456]"
方法2:将字符串值拆分为一个列表,并在其中循环

Private parametersRdl(50) As ParameterValue


        Dim StoresString As String = "123, 456, 789, 741, 852, 963"
        Dim StoresList() As String = StoresString.Split(",")

        For n As Integer = 0 To StoresList.Count - 1
            parametersRdl(n) = New ParameterValue()
            parametersRdl(n).Name = "StoresStoreLocation"
            parametersRdl(n).Value = "[Stores].[Store Location].[Stores].&[" + StoresList(n) + "]"
        Next
另外,和往常一样,我花了好几个小时的时间才弄明白这一点。我希望有帮助