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="pivot-container"></div>
CSS
#fm-pivot-view .fm-fields-view {
min-height: 620px !important;
width: 90% !important;
}
@media (max-width: 760px) {
#fm-pivot-view .fm-fields-view {
min-height: 620px !important;
width: 100% !important;
}
}
#fm-pivot-view .fm-fields-view .fm-popup-content .fm-list-wrap .fm-list-content li {
height: 28px !important;
padding-top: 5px !important;
}
#fm-pivot-view .fm-fields-view li.fm-values:before {
top: 2px !important;
}
#fm-pivot-view .fm-fields-view .fm-aggr-display {
padding-top: 2px !important;
}
#fm-pivot-view .fm-fields-view .fm-aggr-display:after {
top: 5px !important;
}
JavaScript
new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
type: "json",
data: getData()
},
slice: {
rows: [{
uniqueName: "MaterialClassType"
}, {
uniqueName: "MaterialClass"
}, {
uniqueName: "VendorPart"
}],
columns: [{
uniqueName: "[Measures]"
}],
measures: [{
uniqueName: "ConsumedQuantity"
}]
},
options: {
configuratorActive: true,
showAggregationLabels: false
}
}
});
function getData() {
return [{
ConsumedDate: "2022-12-15",
BornNumber: 10,
ConsumedQuantity: 20,
ConsumedQuantityUnit: 50,
CustCode: "XXXX",
CustomerName: "John Doe",
ExpectedReceipts: 25,
ExpectedReceiptsUnit: 25,
MaterialClass: "class",
MaterialClassType: "type",
VendorPart: "vendor"
}]
}