1. API reference
    1. Introduction
    2. Flexmonster()
  2. Objects
    1. All objects
    2. Report Object
    3. Slice Object
    4. Options Object
    5. Format Object
    6. Conditional Format Object
    7. Cell Data Object
  3. Methods
    1. All methods
    2. addCalculatedMeasure
    3. addCondition
    4. alert
    5. clear
    6. clearFilter
    7. clearXMLACache
    8. closeFieldsList
    9. collapseAllData
    10. collapseData
    11. connectTo
    12. customizeCell
    13. customizeContextMenu
    14. dispose
    15. expandAllData
    16. expandData
    17. exportTo
    18. getAllConditions
    19. getAllHierarchies
    20. getAllMeasures
    21. getCell
    22. getColumns
    23. getCondition
    24. getData
    25. getFilter
    26. getFilterProperties
    27. getFormat
    28. getMeasures
    29. getMembers
    30. getOptions
    31. getReport
    32. getReportFilters
    33. getRows
    34. getSelectedCell
    35. getSort
    36. getXMLACatalogs
    37. getXMLACubes
    38. getXMLADataSources
    39. getXMLAProviderName
    40. load
    41. off
    42. on
    43. open
    44. openFieldsList
    45. openFilter
    46. print
    47. refresh
    48. removeAllCalculatedMeasures
    49. removeAllConditions
    50. removeCalculatedMeasure
    51. removeCondition
    52. removeSelection
    53. runQuery
    54. save
    55. setBottomX
    56. setFilter
    57. setFormat
    58. setOptions
    59. setReport
    60. setSort
    61. setTopX
    62. showCharts
    63. showGrid
    64. showGridAndCharts
    65. sortingMethod
    66. sortValues
    67. updateData
  4. Events
    1. All events
    2. afterchartdraw
    3. aftergriddraw
    4. beforegriddraw
    5. beforetoolbarcreated
    6. cellclick
    7. celldoubleclick
    8. datachanged
    9. dataerror
    10. datafilecancelled
    11. dataloaded
    12. exportcomplete
    13. exportstart
    14. fieldslistclose
    15. fieldslistopen
    16. filteropen
    17. loadingdata
    18. loadinglocalization
    19. loadingolapstructure
    20. loadingreportfile
    21. localizationerror
    22. localizationloaded
    23. olapstructureerror
    24. olapstructureloaded
    25. openingreportfile
    26. printcomplete
    27. printstart
    28. querycomplete
    29. queryerror
    30. ready
    31. reportchange
    32. reportcomplete
    33. reportfilecancelled
    34. reportfileerror
    35. runningquery
    36. update
Table of contents

updateData

updateData(connectionParameters:Object, options:Object)

[starting from version: 2.3]

Helps to update data for the report without cleaning the report. Only the dataSource is updated, whereas the slice, all defined options, number and conditional formatting, the scroll position stay the same. For OLAP cubes, CSV, and OCSV, updateData allows connecting to a new data source. For JSON data source it is also possible to update only some part of the data.

Parameters

  • connectionParameters is the object which contains connection parameters. All of them are optional. Structure of connectionParameters object:
    • data – Property to set JSON data if it is already on the page. This property can be used only for JSON data source type. data contains the array of objects, where each object is an unordered set of name/value pairs or array of arrays, where each sub-array contains ordered values. The first object in JSON array can be used to define data types, captions, etc. Here is the list of supported properties that can be used in the first object of input array:
      • type – data type. Can be:
        • "string" – field contains string data. You will be able to aggregate it only with Count and Distinct Count aggregations. It will be sorted as string data.
        • "number" – field contains numeric data. You will be able to aggregate it with all different aggregations. It will be sorted as numeric data.
        • "level" – field is a level of hierarchy. This type is used together with other properties such as: hierarchy, level and parent
        • "month" – field contains months.
        • "weekday" – field contains days of the week.
        • "date" – field is a date. Such field will be split into 3 different fields: Year, Month, Day.
        • "date string" – field is a date. Such field will be formatted using date pattern (default is dd/MM/yyyy).
        • "year/month/day" – field is a date. You will see such date as a hierarchy: Year > Month > Day.
        • "year/quarter/month/day" – field is a date. You will see such date as a hierarchy: Year > Quarter > Month > Day.
        • "time" – field is a time (numeric data). Such field will be formatted using HH:mm pattern. Min, Max, Count and Distinct Count aggregations can be applied to it.
        • "datetime" – field is a date (numeric data). Such field will be formatted using dd/MM/yyyy HH:mm:ss pattern. Min, Max, Count and Distinct Count aggregations can be applied to it.
        • "id" – field is an id of the fact. Such field is used for editing data. This field will not be shown in Fields List. Use "id" type if you want to add/edit/delete partial data without updating the whole dataset. To understand how to use this type, please check example number 4.
        • "delete" – field for an indication that the record of JSON array can be deleted. This field will not be shown in Fields List. Check how "delete" type works in example number 4.
        • "hidden" – field is hidden. This field will not be shown in Fields List.
      • caption – hierarchy caption.
      • hierarchy – hierarchy name, if the field is a level of hierarchy ("type":"level").
      • level – caption of the level, if the field is a level of hierarchy ("type":"level").
      • parent – caption of the parent level, if the field is a level of hierarchy ("type":"level").
      • dimensionUniqueName – dimension unique name. Can be used to group several fields under one dimension.
      • dimensionCaption – dimension caption. Is used as a display name (folder name in Fields List) when several fields are grouped under one dimension.
    • dataSourceType – type of data source. The component supports the following types: "microsoft analysis services", "mondrian", "iccube", "csv", "ocsv", "json".
    • proxyUrl – the path to proxy URL to the OLAP data source, such as Microsoft Analysis Services, Mondrian, icCube (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • dataSourceInfo – the service info of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • catalog – the data source catalog name of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • cube – given catalog’s cube’s name of the OLAP data source (only for "microsoft analysis services", "mondrian", "iccube" data source types)
    • filename – the URL to CSV file or to server side script which generates CSV data (only for "csv", "ocsv" and "json" data source type)
    • browseForFile – this boolean parameter defines whether you want to load CSV file from the local file system (true) or not (false). It is false by default. (only for "csv", "ocsv" and "json" data source type)
    • fieldSeparator – defines specific fields separator to split CSV row (only for "csv" data source type). There is no need to define it if CSV fields are separated by , or ;. This property is used if another char separates fields. For example, if you use TSV, where tab char is used to separate fields in row, fieldSeparator parameter should be defined explicitly.
    • requestHeader (optional) – Object. This object allows adding custom request headers (only for "csv" and "json" data source types). The object consists of "key": "value" pairs, where "key" is a header name and "value" is its value. Check out live sample on JSFiddle. Important note: requestHeader is not saved when obtaining the report via save() and getReport() API calls.
  • options (optional) – Object. Contains additional options:
    • partial (optional) – Boolean. For JSON data source only. Allows partial updating of the data. The default value is false. When partial is set to true, you can add, update or remove certain records of JSON array. For more information please check example number 4.
    • ignoreSorting (optional) – Boolean. The default value is false. Set ignoreSorting: true and current sorting defined in the report will be ignored when you update the data.
    • ignoreScroll (optional) – Boolean. The default value is false. Set ignoreScroll: true and current scroll position in pivot table will be ignored when you update the data.

Examples

1) Update data from Microsoft Analysis Services:

flexmonster.updateData({
  dataSourceType: 'microsoft analysis services',
  proxyUrl: 'http://olap.flexmonster.com/olap/msmdpump.dll',
  dataSourceInfo: 'Provider=MSOLAP; Data Source=extranet;', 
  catalog: 'Adventure Works DW Standard Edition', 
  cube: 'Adventure Works'
});

Open the example on JSFiddle.

2) Update data from CSV data source:

flexmonster.updateData({
  dataSourceType: 'csv', 
  filename: 'data.csv'
});

Try on JSFiddle.

3) Update data from JSON inline data:

var jsonData = [{
  "Color": { "type": "string" },
  "M": {
    "type": "month",
    "dimensionUniqueName": "Days",
    "dimensionCaption": "Days",
    "caption": "Month"
  },
  "W": {
    "type": "weekday",
    "dimensionUniqueName": "Days",
    "dimensionCaption": "Days",
    "caption": "Week Day"
  },
  "Country": {
    "type": "level",
    "hierarchy": "Geography",
    "level": "Сountry"
  },
  "State": {
    "type": "level",
    "hierarchy": "Geography",
    "level": "State",
    "parent": "Сountry"
  },
  "City": {
    "type": "level",
    "hierarchy": "Geography",
    "parent": "State"
  },
  "Price": { "type": "number" },
  "Quantity": { "type": "number" }
}, {
  "Color": "green",
  "M": "September",
  "W": "Wed",
  "Country": "Canada",
  "State": "Ontario",
  "City": "Toronto",
  "Price": 174,
  "Quantity": 22
}];
flexmonster.updateData({ data: jsonData });

Check out on JSFiddle.

4) How to use updateData for adding/updating/removing partial data:

First of all, we add id and delete types to the first object of JSON array:

{
      "Category": { "type": "string" },
      "Price": { "type": "number" },
      "RowId": { "type": "id" },
      "DeleteRow": { "type": "delete" }
}

Then, when defining the data, we specify an id field for every object the following way:

{
      "Category": "Accessories",
      "Price": 242,   
      "RowId": 1 
}

To add or update only some of the records use partial: true:

var dataForUpdate = [{
      "Category": "Cars",
      "Price": 51844,
      "RowId": 4   	
}]
flexmonster.updateData({data: dataForUpdate}, {partial: true});

To delete the records specify id and delete fields:

var dataForUpdate = [{
      "RowId": 3,
      "DeleteRow": true  	
}]
flexmonster.updateData({data: dataForUpdate}, {partial: true});

Live example on JSFiddle.

See also

connectTo