我们在用户登录并根据其商店进行身份验证的应用程序中使用SSRS。当他们生成报告时,我们将他们的商店名称传递给SSRS以生成他们商店的报告。在第一代报告中,一切正常。但是当用户选择不同的日期范围时,他们会获得系统中所有商店的报告。我们使用MDX在.rdl中提供商店名称的默认和可用参数,如下所示:
SELECT NON EMPTY { [Measures].[MTDActiveMembers], [Measures].[YTDActiveMembers],
[Measures].[MTDMembers], [Measures].[YTDMembers], [Measures].[Members],
[Measures].[Members-Active] }
ON COLUMNS, NON EMPTY { ([Store].[Store].[Store].ALLMEMBERS ) } DIMENSION
PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT (
STRTOSET(@StoreStore, CONSTRAINED) ) ON COLUMNS
FROM ( SELECT ( STRTOMEMBER(@FromCalendarDateHierarchy, CONSTRAINED) :
STRTOMEMBER(@ToCalendarDateHierarchy, CONSTRAINED) ) ON COLUMNS FROM [Members]))
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING,
FONT_NAME, FONT_SIZE, FONT_FLAGS
单步执行应用程序后发现,当用户选择不同的日期范围时,所有参数都是完整的,保留了正确的商店名称,但当用户点击“查看报告”参数时,商店名称更改为ALL。 :w00t:可能出错了什么?就app而言,“查看报告”是一个黑盒子,所以不知道用rdl改变什么:(提前感谢您的输入。
- 编辑 抱歉,我上面提供的查询是实际的报告查询。参数查询为:WITH MEMBER [Measures]。[ParameterCaption] AS [Store]。[Store] .CURRENTMEMBER.MEMBER_CAPTION MEMBER [Measures]。[ParameterValue] AS [Store]。[Store] .CURRENTMEMBER.UNIQUENAME MEMBER [Measures] 。[ParameterLevel] AS [Store]。[Store] .CURRENTMEMBER.LEVEL.ORDINAL SELECT {[Measures]。[ParameterCaption],[Measures]。[ParameterValue],[Measures]。[ParameterLevel]} ON COLUMNS,[Store] 。[存储] .ALLMEMBERS ON行(来自[会员]的SELECT(STRTOMEMBER(@FromCalendarDateHierarchy,CONSTRAINED):STRTOMEMBER(@ToCalendarDateHierarchy,CONSTRAINED))
答案 0 :(得分:0)
您好,而不是真正返回所有成员,您需要更改以下行:
NON EMPTY { ([Store].[Store].[Store].ALLMEMBERS ) }
要:
NON EMPTY { [Store].[Store].[Store] }
它只会返回那些有价值的东西。
答案 1 :(得分:0)
问题应该是当修改日期时,更新下面的所有参数都会更新,您必须检查Store parameter
<{strong> Date parameter
:
使用箭头向上将Store
参数移到Date
上方
我希望这会有所帮助