Menu
Download Free Trial
Table of contents

getData

getData(options:Object, callbackHandler:Function, updateHandler:Function)

[starting from version: 2.3]

This method is used for integration with 3rd party charting libraries. It asynchronously passes the data to callbackHandler and updateHandler. You can retrieve the data that pivot instance is showing or define the slice with the data you would like to get.

Parameters

  • options – Object. This object has the following parameters:
    • slice (optional) – Object. Contains information about the slice. If not defined, the API call will return data displayed in the pivot table.
  • callbackHandler – Function. Gets one input parameter – rawData. Tracks when the data is ready.
  • updateHandler (optional) – Function. Gets one input parameter – rawData. Tracks if data in pivot was filtered/sorted/etc.

Response

rawData is the object asynchronously passed to callbackHandler and updateHandler. It has the following structure:

  • data – Array. Array of objects that represents all the data from the dataset. Each object can have c0 - cN, r0 - rN and v0 - vN parameters, where c0 - cN are for column members, r0 - rN are for row members and v0 - vN are for values. Please note that if a cell has no value, NaN will be put in corresponding v0 - vN.
  • meta – Object. Meta data about the returned data:
    • caption – String. Chart’s title.
    • cAmount – Number. The number of fields in columns in the slice.
    • c0Name – String. The caption of the first field in columns in the slice. In meta object will be as many c0Name, c1Name, c2Name, etc as cAmount.
    • formats – Array. Formats of measures from the slice. It has as many format objects as vAmount.
    • rAmount – Number. The number of fields in rows in the slice.
    • r0Name – String. The caption of the first field in rows in the slice. In meta object will be as many r0Name, r1Name, r2Name, etc as rAmount.
    • vAmount – Number. The number of measures in the slice.
    • v0Name – String. The caption of the first measure in the slice. In meta object will be as many v0Name, v1Name, v2Name, etc as vAmount.

Example

Example of rawData response. We have the following pivot table:

Category
Color Accessories Components Total Sum of Price
blue 553 584 553 584
green 28 008 207 128 235 136
Grand Total 28 008 760 712 788 720

The result of the API call

flexmonster.getData({}, function(data) {console.log(data)})

will be the following:

{
	data:[
		{
			v0:788720
		},
		{
			r0:"blue",
			v0:553584
		},
		{
			r0:"green",
			v0:235136
		},
		{
			c0:"Accessories",
			v0:28008
		},
		{
			c0:"Components",
			v0:760712
		},
		{
			c0:"Accessories",
			r0:"blue",
			v0:NaN
		},
		{
			c0:"Components",
			r0:"blue",
			v0:553584
		},
		{
			c0:"Accessories",
			r0:"green",
			r0:28008
		},
		{
			c0:"Components",
			r0:"green",
			v0:207128
		}
	],
	meta: {
		caption:"",
		cAmount:1,
		c0Name:"Category",
		formats: [{
			name:"",
			currencySymbol:"",
			currencySymbolAlign:"left",
			decimalPlaces:-1,
			decimalSeparator:".",
			divideByZeroValue:"Infinity",
			infinityValue:"Infinity",
			isPercent:false,
			maxDecimalPlaces:-1,
			maxSymbols:20,
			nullValue:"",
			textAlign:"right",
			thousandsSeparator:" "
		}],
		rAmount:1,
		r0Name:"Color",
		vAmount:1,
		v0Name:"Sum of Price"
	}
}

data array in rawData object contains all numbers shown in the pivot table including grand totals, totals and subtotals.

Each object with grand totals contains values (v0 - vN) only. In our example this is:

		{
			v0:788720
		}

Each object with totals contains either values (v0 - vN) and columns (c0 - cN) or values and rows (r0 - rN). In our example this is:

		{
			r0:"blue",
			v0:553584
		},
		{
			r0:"green",
			v0:235136
		},
		{
			c0:"Accessories",
			v0:28008
		},
		{
			c0:"Components",
			v0:760712
		}

Depending on for which visualization tool you are requesting data from the pivot table, you may need data with grand totals, totals and subtotals or without them. For some chart types, only totals are necessary.

Check out the example on JSFiddle.