如何通过VB中的ParameterValue将MDX参数列表发送到SSRS? 我不确定这是否是正确的问题,但这里有症状:当我向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]"
我尝试过各种参数分隔符,例如&,逗号,'\,'等。 ParameterValue是否接受列表?我多次设置或追加参数Rdl(0).Value? 当然,当我在BIDS中设置默认设置时,效果很好。当我通过网络发送一个列表时,日志会显示它附加了\,(斜杠逗号),但这似乎不起作用。
Visual Studio 2010,VB.net,SSRS 2010(管理),SSRS 2005(执行)
感谢您的帮助!
答案 0 :(得分:0)
好的,所以这就是答案。只要您按名称引用参数,就可以为同一参数添加多个值。有几种方法可以做到这一点。 第一种方法允许您定义列表对象的确切数量,但第二种方法可以更容易地添加一组值。无论如何,每种方法都允许您将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
P.S。像往常一样,我花了好几个小时把头撞在桌子上来解决这个问题。我希望它有所帮助。