【发布时间】:2016-02-19 14:31:57
【问题描述】:
我遇到过这样的问题:
我的多维数据集[Sales_planning_RP] 中有一个维度[Project_sales] 和一个层次结构[Default]。
我为此维度创建了一个自定义属性并将其命名为“对象”。 当我创建它时,我被要求:
1)属性密钥
2)物业价值
现在我有这个维度的源表,其中包含 2 个附加字段:
1) [Object_code] ex:('O01')
2) [Object_name] ex: ('Object # 3213, editable')
但我在 OLAP 中只看到一个属性:
[Project_sales].[Default].CurrentMember.Properties("Object")
这给了我 Object_name。
所以我的问题是如何使用MDX 获取我的属性“对象”的密钥?
我的维度属性: http://i.stack.imgur.com/N2Aej.png
我的维度具有以下“父子”层次结构:
项目->对象->Element_of_area
这个层次结构的每个元素都有属性“对象”,可以这样调用:
[Project_sales].[Default].CurrentMember.Properties("Object")
在属性“对象”的属性窗口(在我的图片中)有 2 个属性: 1)关键列 2)名称列
我再说一遍:这里的“对象”不是维度的成员,而是一个属性! 它有自己的密钥和名称。
我可以得到它的名字,但不明白如何得到它的密钥,它也被加载到立方体中。
查看我的 member_properties 列表: image_2
这是我维度的 XMLA 代码的一部分,用于说明问题:
<Attribute>
<Annotations>
<Annotation>
<Name>TypeOfInformation</Name>
<Value>1</Value>
</Annotation>
<Annotation>
<Name>TypeOfNameInformation</Name>
<Value>1</Value>
</Annotation>
<Annotation>
<Name>P4SSAMOVersion</Name>
<Value>2</Value>
</Annotation>
</Annotations>
<ID>Object</ID>
<Name>Object</Name>
<KeyColumns>
<KeyColumn>
<DataType>WChar</DataType>
<DataSize>40</DataSize>
<Source xsi:type="ColumnBinding">
<TableID>_x0036_Project_sales</TableID>
<ColumnID>Object_code</ColumnID>
</Source>
</KeyColumn>
</KeyColumns>
<NameColumn>
<DataType>WChar</DataType>
<DataSize>255</DataSize>
<Source xsi:type="ColumnBinding">
<TableID>_x0036_Project_sales</TableID>
<ColumnID>Object_name</ColumnID>
</Source>
</NameColumn>
<OrderBy>Key</OrderBy>
<MembersWithData>NonLeafDataHidden</MembersWithData>
<AttributeHierarchyVisible>false</AttributeHierarchyVisible>
</Attribute>
【问题讨论】:
-
在我看来“对象”是一个属性,而不是一个属性。
-
好的,我的意思是,它是用 .Properties() 函数返回的。
-
如果 Object 是一个属性层次结构,那么只需使用该属性层次结构来获取键
-
这就是重点,我不能!如图 2 所示,我只有“Object”,它返回一个名称,但图 1 告诉我们,这个 Object 有自己的键和名称,它们是从源表加载的,由我管理。跨度>