getMembers(hierarchyName: String, memberName: String, callbackHandler: Function): Array
[starting from version: 1.6]
Returns a list of members for the specified hierarchy.
CSV data source. If the hierarchy has more than one level the method returns a tree where each member has a list of its children. It is enough to specify hierarchyName
parameter only.
OLAP data source. If the hierarchy has more than one level the method returns only the members for the first level. To get children of the member, you should call getMembers()
with hierarchyName
, memberName
and callbackHandler
parameters.
Parameters
hierarchyName
– String. The name of the hierarchy.memberName
(optional) – String. The hierarchy’s member name. This parameter can be an empty string, only the members for the first level of the hierarchy will be returned.callbackHandler
(optional) – Function. A callback handler becomes useful when you work with OLAP data sources and you are not really sure whether you have got all list of members taken in completely or not. OLAP data source is not loaded for the whole data from the moment of call but will be loaded on demand. A callback handler will be called by the component to pass the result asynchronously when the list of members is loaded. If you have already loaded the specified hierarchy members’ list into the component, callbackHandler
will return instantly the result of the object.Returns
An array of objects with member’s caption
, uniqueName
, hierarchyName
, children
, isLeaf
and parentMember
properties.
If data load is in progress and callbackHandler
is not set, an empty array will be returned.
Examples
1) CSV data source, where Category
hierarchy has only one level:
flexmonster.getMembers("Category");
/* method returns an array of objects
[
{caption: "Accessories", hierarchyName: "Category",
uniqueName: "category.[accessories]", children: [],
isLeaf:true, parentMember:"(All)"
},
{caption: "Cars", hierarchyName: "Category",
uniqueName: "category.[cars]", children: [],
isLeaf:true, parentMember:"(All)"
},
{caption: "Clothing", hierarchyName: "Category",
uniqueName: "category.[clothing]", children: [],
isLeaf:true, parentMember:"(All)"
}
]
*/
Check out on JSFiddle.
2) CSV data source, where Date
hierarchy has more than one level:
flexmonster.getMembers('Date');
/* method returns an array of objects
[
{
caption: "2003",
hierarchyName: "Date",
uniqueName: "date.[2003]",
children: [
{
caption: "Quarter 1",
hierarchyName: "Date",
uniqueName: "date.quarter.[2003/quarter 1]",
children: [
{
caption: "January",
hierarchyName: "Date",
uniqueName: "date.quarter.[2003/quarter 1/january]",
children: [ ],
isLeaf:true,
parentMember: "(All)"
}
]
},
{
caption: "Quarter 2",
hierarchyName: "Date",
uniqueName: "date.quarter.[2003/quarter 2]",
children: [
{
caption: "April",
hierarchyName: "[Date].[Date]",
uniqueName: "date.quarter.[2003/quarter 2/april]",
children: [ ],
isLeaf:true,
parentMember: "(All)"
}
]
}
],
isLeaf:true,
parentMember: "(All)"
},
{
caption: "2004",
hierarchyName: "Date",
uniqueName: "date.[2004]",
children: [
{
caption: "Quarter 3",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3]",
children: [
{
caption: "July",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3/july]",
children: [ ],
isLeaf:true,
parentMember: "(All)"
},
{
caption: "August",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3/august]",
children: [ ],
isLeaf:true,
parentMember: "(All)"
}
]
}
],
isLeaf:true,
parentMember: "(All)"
}
]
*/
3) OLAP data source, where [Product].[Product Categories]
hierarchy has more than one level:
flexmonster.getMembers('[Product].[Product Categories]', '', onGetMembers);
function onGetMembers(members) {
for (var i = 0; i < members.length; i++) {
console.log(members[i]);
}
}
/* the output will be the following:
[{
caption: "Accessories",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[4]"
}
{
caption: "Bikes",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[1]"
}
{
caption: "Clothing",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[3]"
}
{
caption: "Components",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[2]"
}]
now you can ask for '[Product].[Product Categories].[Category].&[4]' members:
flexmonster.getMembers('[Product].[Product Categories]',
'[Product].[Product Categories].[Category].&[4]', onGetMembers);
*/
Open the example on JSFiddle.