Vb.net 如何在VB中通过ParameterValue向SSRS发送MDX参数列表?
如何在VB中通过ParameterValue向SSRS发送MDX参数列表? 我不确定这是否是正确的问题,但这里有一些症状:当我向SSRS发送一个商店ID时,我会返回有效数据。但只要我将一系列存储ID串在一起,它就会返回数值应该在哪里的(破折号)。 因此,这将返回有效的销售数字: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
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
另外,和往常一样,我花了好几个小时的时间才弄明白这一点。我希望有帮助