JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>
JavaScript
var jsonData = [
{billDate: {type: "date string"}, "userName": {type: "string"}},
{billDate:"2020-02-05", "userName": 'user1&&userId1&¶m1'},
{billDate:"2019-10-15", "userName": 'user2&&userId2&¶m2'},
{billDate:"2015-12-22", "userName": 'user3&&userId3&¶m3'},
{billDate:"2019-11-09", "userName": 'user1&&userId4&¶m1'}
];
var pivot = new Flexmonster({
container: "pivot-container",
customizeCell: customizeCellFunction,
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
data: jsonData,
dataSourceType: "json"
},
slice: {
reportFilters: [],
rows: [{uniqueName:"billDate"}],
columns: [
{
uniqueName: "[Measures]"
}
],
measures: [{uniqueName:"userName"}]
},
options: {
grid: {
type: 'flat'
}
}
}
});
function customizeCellFunction(cell, data) {
let resolveLinkProperties = function(data) {
let link = 'wwww.somelink.com/${0}?param=${1}';
let parts = data.member.caption.split('&&');
let caption = parts[0];
if (parts.length > 1) {
parts.shift();
}
for(let i = 0; i < parts.length; i++) {
link = link.replace('${' + i + '}', parts[i]);
}
return {caption: caption, link: link};
};
if (data.hierarchy && data.hierarchy.uniqueName == "userName" && data.member) {
let hl = resolveLinkProperties(data);
cell.text = hl.caption;
}
// hl.link - is hyperlink with replaced parameters
}