API calls to add, get or remove calculated measures

Calculated measures

by Dongor7

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="addCalculatedMeasure()">Add Calculated Measure</button>
<button onclick="getMeasures()">Get Measures</button>
<button onclick="getAllMeasures()">Get All Measures</button>
<button onclick="removeCalculatedMeasure()">Remove Calculated Measure</button>
<button onclick="removeAllCalculatedMeasures()">Remove All Calculated Measures</button>

<div id="pivot-container">The component will appear here</div>

<div class="output" id="output">Output will appear here</div>

CSS

.output {
  width: 80%;
  height: 300px;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
  background: rgba(242, 242, 242, 1);
  font-family: Menlo, Monaco, "Courier New", Courier, monospace;
  white-space: pre;
  font-size: 16px;
  font-weight: 400;
  overflow-y: scroll;
  margin-top: 20px;
}

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  height: 260,
  report: {
    dataSource: {
      filename: "data/data.csv"
    }
  }
});

function addCalculatedMeasure() {
  let measure = {
    formula: 'sum("Quantity")/count("Quantity")',
    uniqueName: "Average Quantity",
    caption: "Average Quantity",
    grandTotalCaption: "Total Quantity",
    active: true
  };
  pivot.addCalculatedMeasure(measure);
}

function getMeasures() {
  let measures = flexmonster.getMeasures();
  showOutput(JSON.stringify(measures, null, 2));
}

function getAllMeasures() {
  let measures = flexmonster.getAllMeasures();
  showOutput(JSON.stringify(measures, null, 2));
  console.log(flexmonster.getReport())
}

function removeCalculatedMeasure() {
  let measureName = "Average Quantity";
  pivot.removeCalculatedMeasure(measureName);
}

function removeAllCalculatedMeasures() {
  pivot.removeAllCalculatedMeasures();
}

function showOutput(content) {
  document.getElementById("output").innerText = content;
}