JSFiddle - React, Tailwind, and code Playground

by ilaria_nunziante

HTML

<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>

<button onclick="expand()">Expand data</button>
<button onclick="collapse()">Collapse data</button>
<button onclick="update()">Update data</button>
<div id="pivot-container"></div>

JavaScript

new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 600,
  toolbar: true,
  report: {
    dataSource: {
      dataSourceType: "microsoft analysis services",

      /* URL to msmdpump.dll */
      proxyUrl: "https://olap.flexmonster.com/olap/msmdpump.dll",

      /* Catalog name */
      catalog: "Adventure Works DW Standard Edition",

      /* Cube name */
      cube: "Adventure Works"
    },
    "slice": {
      "rows": [{
          "uniqueName": "[Geography].[Geography]",
          "filter": {
            "exclude": [
              "[Geography].[Geography].[Country].&[France]",
              "[Geography].[Geography].[Country].&[Germany]",
              "[Geography].[Geography].[Country].&[United Kingdom]",
              "[Geography].[Geography].[Country].&[United States]"
            ]
          }
        },
        {
          "uniqueName": "[Sales Reason].[Sales Reasons]"
        },
        {
          "uniqueName": "[Product].[Category]"
        },
        {
          "uniqueName": "[Reseller Sales Order Details].[Carrier Tracking Number]"
        }
      ],
      "columns": [{
        "uniqueName": "[Measures]"
      }],
      "measures": [{
          "uniqueName": "[Measures].[Reseller Order Count]"
        },
        {
          "uniqueName": "[Measures].[Discount Amount]"
        }
      ]
    }
  }
});


function expand() {
  var newReport = flexmonster.getReport();
  newReport.slice.expands = {expandAll: true};
  flexmonster.setReport(newReport);
}

function collapse() {
  var newReport = flexmonster.getReport();
  newReport.slice.expands = {};
  flexmonster.setReport(newReport);
}


function update() {
  flexmonster.updateData(flexmonster.getReport().dataSource, {
    "ignoreScroll": false,
  });
}