我遇到了这样的问题:
我的多维数据集[Project_sales]
中有一个维度[Default]
,其中一个层次结构[Sales_planning_RP]
。
我为这个维度创建了一个自定义属性,并将其命名为“Object”。 当我创建它时,我被要求:
1)财产密钥
2)财产价值
现在我有这个维度的Source-table,还有2个附加字段:
1)[Object_code] ex :('O01')< - 这就是我需要的(见下面的问题)
2)[Object_name] ex:('Object#3213,editable')< -This is what It get
但我在OLAP中只看到一个属性:
[Project_sales].[Default].CurrentMember.Properties("Object")
这给了我Object_name
所以我的问题是如何使用MDX
获取我的属性“对象”的密钥?
我的尺寸属性: http://i.stack.imgur.com/N2Aej.png
我的维度具有以下“parent_child”层次结构:
项目 - >对象 - > Element_of_area
此层次结构的每个元素都具有属性“Object”,可以通过以下方式调用它:
[Project_sales].[Default].CurrentMember.Properties("Object")
在属性“对象”的属性窗口(在我的图片中)中有2个属性: 1)KeyColumns内 2)NameColumns
我再说一遍:“对象”这里不是维度的成员,它是一个属性! 它有自己的钥匙和名称。
我可以得到它的名字,但无法理解如何获取它的密钥,它也被加载到立方体中。
查看我的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>
答案 0 :(得分:0)
好的,现在很清楚了! 属性的3个属性可能包含数据: 1)关键 2)名称 3)值
如果Name不为空且Key不为空,则在调用.Properties()函数时获得Name。 如果Name为空且Key不为空,则获得Key。