【问题标题】:SSRS running from SSAS - Muliple Date Filters with null value从 SSAS 运行的 SSRS - 具有空值的多个日期过滤器
【发布时间】:2014-09-23 05:53:50
【问题描述】:

我从 SSAS 多维数据集创建了一个 SSRS 报告,报告上有 2 个日期过滤器以及其他过滤器,我的日期参数有很多问题

  1. 如果日期范围参数设置为空,假设用户只想过滤日期范围 1,则报告不会返回任何数据,
  2. 如果这两个日期范围均已设置,则返回的数据包括所选日期范围之外的行

我已使用查询设计器创建代码,但我修改了日期参数表达式以传递日期 mdx 字符串。

SELECT
   NON EMPTY { [Measures].[Total Amount Debit],
   [Measures].[Holiday Value],
   [Measures].[Total Amount Credit],
   [Measures].[Canx Local Amount],
   [Measures].[Canx Amount] } 
   ON COLUMNS,
   NON EMPTY { ([Holiday ID].[Hierarchy].[Holiday ID].ALLMEMBERS * [Holiday ID].[Surname].[Surname].ALLMEMBERS * [depparture_date].[Hierarchy].[Start Date].ALLMEMBERS * [Compensation_Types].[Compensation Type].[Compensation Type].ALLMEMBERS * [Supplier_Deduction].[Supplier deduction].[Supplier deduction].ALLMEMBERS * [Component_Type].[Hierarchy].[Supplier Name].ALLMEMBERS * [Voucher Used].[Voucher used].[Voucher used].ALLMEMBERS * [task_created].[Hierarchy].[CREATED].ALLMEMBERS * [Booked_Date].[Booked Date].[Booked Date].ALLMEMBERS * [CR_Task ID].[Task ID].[Task ID].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,
   MEMBER_UNIQUE_NAME 
   ON ROWS 
FROM
   (
      SELECT
( STRTOMEMBER(@FromBookedDateBookedDate) : STRTOMEMBER(@ToBookedDateBookedDate) ) 
         ON COLUMNS 
      FROM
         (
            SELECT
( STRTOMEMBER(@FromtaskcreatedHierarchy) : STRTOMEMBER(@TotaskcreatedHierarchy) ) 
               ON COLUMNS 
            FROM
               (
                  SELECT
( STRTOSET(@CompensationTypesCompensationType, CONSTRAINED) ) 
                     ON COLUMNS 
                  FROM
                     (
                        SELECT
( STRTOSET(@CompoMadeCompensationmade, CONSTRAINED) ) 
                           ON COLUMNS 
                        FROM
                           (
                              SELECT
( STRTOSET(@SupplierDeductionSupplierdeduction, CONSTRAINED) ) 
                                 ON COLUMNS 
                              FROM
                                 [Customer_Relations]
                           )
                     )
               )
         )
   )
WHERE
   (
      IIF( STRTOSET(@CompoMadeCompensationmade, CONSTRAINED).Count = 1, STRTOSET(@CompoMadeCompensationmade, CONSTRAINED), [Compo_Made].[Compensation made].currentmember ) 
   )
   CELL PROPERTIES VALUE,
   BACK_COLOR,
   FORE_COLOR,
   FORMATTED_VALUE,
   FORMAT_STRING,
   FONT_NAME,
   FONT_SIZE,
   FONT_FLAGS

如何处理日期参数中的null 值?

【问题讨论】:

    标签: reporting-services ssas


    【解决方案1】:

    在您的数据集参数中(右键单击您的数据集-> 选择属性-> 选择属性),对于参数@FromBookedDateBookedDate,使用如下表达式:

    =IIF(isnothing(Parameters!Your_FromBookedDateBookedDate_Report_Parameter.value),”[depparture_date].[ BookedDate].[ALL]”, ”[depparture_date].[ BookedDate].[“&
    Parameters!Your_FromBookedDateBookedDate_Report_Parameter.value &”]” )
    

    记住:上面的表达式结果必须与你的立方体级别的属性相匹配。因为可能性是多维数据集可能具有像 20140131 这样的数据值

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多