我一直在寻找堆栈溢出,我无法弄明白。所以我有一个使用SSAS多维数据集的数据集,它有两个参数。它有一个类别和子类别。
我已经创建了数据集来填充这些参数,当我选择它们时它们工作正常。
我的报表运行方式是它是表中子报表的集合,它按类别和子类别分组。因此,当我选择类别参数时,它会列出所有子报告的每个子类别。
我要做的是获得该类别中所有子类别的总数。我尝试使用默认值为ALL但不起作用。我尝试在表格中对小组进行总计,但这不起作用 因此,对于G1组和子组SG1和SG2),以及子报告SR1,SR2,它就像这样
G1
-TOTAL(SG1 + SG2 + SG3)
--- SR1
--- SR2
-SG1
--- SR1
--- SR2
-SG2
--- SR1
--- SR2
通过将子报告中的category参数设置为传入类别的参数,子类别参数作为子组的值,我能够拉出子组报告部件。但我需要这个完整的。
我的类别的MDX是
SELECT { } ON COLUMNS, { ([Service].[Category].[Category].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Sales-Cube] CELL PROPERTIES VALUE
子类别的MDX是
SELECT { } ON COLUMNS, { ([Service].[Category].[Category].ALLMEMBERS * [Service].[SubCategory].[Subcategory].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Sales-Cube] CELL PROPERTIES VALUE
我使用参数的数据集的MDX是使用设计器创建的,如下所示
SELECT NON EMPTY { [Measures].[Sales Count] } ON COLUMNS,
NON EMPTY { ([Date].[Fiscal Year].[Fiscal Year].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM ( SELECT ( Filter( [Service].[SubCategory].[SubCategory].ALLMEMBERS, Instr( [Service].[SubCategory].currentmember.Properties( 'Member_Caption' ), @ParamSubCategory ) > 0 ) ) ON COLUMNS
FROM ( SELECT ( Filter( [Service].[Category].[Category].ALLMEMBERS, Instr( [Service].[Category].currentmember.Properties( 'Member_Caption' ), @ParamCategory ) > 0 ) ) ON COLUMNS
FROM [Sales-Cube])) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
因此,根据从类别中选择的内容,它会将子类别仅过滤到类别中的子类别,以便级联。 任何资源或帮助都会很棒。
答案 0 :(得分:2)
正如我在评论中所说,您不能使用您的成员的名称在MDX中切割您的多维数据集,您必须使用unique name。您必须处理它,以便当您的用户为Category X
参数选择Category Y
和ParamCategory
时,应将其设置为[Service].[Category].&[Category X]
和[Service].[Category].&[Category Y]
。这就是我要做的。
我使用MDX脚本返回标签(名称)和唯一名称以填充类别。
WITH MEMBER [Measures].[Category Label] AS
[Service].[Category].CurrentMember.Name
MEMBER [Measures].[Category UniqueName] AS
[Service].[Category].CurrentMember.UniqueName
SELECT
{ [Measures].[Category Label], [Measures].[Category UniqueName] } ON COLUMNS,
{} ON ROWS
FROM [Sales-Cube]
在参数属性/可用值中,您必须使用Category Label
的{{1}}字段和Label field
的{{1}}字段。
填充Category UniqueName
的同一个评论。
Value field
注意我使用ParamSubcategory
仅使用相关的子类别填充WITH MEMBER [Measures].[SubCategory Label] AS
[Service].[SubCategory].CurrentMember.Name
MEMBER [Measures].[SubCategory UniqueName] AS
[Service].[SubCategory].CurrentMember.UniqueName
SELECT
{ [Measures].[SubCategory Label], [Measures].[SubCategory UniqueName] } ON COLUMNS,
{ [Service].[SubCategory].[SubCategory] } ON ROWS
FROM [Sales-Cube]
WHERE ( StrToSet ( @ParamCategory ) )
。
现在您可以在MDX脚本中使用这些参数:
ParamCategory
注意ParamSubcategory
和SELECT NON EMPTY { [Measures].[Sales Count] } ON COLUMNS,
NON EMPTY
{
( [Date].[Fiscal Year].[Fiscal Year].AllMembers )
} Dimension Properties MEMBER_CAPTION,
MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT ( STRTOSET( @ParamSubcategory ) ) ON COLUMNS
FROM (
SELECT ( STRTOSET ( @ParamCategory ) ) ON COLUMNS
FROM [Sales-Cube]
)
) CELL Properties Value,
BACK_COLOR,
FORE_COLOR,
FORMATTED_VALUE,
FORMAT_STRING,
FONT_NAME,
FONT_SIZE,
FONT_FLAGS
函数不是requerid,因为您传递了唯一的名称成员。
它没有经过测试但应该有效,祝你好运!
如果有帮助,请告诉我。