getData(options: Object, callbackHandler: Function, updateHandler: Function)
[starting from version: 2.3]
Note! This method is only for integration with 3rd party charting libraries.
getData
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. Note: this property is available for CSV and JSON data sources only. callbackHandler
– Function. Gets two input parameters – rawData
and error
. Tracks when the data is ready.updateHandler
(optional) – Function. Gets two input parameters – rawData
and error
. Tracks if the data in the pivot table was filtered/sorted/etc or a number format was changed.Response
rawData
is an 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. 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
. error
is an object that is returned if getData()
gets terminated if the web page is likely to crash due to the too large dataset uploaded. Unless the object is undefined
, it’s asynchronously passed to callbackHandler
and updateHandler
. It has the following structure:
dataHeight
– Number. The number of rows from the report that failed to be retrieved by getData()
.dataWidth
– Number. The number of columns that failed to be retrieved by getData()
.errorMessage
– String. An error message. Its text description can be changed via the localization file. Default value: "Dataset is too large. Some fields cannot be expanded. Please narrow down the dataset."
.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: "",
negativeCurrencyFormat: "-$1",
positiveCurrencyFormat: "$1",
decimalPlaces: -1,
decimalSeparator: ".",
divideByZeroValue: "Infinity",
infinityValue: "Infinity",
isPercent: false,
maxDecimalPlaces: -1,
maxSymbols: 20,
negativeNumberFormat: "-1",
nullValue: "",
textAlign: "right",
thousandsSeparator: " ",
beautifyFloatingPoint: true
}],
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.
Read a tutorial how getData
is used for Integration with any charting library.