【问题标题】:SSRS Parameter Passing IssueSSRS 参数传递问题
【发布时间】:2012-11-08 13:14:48
【问题描述】:

我们在用户登录并根据其商店进行身份验证的应用程序中使用 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: 有什么问题吗?就应用而言,“查看报告”是一个黑匣子,所以不知道用 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].[Store].ALLMEMBERS 
   ON ROWS 
FROM
   (
      SELECT
( STRTOMEMBER(@FromCalendarDateHierarchy, CONSTRAINED) : STRTOMEMBER(@ToCalendarDateHierarchy, CONSTRAINED) ) 
         ON COLUMNS 
      FROM
         [Members]
   )

【问题讨论】:

    标签: sql reporting-services rdl


    【解决方案1】:

    您好,您需要更改以下行,而不是真正返回所有成员:

     NON EMPTY { ([Store].[Store].[Store].ALLMEMBERS ) }
    

    收件人:

     NON EMPTY { [Store].[Store].[Store] }
    

    它只会返回那些有价值的东西。

    【讨论】:

    • 我认为这是由于设置了默认参数。一旦我删除了默认值,它就可以工作了。
    【解决方案2】:

    问题应该是当Date被修改的时候,这个下面的所有参数都更新了,你必须检查Store parameter是不是低于Date parameter

    使用箭头向上Store参数移到Date上方

    希望对你有帮助

    【讨论】:

    • 我认为这也是由于参数设置的默认值。
    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多