JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivotContainer"></div>
JavaScript
var pivot = new Flexmonster({
container: "pivotContainer",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
data: getData(),
mapping: {
ARTICLE_CODE: {
type: "string",
caption: "Atrticle"
},
ARTICLE_NAME: {
type: "property",
hierarchy: "ARTICLE_CODE"
},
ARTICLE_PRICE: {
type: "number"
},
ARTICLE_DISCOUNT: {
type: "number"
}
}
},
"slice": {
"rows": [{
"uniqueName": "ARTICLE_CODE"
}],
"columns": [{
"uniqueName": "[Measures]"
}],
"measures": [{
"uniqueName": "ARTICLE_PRICE",
"aggregation": "sum"
},
{
"uniqueName": "ARTICLE_DISCOUNT",
"aggregation": "sum"
}
]
}
}
});
flexmonster.customizeCell((cell, data) => {
if(data.hierarchy && data.hierarchy.uniqueName == "ARTICLE_CODE" && data.type == "header")
cell.text += ` - ${data.member.properties['ARTICLE_NAME']}`
})
function getData() {
return [{
"ARTICLE_CODE": 543,
"ARTICLE_NAME": "Scooter",
"ARTICLE_PRICE": 7189,
"ARTICLE_DISCOUNT": 49
},
{
"ARTICLE_CODE": 951,
"ARTICLE_NAME": "Bike",
"ARTICLE_PRICE": 1432,
"ARTICLE_DISCOUNT": 20
},
{
"ARTICLE_CODE": 535,
"ARTICLE_NAME": "Toy",
"ARTICLE_PRICE": 7622,
"ARTICLE_DISCOUNT": 11
},
{
"ARTICLE_CODE": 343,
"ARTICLE_NAME": "Keyboard",
"ARTICLE_PRICE": 2329,
"ARTICLE_DISCOUNT": 57
},
{
"ARTICLE_CODE": 595,
"ARTICLE_NAME": "Cup",
"ARTICLE_PRICE": 2799,
"ARTICLE_DISCOUNT": 22
}
]
}