StrToMember 函数返回字符串表达式中指定的成员。 StrToMember 函数通常与变量一起使用,用于将从变量中获取的维度成员字符串转换成维度成员类型返回给 MDX 语句。
StrToMember(Member_Name_Str)
StrToMember(Dimension_Name_Str, Member_Name_Str)
参数 |
说明 |
---|---|
Member_Name_Str |
直接或间接指定成员的有效字符串。 |
Dimension_Name_Str |
直接或间接指定维度名的有效字符串,注意在财务模型中,这里实际使用的是字段名。 |
一个strToMember函数使用示例如下:
Define fcube cube_test as root_folder/test_folder/mdx_test/cube1.cub
var scenario = '[Scenario].[actual]';
var period = '[Period].[Q1]';
Use cube_test;
Scope(StrToMember($scenario), [Version].[V1], [Year].[2022], Descendants(StrToMember($period)), Leaves([Product].[TotalProduct]), Leaves([Entity].[TotalEntity]));
[Account].[Total_Sales] = [Account].[Volume]*[Account].[Price]->[Period].[Begbalance];
End Scope;
在上例中,我们定义了两个字符串的变量scenario和period,随后,通过函数StrToMember的转换,将其类型转换成成员类型,随后被Descendants函数以及scope语句所使用。
如果需要在参数中拼接维度名,则可以使用StrToMember(Dimension_Name_Str, Member_Name_Str)的写法,如下:
Define fcube cube_test as root_folder/test_folder/mdx_test/cube1.cub
Define var var_test as root_folder/test_folder/mdx_test/test_var.var
var scenario = var_test.curr_scenario;
var period = var_test.curr_period;
Use cube_test;
Scope(StrToMember('Scenario',$scenario), [Version].[V1], [Year].[2022],Descendants(StrToMember('Period',$period)),Leaves([Product].[TotalProduct]),Leaves([Entity].[TotalEntity]));
[Account].[Total_Sales] = [Account].[Volume]*[Account].[Price]->[Period].[Begbalance];
End Scope;
这里,假设@scenario会返回一个变量值“Actual”,则StrToMember(‘Scenario’,@scenario)会实际上返回[Scenario].[Actual]这个成员。
关于变量的使用,可以参考《MDX中使用变量》。
回到顶部
咨询热线