我从JSON数据创建了一个Tabulator表,该表使用Tabulator中的groupBy选项按字段列之一进行分组。我需要汇总组标题中的其他数据,这些细节的详细信息未在表中显示为列(例如:表中的列中未显示卷ID字段,但是我需要以将组中每一行的所有纸卷ID连接起来,并在组标题中显示摘要。我已经能够使用一个函数来生成不同的纸卷ID列表,但是我不知道如何为每个组重置该列表。
var batchJobTarget = [];
var table = new Tabulator('#productionPlan-table', {
data: tabledata,
layout: 'fitColumns',
height: 375,
tooltips: true,
responsiveLayout: 'hide',
pagination:'local',
paginationSize:8,
groupBy: function(data){
Object.keys(data).forEach(function(key) {
if (key == 'outputRollId') {
console.log(data[key]);
}
if (key == 'jobTarget') {
batchJobTarget.push(data[key]);
}
});
return data.outputRollId;
},
groupHeader:
function(value,count,data,group) {
return 'Output Roll ID: ' + value + '   Roll Targets: ' + findFieldDistinct(batchJobTarget);
},
columns: [
{title: 'PI #', field: 'piSeq'},
{title: 'Job ID', field: 'jobId'},
{title: 'Job ARtwork ID', field: 'jobArtworkId'},
{title: 'Job Name', field: 'jobName'},
{title: 'Length (m)', field: 'jobLength'},
{title: 'Job Spec', field: 'jobSpec'},
{title: 'Job Artwork'}
]
});
function findFieldDistinct(values, data, calcParms) {
let b = [];
let len = values.length;
for (let i = 0; i < len; i++) {
if(b.indexOf(values[i]) === -1) {
b.push(values[i]);
}
}
return b.join('; ');
}
我希望得到如下结果:
PI#职位ID作品ID
输出ID:123456卷ID:Corr B; Corr C <---组头
1 1234 4567
2 5678 5432
输出ID:345232卷ID:Corr C <---组头
1 8765 9876
在组标题中显示的不同的纸卷ID应与分组的输出ID相关联。