Flexmonster Software License Agreement (“Agreement”) has been revised and is effective as of January 7, 2025.
The following modifications were made:
The modified version of Agreement is available here.
Downloading, installing, and/or continuing to use Flexmonster Software after January 7, 2025, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license or maintenance after the effective date of these modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
Flexmonster Pivot Table & Charts for React seamlessly integrates with Google Charts — a web service for data visualization. Using these tools together, you can create a well-designed interactive dashboard and embed it into any React application.
Dashboard analytics is a comprehensive instrument to assist in making data-driven decisions. With its help, end-users can highlight particular insights, find complex business solutions, and present the results.
Dashboards with React Flexmonster Pivot and Google Charts are very interactive: changes applied to the pivot grid configuration are reflected in charts in an instant. Because of this real-time behavior, end-users can look at the data from different points right away.
import React from "react"; import * as FlexmonsterReact from "react-flexmonster"; import "flexmonster/lib/flexmonster.googlecharts.js"; import { Chart } from "react-google-charts"; class PivotTableDemo extends React.Component { constructor(props) { super(props); this.myRef = React.createRef(); this.state = {}; this.colors = [ "#4cbf8b", "#e8734c", "#ffcd4c", "#9875e3", "#4c9eff", "#8acfc3", "#cd97e6", "#f1d34c", "#65d2e7", ]; } render() { return ( <> <FlexmonsterReact.Pivot ref={this.myRef} height={350} componentFolder="https://cdn.flexmonster.com/" report={{ dataSource: { type: "json", filename: "data/demos/googlecharts-demo-data.json", }, slice: { rows: [ { uniqueName: "Date.Month", }, ], columns: [ { uniqueName: "[Measures]", }, ], measures: [ { uniqueName: "Income", formula: 'sum("Sales") * sum("Unit Price")', individual: true, caption: "Income", format: "currency", }, { uniqueName: "Sales", active: false, format: "currency", }, { uniqueName: "Expenses", format: "currency", }, { uniqueName: "Profit", formula: 'sum("Income") - sum("Expenses")', individual: true, caption: "Profit", format: "currency", }, ], }, formats: [ { name: "", thousandsSeparator: ",", decimalSeparator: ".", decimalPlaces: 2, }, { name: "currency", currencySymbol: "$", }, ], options: { grid: { showHeaders: false, }, showAggregationLabels: false, }, }} licenseFilePath="https://cdn.flexmonster.com/jsfiddle.charts.key" reportcomplete={this.onReportComplete} /> <div class="demo-box"> <div class="demo-title"> Income, Expenses, and Profit </div> <div id="googlechart-column-container"> <Chart chartType="ColumnChart" data={this.state.googlechartsdataColumn} options={{ fontName: "SERIF TYPEFACE", chartArea: { height: "90%", }, height: 300, colors: this.colors, }} legendToggle /> </div> </div> <div class="demo-box"> <div class="demo-title"> Top 5 Countries by Sales </div> <div id="googlechart-pie-container"> <Chart chartType="PieChart" data={this.state.googlechartsdataPie} options={{ legend: { position: "bottom", }, height: 300, pieSliceText: "none", // Remove text from pie slices pieHole: 0.35, chartArea: { height: "85%", top: 0, }, pieSliceBorderColor: "none", colors: this.colors, }} legendToggle /> </div> </div> </> ); } onReportComplete = () => { this.myRef.current.flexmonster.off(this.reportComplete); this.createColumnChart(); this.createPieChart(); }; createColumnChart = () => { this.myRef.current.flexmonster.googlecharts.getData( { type: "column", }, (chartConfig) => this.setState({ googlechartsdataColumn: chartConfig.data }), (chartConfig) => this.setState({ googlechartsdataColumn: chartConfig.data }), ); }; createPieChart = () => { this.myRef.current.flexmonster.googlecharts.getData( { type: "pie", slice: { rows: [ { uniqueName: "Country", filter: { measure: { uniqueName: "Sales", }, query: { top: 5, }, }, }, ], columns: [ { uniqueName: "[Measures]", }, ], measures: [ { uniqueName: "Sales", }, ], }, }, (chartConfig) => this.setState({ googlechartsdataPie: chartConfig.data }), (chartConfig) => this.setState({ googlechartsdataPie: chartConfig.data }), ); }; } export default PivotTableDemo;
.demo-box { background-color: #fafafa; position: relative; padding: 20px 20px 20px 20px; border: 1px solid #e9e9e9; margin-bottom: 20px; } .demo-title { font-size: 18px; margin-bottom: 30px; white-space: nowrap; text-overflow: ellipsis; color: #555; } #pivot-container { margin-bottom: 20px; } /** For the background color of Google Charts * (for material design charts, it can't be changed via options, only via CSS) */ #googlechart-column-container > div > div > div > div > div > svg > rect { fill: #fafafa !important; } #googlechart-pie-container > div > div > div > div > div > svg > rect { fill: #fafafa !important; } /* For text on xAxis of the column chart */ #googlechart-column-container > div > div > div > div > div > svg > g:nth-child(n) > g:nth-child(n) > g > text { color: #555; fill: rgb(117, 117, 117); font-family: Roboto; font-size: 12px; } #googlechart-pie-container > div > div > div > div > div > svg > g:nth-child(n) > g:nth-child(n) > g > text { color: #555; fill: rgb(117, 117, 117); font-family: Roboto; font-size: 12px; }
With our Integration with Google Charts guide, you can learn how to configure a dashboard with Flexmonster and Google Charts just in a few steps.
The process is straightforward: add the pivot table and charts to the web page and make both components communicate via the specially prepared charting connector.