Adding inline JSON data using the data property
Data source
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<br><br>
<h1>Report filtering "Product A"</h1>
<p>When clicking on "August" the filter is maintained, however when clicking on "September" the filter is removed and when returning to "August" the filter no longer exists.</p>
<button onclick="setData('august')">August data (with "Product A")</button>
<button onclick="setData('september')">September data (without "Product A")</button>
<div id="pivot-container"></div>
CSS
body {
padding: 15px;
}
h1 {
margin: 0 0 15px;
}
button {
text-transform: none;
}
JavaScript
const pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
data: [
{
"Product" : "Product A",
"Price" : 30,
},
{
"Product" : "Product B",
"Price" : 55,
},
],
},
slice: {
rows: [
{
uniqueName: "Product",
filter: {
members: [
"product.[product a]"
]
}
}
],
columns: [
{
uniqueName: "[Measures]"
}
],
measures: [
{
uniqueName: "Price",
aggregation: "sum"
}
]
},
}
});
const dataByMonth = {
august: [
{
"Product" : "Product A",
"Price" : 174,
},
{
"Product" : "Product B",
"Price" : 166,
},
{
"Product" : "Product C",
"Price" : 215,
},
{
"Product" : "Product D",
"Price" : 194,
}
],
september: [
{
"Product" : "Product B",
"Price" : 96,
},
{
"Product" : "Product C",
"Price" : 35,
},
{
"Product" : "Product D",
"Price" : 50,
}
]
};
function setData(month) {
const data = dataByMonth[month];
pivot.updateData({
data: data,
});
}