JSFiddle - React, Tailwind, and code Playground

by Ravi A

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>

JavaScript

var pivot = new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  report: {
    dataSource: {
      dataSourceType: "json",
      data: getData()
    },
    "slice": {
      "rows": [{
        "uniqueName": "Customer"
      }],
      "columns": [{
          "uniqueName": "Product"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "measures": [{
          "uniqueName": "Curr Vol",
          "aggregation": "sum"
        },
        {
          "uniqueName": "Prev Vol",
          
        },
        {
          "uniqueName": "Vol Chg",
          "formula": "(sum(\"Curr Vol\") - sum(\"Prev Vol\")) / sum(\"Prev Vol\")",
          "caption": "Vol Chg"
        }
      ]
    },
    "options": {
      "grid": {
        "showGrandTotals": "on"
      }
    },
  },
  width: "100%",
  height: 500,
  toolbar: true
});

function getData() {
  return [{
    "Customer": "A",
    "Product": "P1",
    "Curr Vol": 10,
    "Prev Vol": 40
  }, {
    "Customer": "A",
    "Product": "P2",
    "Curr Vol": 20,
    "Prev Vol": 30
  }, {
    "Customer": "B",
    "Product": "P1",
    "Curr Vol": 30,
    "Prev Vol": 20
  }, {
    "Customer": "B",
    "Product": "P2",
    "Curr Vol": 40,
    "Prev Vol": 10
  }];
};