JSON data source

Data source

HTML

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

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

JavaScript

pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  global: {
  	options: {
    	grid: {
                    type: "compact",
                    showTotals: "off",
                    showGrandTotals: "off",
                }
    },
  },
  report: {
    dataSource: {
      data: getData(),
      mapping: {
      	Quantity: {
        	caption: 'Quantity',
          aggregations: ['sum', 'count', 'distinctcount'],
        },
        Price: {
        	caption: 'Price',
          aggregations: ['sum', 'count', 'distinctcount'],
        },
      },
    },
    formats: [
    	{ type: "NUMBER", name: "Price"}
    ],
    slice: {
      columns: [{
          uniqueName: "Color"
        },
        {
          uniqueName: "[Measures]"
        }
      ],
      rows: [{
        uniqueName: "City",
      }],
      measures: [{
        uniqueName: "Price",
        aggregation: "sum",
        availableAggregations: ['sum', 'count', 'distinctcount'],
        availableAggregationsCaptions: ['sum', 'count', 'distinctcount'],
        visible: true
      },
      {
        uniqueName: "Quantity",
        aggregation: "sum",
        availableAggregations: ['sum', 'count', 'distinctcount'],
        availableAggregationsCaptions: ['sum', 'count', 'distinctcount'],
        visible: true
      }
      ]
    },
  }
});

function getData() {
  return [{
      "Color": "green",
      "Country": "",
      "State": "Ontario",
      "City": "Toronto",
      "Price": '',
      "Quantity": ''
    },
    {
      "Color": "red",
      "Country": "",
      "State": "California",
      "City": "Los Angeles",
      "Price": '',
      "Quantity": ''
    }
  ]
}