Javascript 数据表上的行分组和小计
全部,, 我在数据表上使用RowGrouping,对于每个组,我需要对一些列(Encum、Paid、Balance)进行小计,并对所有列(Encum、Paid、Balance)进行总计。我对这个数据表很陌生,无法获得所需的结果。这里是代码是已经使用过的。我需要显示其中3列的$value,并且在标题处进行小计。 请在这里帮助我,代码为jsfiddle:jsfiddle.net/6r2pjbg8Javascript 数据表上的行分组和小计,javascript,jquery,model-view-controller,datatables,Javascript,Jquery,Model View Controller,Datatables,全部,, 我在数据表上使用RowGrouping,对于每个组,我需要对一些列(Encum、Paid、Balance)进行小计,并对所有列(Encum、Paid、Balance)进行总计。我对这个数据表很陌生,无法获得所需的结果。这里是代码是已经使用过的。我需要显示其中3列的$value,并且在标题处进行小计。 请在这里帮助我,代码为jsfiddle:jsfiddle.net/6r2pjbg8 var table = S$('#EncumbranceSummaryTable').DataTable
var table = S$('#EncumbranceSummaryTable').DataTable({
"columnDefs": [
{ "visible": false, "targets":0 }
],
"stateSave": false,
"stateDuration": 60*60*24*365,
"data" : POnbrsDetails,
"columns":[
{"sTitle": "PO #", "data": "PO_Nbr" },
{"sTitle": "FY", "data": "FY" },
{"sTitle": "LN", "data": "LN" },
{"sTitle": "F/O/A","data":"FOA"},
{"sTitle": "Project ID", "data": "Proj_ID" },
{"sTitle": "Srce Type", "data": "Srce_Type" },
{"sTitle": "Encumbrance","data":"Encum_Amt"},
{"sTitle": "Paid","data":"Paid"},
{"sTitle": "Balance", "data": "Balance" }
],
"drawCallback": function ( settings ) {
var api = this.api();
var rows = api.rows( {page:'current'} ).nodes();
var last=null;
var colonne = api.row(0).data().length;
var totale = new Array();
totale['Totale']= new Array();
var groupid = -1;
var subtotale = new Array();
api.column(0, {page:'current'} ).data().each( function ( group, i ) {
debugger;
if ( last !== group ) {
S$(rows).eq( i ).before(
'<tr class="group"><td colspan="5">'+group+'</td></tr>'
);
last = group;
}
//sub total
val = api.row(api.row($(rows).eq( i )).index()).data(); //current order index
$.each(val,function(index2,val2){
debugger;
if (typeof subtotale[groupid] =='undefined'){
subtotale[groupid] = new Array();
}
if (typeof subtotale[groupid][index2] =='undefined'){
subtotale[groupid][index2] = 0;
}
if (typeof totale['Totale'][index2] =='undefined'){
totale['Totale'][index2] = 0;
}
// valore = Number(val2.replace('€',"").replace('.',"").replace(',',"."));
subtotale[groupid][index2] += 1;
totale['Totale'][index2] += 2;
});
} );
$('tbody').find('.group').each(function (i,v) {
var rowCount = $(this).nextUntil('.group').length;
//$(this).find('td:first').append($('<span />', { 'class': 'rowCount-grid' }).append($('<b />', { 'text': ' ('+rowCount+')' })));
var subtd = '';
for (var a=0;a<3;a++)
{
subtd += '<td>'+ subtotale[i][a] +'</td>';
}
$(this).append(subtd);
});
}
});
var table=S$(“#产权负担汇总表”).DataTable({
“columnDefs”:[
{“可见”:false,“目标”:0}
],
“stateSave”:false,
“状态持续时间”:60*60*24*365,
“数据”:庞氏体,
“栏目”:[
{“sTitle”:“PO#”和“data”:“PO#u Nbr”},
{“缝合”:“FY”,“数据”:“FY”},
{“sTitle”:“LN”,“data”:“LN”},
{“sTitle”:“F/O/A”,“数据”:“FOA”},
{“sTitle”:“项目ID”,“数据”:“项目ID”},
{“sTitle”:“Srce类型”,“data”:“Srce_类型”},
{“sTitle”:“产权负担”,“数据”:“Encum_Amt”},
{“sTitle”:“Paid”,“data”:“Paid”},
{“缝合”:“平衡”,“数据”:“平衡”}
],
“drawCallback”:函数(设置){
var api=this.api();
var rows=api.rows({page:'current'}).nodes();
var last=null;
var colonne=api.row(0.data().length;
var totale=新数组();
totale['totale']=新数组();
var-groupid=-1;
var subtotale=新数组();
列(0,{page:'current'}).data().each(函数(组,i){
调试器;
如果(最后!==组){
S$(行).eq(i).之前(
''+组+''
);
last=组;
}
//小计
val=api.row(api.row($(rows.eq(i)).index()).data();//当前订单索引
$.each(val,function(index2,val2){
调试器;
if(typeof subtotale[groupid]=='undefined'){
subtotale[groupid]=新数组();
}
if(typeof subtotale[groupid][index2]=='undefined'){
subtotale[groupid][index2]=0;
}
如果(totale['totale'][index2]=='undefined'){
totale['totale'][index2]=0;
}
//valore=编号(val2.替换('€','')。替换('.','')。替换('.','');
小故事[groupid][index2]+=1;
totale['totale'][index2]+=2;
});
} );
$('tbody')。查找('.group')。每个(函数(i,v){
var rowCount=$(this).nextUntil('.group').length;
//$(this.find('td:first').append($(“”,{'class':'rowCount grid')).append($(“”,{'text':'('+rowCount+'))}));
var subtd='';
对于(var a=0;a这对你有用吗
var POdata = [{
"PO_Nbr": "3000202173",
"FY": 2015,
"LN": "1.1",
"FOA": "2500/T7935002/T790225",
"Proj_ID": "TLRR922B",
"Srce_Type": "6251",
"Encum_Amt": 66033.62,
"Paid": 36508.35,
"Balance": 29525.27
}, {
"PO_Nbr": "3000202173",
"FY": 2015,
"LN": "1.2",
"FOA": "2600/T7935002/T790226",
"Proj_ID": "TLRR922B",
"Srce_Type": "6251",
"Encum_Amt": 212824.56,
"Paid": 117665.45,
"Balance": 95159.11
}, {
"PO_Nbr": "3000143638",
"FY": 2014,
"LN": "1.1",
"FOA": "2500/T7935002/T790225",
"Proj_ID": "TLRR922B",
"Srce_Type": "6251",
"Encum_Amt": 32350.84,
"Paid": 32350.84,
"Balance": 0
}, {
"PO_Nbr": "3000143638",
"FY": 2014,
"LN": "1.2",
"FOA": "2600/T7935002/T790226",
"Proj_ID": "TLRR922B",
"Srce_Type": "6251",
"Encum_Amt": 104265.84,
"Paid": 104265.84,
"Balance": 0
}, {
"PO_Nbr": "3000079267",
"FY": 2013,
"LN": "1.1",
"FOA": "2500/T7935002/T790225",
"Proj_ID": "TLRR922B",
"Srce_Type": "9025",
"Encum_Amt": 21339.91,
"Paid": 21339.91,
"Balance": 0
}, {
"PO_Nbr": "3000079267",
"FY": 2013,
"LN": "1.2",
"FOA": "2600/T7935002/T790226",
"Proj_ID": "TLRR922B",
"Srce_Type": "9025",
"Encum_Amt": 68778.06,
"Paid": 68778.06,
"Balance": 0
}, {
"PO_Nbr": "3000038524",
"FY": 2012,
"LN": "1.1",
"FOA": "2500/T7935002/T790225",
"Proj_ID": "TLRR922B",
"Srce_Type": "9025",
"Encum_Amt": 12752.54,
"Paid": 12752.54,
"Balance": 0
}, {
"PO_Nbr": "3000038524",
"FY": 2012,
"LN": "1.2",
"FOA": "2600/T7935002/T790226",
"Proj_ID": "TLRR922B",
"Srce_Type": "9025",
"Encum_Amt": 41101.1,
"Paid": 41101.1,
"Balance": 0
}];
var table = $('#EncumbranceSummaryTable').DataTable({
"data": POdata,
"columns": [
{
"title": "PO #",
"data": "PO_Nbr",
"visible": false
}, {
"title": "FY",
"data": "FY"
}, {
"title": "LN",
"data": "LN",
"sortable": false
}, {
"title": "F/O/A",
"data": "FOA",
"sortable": false
}, {
"title": "Project ID",
"data": "Proj_ID",
"sortable": false
}, {
"title": "Srce Type",
"data": "Srce_Type",
"sortable": false
}, {
"title": "Encumbrance",
"data": "Encum_Amt",
"sortable": false
}, {
"title": "Paid",
"data": "Paid",
"sortable": false
}, {
"title": "Balance",
"data": "Balance",
"sortable": false
}
],
"drawCallback": function (settings) {
var api = this.api();
var rows = api.rows({
page: 'current'
}).nodes();
var last = null;
api.column(0, {
page: 'current'
}).data().each(function (group, i) {
if (last !== group) {
$(rows).eq(i).before(
$("<tr></tr>", {
"class": "group",
"data-id": group
}).append($("<td></td>", {
"colspan": 5,
"class": "pocell",
"text": "PO # " + group
})).append($("<td></td>", {
"id": "e" + group,
"class": "noCount",
"text": "0.00"
})).append($("<td></td>", {
"id": "p" + group,
"class": "noCount",
"text": "0.00"
})).append($("<td></td>", {
"id": "b" + group,
"class": "noCount",
"text": "0.00"
})).prop('outerHTML'));
last = group;
}
val = api.row(api.row($(rows).eq(i)).index()).data();
$("#e" + val.PO_Nbr).text(parseFloat($("#e" + val.PO_Nbr).text()) + parseFloat(val.Encum_Amt));
$("#p" + val.PO_Nbr).text(parseFloat($("#p" + val.PO_Nbr).text()) + parseFloat(val.Paid));
$("#b" + val.PO_Nbr).text(parseFloat($("#b" + val.PO_Nbr).text()) + parseFloat(val.Balance));
});
},
"footerCallback": function (row, data, start, end, display) {
var api = this.api();
$(api.column(6).footer()).html(
api.column(6).data().reduce(function (a, b) {
return parseFloat(a) + parseFloat(b);
})
);
$(api.column(7).footer()).html(
api.column(7).data().reduce(function (a, b) {
return parseFloat(a) + parseFloat(b);
})
);
$(api.column(8).footer()).html(
api.column(8).data().reduce(function (a, b) {
return parseFloat(a) + parseFloat(b);
})
);
}
});
var POdata=[{
“PO_Nbr”:“3000202173”,
“FY”:2015年,
“LN”:“1.1”,
“FOA”:“2500/T7935002/T790225”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“6251”,
“Encum_金额”:66033.62,
“已付”:36508.35,
“余额”:29525.27
}, {
“PO_Nbr”:“3000202173”,
“FY”:2015年,
“LN”:“1.2”,
“FOA”:“2600/T7935002/T790226”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“6251”,
“Encum_金额”:212824.56,
“已付”:117665.45,
“余额”:95159.11
}, {
“PO_Nbr”:“3000143638”,
“财年”:2014年,
“LN”:“1.1”,
“FOA”:“2500/T7935002/T790225”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“6251”,
“Encum_金额”:32350.84,
“已付”:32350.84,
“余额”:0
}, {
“PO_Nbr”:“3000143638”,
“财年”:2014年,
“LN”:“1.2”,
“FOA”:“2600/T7935002/T790226”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“6251”,
“Encum_金额”:104265.84,
“已付”:104265.84,
“余额”:0
}, {
“PO_Nbr”:“3000079267”,
“财年”:2013年,
“LN”:“1.1”,
“FOA”:“2500/T7935002/T790225”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“9025”,
“Encum_金额”:21339.91,
“已付”:21339.91,
“余额”:0
}, {
“PO_Nbr”:“3000079267”,
“财年”:2013年,
“LN”:“1.2”,
“FOA”:“2600/T7935002/T790226”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“9025”,
“Encum_金额”:68778.06,
“已付”:68778.06,
“余额”:0
}, {
“PO_Nbr”:“3000038524”,
“财年”:2012年,
“LN”:“1.1”,
“FOA”:“2500/T7935002/T790225”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“9025”,
“Encum_金额”:12752.54,
“已付”:12752.54,
“余额”:0
}, {
“PO_Nbr”:“3000038524”,
“财年”:2012年,
“LN”:“1.2”,
“FOA”:“2600/T7935002/T790226”,
“项目ID”:“TLRR922B”,
“Srce_类型”:“9025”,
“Encum_金额”:41101.1,
“已付”:41101.1,
“余额”:0
}];
变量表=$(“#产权负担汇总表”).DataTable({
“数据”:POdata,
“栏目”:[
{
“标题”:“PO#”,
“数据”:“采购订单编号”,
“可见”:错误
}, {
“标题”:“FY”,
“数据”:“FY”
}, {
“标题”:“LN”,
“数据”:“LN”,
“可排序”:false
}, {
“标题”:“F/O/A”,
“数据”:“FOA”,
“可排序”:false
}, {
“标题”:“项目ID”,
“数据”:“项目ID”,
“可排序”:false
}, {
“标题”:“Srce类型”,
“数据”:“Srce_类型”,
“可排序”:false
}, {
“所有权”:“产权负担”,
“数据”:“金额”,
“可排序”:false
}, {
“头衔”:“已付”,
“数据”:“已支付”,
“可排序”:false
}, {
“标题”:“Bal”