Reporting services 使用可能完全为空的层次结构级别

Reporting services 使用可能完全为空的层次结构级别,reporting-services,ssas,mdx,ssrs-2012,Reporting Services,Ssas,Mdx,Ssrs 2012,我的层次结构最多有4层。级别4并不总是存在,但我的SSRS报告将其用于某些逻辑(处理空值)。 我的MDX查询的这一部分返回层次结构的所有级别以及一些数据: { DESCENDANTS([Hierarchy].[Hierarchy], [Hierarchy].[Hierarchy].[Level4], LEAVES) } ON ROWS 当我的结果至少有一行表示级别4时,报告工作正常。但是,如果用户使用报告中的某些参数指定一组不具有级别4的数据,则会显示以下错误: The dataset 'Da

我的层次结构最多有4层。级别4并不总是存在,但我的SSRS报告将其用于某些逻辑(处理空值)。 我的MDX查询的这一部分返回层次结构的所有级别以及一些数据:

{ DESCENDANTS([Hierarchy].[Hierarchy], [Hierarchy].[Hierarchy].[Level4], LEAVES) } ON ROWS
当我的结果至少有一行表示级别4时,报告工作正常。但是,如果用户使用报告中的某些参数指定一组不具有级别4的数据,则会显示以下错误:

The dataset 'Data' contains a definition for the Field 'Level4'.
This field is missing from the returned result set from the data source.
我该怎么处理?基本上,如果用户在没有级别4节点的情况下过滤出一小部分数据,我的报告就会停止工作

编辑:我已经做了一些测试,由于某种原因,错误不再显示。但是,我仍然有同样的问题,因为报告中的Level4值字段只是空白,如果我在其中放入一些IsNothing()逻辑,我会得到#Error而不是True/False,因此报告不起作用。

而不是此:

{ DESCENDANTS([Hierarchy].[Hierarchy], [Hierarchy].[Hierarchy].[Level4], LEAVES) } ON ROWS
是否需要指定级别4?我假设上面返回的是层次结构中最低级别(4)的所有成员,可能类似于以下“模式”:

[Dimension].[Hierarchy].LEVELS([Dimension].[Hierarchy].Levels.Count-1) 
DESCENDANTS([Dimension].[Hierarchy].[All], ([Dimension].[Hierarchy].Levels.Count - 1), SELF)
但是,如果您想坚持使用函数的后代,那么可能是这样的“模式”:

[Dimension].[Hierarchy].LEVELS([Dimension].[Hierarchy].Levels.Count-1) 
DESCENDANTS([Dimension].[Hierarchy].[All], ([Dimension].[Hierarchy].Levels.Count - 1), SELF)
但是,即使是像下面这样的东西也可以满足您的要求:

DESCENDANTS([Dimension].[Hierarchy].[All], , LEAVES)

您可以发布整个查询吗?这将返回与我的查询相同的结果,仍然存在相同的问题,即用户对没有级别4层次结构成员的数据进行筛选,并且报告逻辑出现故障(IsNothing check returns#Error)@Alex_404
IsNothing
不是MDX函数它是SSRS中的一个函数,我尝试使用它来处理缺少的行,MDX查询没有问题