1. API reference
  2. Welcome
    1. Component overview
    2. Quick start
    3. System requirements
    4. Troubleshooting
    5. Managing license keys
  3. Connecting to Data Source
    1. JSON
      1. Connecting to JSON
      2. Data types in JSON
    2. CSV
      1. Connecting to CSV
      2. Connecting to CSV using Compressor
      3. Data types in CSV
    3. Database
      1. Connecting to SQL databases
      2. Connecting to other databases
      3. Connecting to database with Node.js
      4. Connecting to database with .NET
      5. Connecting to database with .NET Core
      6. Connecting to database with Java
      7. Connecting to database with PHP
    4. Microsoft Analysis Services
      1. Connecting to Microsoft Analysis Services
      2. Getting started with Accelerator
      3. Installing Accelerator as a Windows Service
      4. Referring Accelerator as a DLL
      5. Configuring authentication process
      6. Configuring secure HTTPS connection
      7. Troubleshooting
    5. Pentaho Mondrian
      1. Connecting to Pentaho Mondrian
      2. Getting started with Accelerator
      3. Configuring Mondrian roles
      4. Сonfiguring username/password protection
      5. Сonfiguring secure HTTPS connection
      6. Troubleshooting
    6. icCube
  4. Security
    1. Accelerator security
    2. Data Compressor Security
  5. Configuring report
    1. What is a report
    2. Data source
    3. Slice
    4. Options
    5. Number formatting
    6. Conditional formatting
    7. Set report to the component
    8. Get report from the component
    9. Date and time formatting
    10. Configuring global options
    11. Export and print
    12. Calculated values
    13. Custom sorting
  6. Integration with frameworks
    1. Available tutorials
    2. Integration with AngularJS (v1.x)
    3. Integration with Angular
    4. Integration with React
    5. Integration with Webpack
    6. Integration with ASP.NET
    7. Integration with jQuery
    8. Integration with JSP
    9. Integration with TypeScript
    10. Integration with RequireJS
    11. Integration with PhoneGap
  7. Integration with charts
    1. Integration with Highcharts
    2. Integration with Google Charts
    3. Integration with FusionCharts
    4. Integration with any charting library
  8. Customizing
    1. Customizing toolbar
    2. Customizing appearance
    3. Customizing context menu
    4. Localizing component
  9. Updating to the latest version
    1. Updating to the latest version
    2. Release notes
    3. Migration guide from 2.5 to 2.6
    4. Migration guide from 2.4 to 2.5
    5. Migration guide from 2.3 to 2.4
    6. Migration guide from 2.2 to 2.3
    7. Documentation for older versions
Table of contents

Integration with React

This tutorial will help you to integrate Pivot Table Component with React framework. Choose your option:

  1. React/JSX application with Flexmonster Pivot (an HTML page with script tags)
  2. React + ES6 application with Flexmonster Pivot
  3. React + TypeScript application with Flexmonster Pivot

React/JSX application with Flexmonster Pivot

Step 1: Create a new React project

  1. Create a new folder for the project, i.e. my-react-project/.
  2. Copy flexmonster/ folder into your project folder. You can find flexmonster/ inside of the package you have downloaded from the site.
  3. Create index.html file inside my-react-project/ and add React dependencies:
    <!DOCTYPE html>
    <html>
    <head>
        <title>My React/Flexmonster Project</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script>
    </head>
    <body>
    </body>
    </html>
    

Step 2: Add Flexmonster dependencies

Add Flexmonster library to the index.html:

<!DOCTYPE html>
<html>
<head>
    <title>My React/Flexmonster Project</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script>
    <script src="flexmonster/flexmonster.js"></script>
</head>
<body>
</body>
</html>

Step 3: Initialize Pivot Table

  1. Add div to insert Pivot:
    <body>
        <div id="fm-container"></div>
    </body>
    
  2. Render pivot to fm-container using React. After that an empty grid will be shown. Please note, licenseKey is your license or trial key, so you should replace XXX with an actual key:
    <script type="text/babel">
    	ReactDOM.render(
    		<FlexmonsterReact.Pivot licenseKey="XXX"/>, 
    		document.getElementById("fm-container")
    	);
    </script>
    

Step 4: Load sample report

To see some data on grid add report attribute with report URL:

<script type="text/babel">
	ReactDOM.render(
		<FlexmonsterReact.Pivot report="https://cdn.flexmonster.com/reports/report.json" licenseKey="XXX"/>, 
		document.getElementById("fm-container")
	);
</script>

Now a simple pivot table is added to your application.

React + ES6 application with Flexmonster Pivot

If you don’t have React app, you can create it by running in the console:

npx create-react-app my-app
cd my-app

Add Flexmonster React module by running in the console:

npm i react-flexmonster --save

Include FlexmonsterReact into App.js:

import * as FlexmonsterReact from 'react-flexmonster';

Insert a pivot table into App.js:

class App extends Component {
  render() {
    return (
      <div className="App">
        <FlexmonsterReact.Pivot toolbar={true} 
        componentFolder="https://cdn.flexmonster.com/" width="100%" 
        report="https://cdn.flexmonster.com/reports/report.json"/>
      </div>
    );
  }
}

Run your application from the console:

npm start

To see the result open your browser on http://localhost:3000/.

React + TypeScript application with Flexmonster Pivot

On our GitHub we have added a sample project of Flexmonster Pivot integration with React + TypeScript.

Properties

All available attributes for FlexmonsterReact.Pivot are the same as for new Flexmonster().

  • toolbar – parameter to embed the toolbar or not. Default value is false – without the toolbar.
  • licenseKey – the license key.
  • width – width of the component on the page (pixels or percent). The default value for width is 100%.
  • height – height of the component on the page (pixels or percent). The default value for height is 500.
  • componentFolder – URL of the component’s folder which contains all necessary files. Also, it is used as a base URL for report files, localization files, styles and images. The default value for componentFolder is flexmonster/.
  • report – property to set a report. It can be inline report JSON, URL to report JSON or URL to report XML.
  • global – object that allows you to preset options for all reports. These options can be overwritten for concrete reports. Object structure is the same as for report.
  • customizeCell – function that allows customizing of separate cells. Have a look at customizeCell definition and examples.
  • customizeContextMenu – function that allows customizing of separate cells. Have a look at customizeContextMenu definition and examples.

Event handlers:

  • ready
  • reportcomplete
  • reportchange
  • update
  • cellclick
  • celldoubleclick
  • filteropen
  • fieldslistopen
  • fieldslistclose

What’s next?