Add measure captions when the slice has one measure

Customizing the grid

by Flexmonster Pivot Table

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>

<div id="pivot-container"></div>

CSS

@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    "dataSource": {
      "filename": "data/data.json"
    },
    "slice": {
      "rows": [{
        "uniqueName": "Category"
      }],
      "columns": [{
          "uniqueName": "Color"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "measures": [{
        "uniqueName": "Price",
        "aggregation": "sum"
      }]
    }
  }
});

let measure;

flexmonster.on("reportchange", updateGrid);
flexmonster.on("reportcomplete", updateGrid);

function updateGrid() {
  flexmonster.customizeCell();
  let report = flexmonster.getReport();
  let measures = report.slice.measures;
  if (measures.length == 1) {
    measure = measures[0];
    flexmonster.customizeCell(customizeCellFunction);
  }
}

function customizeCellFunction(cell, data) {
  if (data.type == "header" &&
    data.member != null &&
    data.measure == null &&
    data.label != "") {
    let newText = `${data.escapedLabel} (${measure.uniqueName})`;
    cell.text = cell.text.replace(data.escapedLabel, newText);
  }
}