全部文档
文档中心多维表达式MDX函数StrToMember

StrToMember

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中使用变量》。

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send