StrToMember 函数返回字符串表达式中指定的成员。 StrToMember 函数通常与变量一起使用,用于将从变量中获取的维度成员字符串转换成维度成员类型返回给 MDX 语句。
StrToMember(Dimension_Member_Str)
StrToMember(Dimension_Name_Str, Member_Name_Str)
Dimension_Member_Str -> 数据类型:String 指定维度成员的有效字符串。
Dimension_Name_Str -> 数据类型:String 指定维度名的有效字符串,注意在财务模型中,这里实际使用的是字段名。 Member_Name_Str -> 数据类型:String 指定维度成员名的有效字符串。
返回值数据类型:Member
一个strToMember函数使用示例如下:
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)的写法,如下:
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中使用变量》。
回到顶部
咨询热线