JSFiddle - React, Tailwind, and code Playground
Slice configuration
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="filtersArea">
<label for="topN">Top N Contries by Value:</label>
<select id="topN">
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected>3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<button onclick="applyTopN()">Apply</button>
</div>
<div class="pivot-wrapper">
<div id="pivot-container1"></div>
<div id="pivot-container2"></div>
</div>
CSS
#filtersArea {
padding: 5px 7px;
border: 1px solid #e5e5e5;
}
#filtersArea button {
padding: 7px 15px 7px 10px;
border: none;
color: #111;
background-color: #e9e9e9;
font-size: 12px;
font-family: Arial, sans-serif;
font-weight: bold;
margin: 5px;
}
#filtersArea button:hover {
background-color: #dcdcdc;
color: #111;
}
.pivot-wrapper {
display: flex;
}
JavaScript
let pivot1 = new Flexmonster({
container: "pivot-container1",
componentFolder: "https://cdn.flexmonster.com/",
report: {
dataSource: {
type: "api",
url: "https://olap.flexmonster.com:9500",
index: "fm-product-sales",
},
options: {
grid: {
showReportFiltersArea: false,
showFilter: false,
},
},
slice: {
reportFilters: [
{
uniqueName: "Business Type",
filter: {
members: ["business type.[specialty bike shop]"],
},
},
],
rows: [
{
uniqueName: "Country",
filter: {
measure: {
uniqueName: "Price",
aggregation: "sum"
},
query: {
top: 3
}
}
},
{
uniqueName: "Category",
},
{
uniqueName: "Color",
},
],
columns: [
{
uniqueName: "[Measures]",
},
],
measures: [
{
uniqueName: "Price",
aggregation: "sum",
},
],
expands: {
expandAll: true,
},
},
},
reportchange: () => {
//Define which filters are common for two tables
interpolateFilter(["Business Type"], pivot1, pivot2)
},
reportcomplete: () => {
showFilters("Business Type")
},
})
let pivot2 = new Flexmonster({
container: "pivot-container2",
componentFolder: "https://cdn.flexmonster.com/",
report: {
dataSource: {
filename: "data/data.csv",
},
options: {
grid: {
showReportFiltersArea: false,
showFilter: false,
},
},
slice: {
reportFilters: [
{
uniqueName: "Business Type",
filter: {
members: ["business type.[specialty bike shop]"],
},
},
],
...