【发布时间】:2014-07-18 22:58:18
【问题描述】:
这是我的第一个 StackOverflow 问题,因此感谢您提供的任何帮助。
现状 我们有一系列 SSRS 报告部署到以 SharePoint 集成模式运行的 SharePoint。我正在尝试使用 Oracle 数据库中的数据创建数据驱动的 SharePoint 订阅,这些数据将报告参数传递给针对分析服务器多维数据集运行的 SSRS 报告。
问题除了需要为报表提供多值参数时,我一切正常。
这是报告的基础 MDX:
SELECT NON EMPTY {[Measures].[Units Sold]} ON COLUMNS,
NON EMPTY { (
[PTOC Dates].[Broadcast Dates].[Bcst Week].ALLMEMBERS *
[Price Type Groups].[Price Group ID].[Price Group ID].ALLMEMBERS *
[Price Type Groups].[Price Type Group].[Price Type Group].ALLMEMBERS *
[Dayparts].[Network].[Network].ALLMEMBERS ) }
ON ROWS
FROM ( SELECT ( STRTOSET(@DaypartsNetworkDayparts, CONSTRAINED) ) ON COLUMNS
FROM ( SELECT ( STRTOSET(@NetworkNetwork, CONSTRAINED) ) ON COLUMNS
FROM ( SELECT ( STRTOSET(@AirDatesBroadcastYrQtr, CONSTRAINED) ) ON COLUMNS
FROM [Inventory])))
WHERE (
[Air Dates].[Broadcast Yr Qtr].currentmember,
[Network].[Network].currentmember,
[Dayparts].[Network Dayparts].currentmember )
有问题的多值参数是@DaypartsNetworkDayparts。
来自数据库的查询返回 2 个变体,单值和多值。请注意,它们是完全限定的 MDX 语法,我使用逗号来分隔多值参数。 (为了清楚起见,我省略了其他字段)。
DaypartsNetworkDayparts Parameter
---------------------------------
[Dayparts].[Network Dayparts].[Daypart Listname].&[3]&[25]
[Dayparts].[Network Dayparts].[Daypart Listname].&[3]&[25],[Dayparts].[Network Dayparts].[Daypart Listname].&[3]&[26]
接下来,我创建了一个 SharePoint 数据驱动订阅,该订阅使用此数据生成报告。第一行完美运行 - 使用正确的参数生成报告。第二个失败并出现以下错误:
为报告参数“DaypartsNetworkDayparts”提供的默认值或值不是有效值。;
使用 SSMS,我手动将参数行替换为:
FROM ( SELECT ({[Dayparts].[Network Dayparts].[Daypart Listname].&[3]&[25],
[Dayparts].[Network Dayparts].[Daypart Listname].&[3]&[26]} ) ON COLUMNS
效果很好,因为它是一个定义明确的集合。
所以问题在于将逗号分隔的列表传递给@DaypartsNetworkDayparts 参数的语法。
谁能帮助我使用正确的语法让 MDX 查询接受多个值?谢谢!
【问题讨论】:
标签: sharepoint reporting-services mdx