Menu
Download Free Trial
Table of contents

getMembers

getMembers(hierarchyName:String, memberName:String, callbackHandler:String):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 – the name of the hierarchy.
  • memberName (optional) – 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) – Callback handler becomes useful when you works 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. 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

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 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 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:
(Object)#0
  caption = "Accessories"
  hierarchyName = "[Product].[Product Categories]"
  isLeaf = false
  parentMember = "[Product].[Product Categories].[All]"
  uniqueName = "[Product].[Product Categories].[Category].&[4]"
(Object)#0
  caption = "Bikes"
  hierarchyName = "[Product].[Product Categories]"
  isLeaf = false
  parentMember = "[Product].[Product Categories].[All]"
  uniqueName = "[Product].[Product Categories].[Category].&[1]"
(Object)#0
  caption = "Clothing"
  hierarchyName = "[Product].[Product Categories]"
  isLeaf = false
  parentMember = "[Product].[Product Categories].[All]"
  uniqueName = "[Product].[Product Categories].[Category].&[3]"
(Object)#0
  caption = "Components"
  hierarchyName = "[Product].[Product Categories]"
  isLeaf = false
  parentMember = "[Product].[Product Categories].[All]"
  uniqueName = "[Product].[Product Categories].[Category].&[2]"

//and now you can ask for '[Product].[Product Categories].[Category].&[4]' members:

flexmonster.getMembers('[Product].[Product Categories]', '[Product].[Product Categories].[Category].&[4]', 'onGetMembers');