1
Help for ParamQuery Pro / Re: summary data
« on: June 08, 2022, 08:14:00 am »
I would be grateful if you could answer the above questions.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
{ // 14-2)
type: 'select',
cls: 'list_year_month',
label: '<b>Year-Month: ', options: [{ '2022-02': '2022-02', '2022-03': '2022-03', '2022-04': '2022-04', '2022-05': '2022-05' }],
listeners: function (evt) {
if(this.toolbar().find("button.changes").is(":enabled") == true){
if(confirm("After data is entered or modified, it is not saved in the DB.\nDo you want to save data?")){
saveChanges();
save_memo();
save_column_state();
}
}
this.option("dataModel.postDataOnce", {
mt_product: $(evt.target).val(),
cd_wc: "W120"
});
this.refreshDataAndView(); //this sends the above post data and reloads the response in the grid
}
},
{ // 14-3)
type: 'button',
label: '<b>◀ Previous',
listener: function (evt) {
//alert(this.toolbar().find("select.list_year_month").val());
}
},
{ // 13-3)
type: 'button',
label: '<b>Next ▶',
listener: function (evt) {
//alert(this.toolbar().find("select.list_year_month").val());
}
},
{ type: 'separator' },
{ // 15)
type: 'button',
icon: 'ui-icon-disk',
label: 'Save',
cls: 'changes',
listeners: [saveChanges,
save_memo,
save_column_state],
options: { disabled: true },
},
{ // 13-2)
type: 'select',
label: '<b>Year-Month: ', options: [{ '2022-05': '2022-05', '2022-04': '2022-04' }],
listener: function (evt) {
this.option("dataModel.postDataOnce", {
mt_product: $(evt.target).val(),
cd_wc: "W120"
});
this.refreshDataAndView(); //this sends the above post data and reloads the response in the grid
}
},
{ // 13-2)
type: 'select',
label: '<b>Year-Month: ',options: [{ '2022-02': '2022-02', '2022-03': '2022-03', '2022-04': '2022-04', '2022-05': '2022-05' }],
listener: function (evt) {
// $(evt.target).val()
}
},
(Skip the middle)
dataModel: {
dataType: 'JSON',
location: 'remote',
recIndx: 'id',
url: "pp2_product_plan_save.php?mt_product=2022-05&cd_wc=W120",
getData: function (response){
debugger;
response.data.forEach(function (rd) {
// comment data
if (rd.pq_cellattr) rd.pq_cellattr = JSON.parse(rd.pq_cellattr);
if (rd.pq_cellstyle) rd.pq_cellstyle = JSON.parse(rd.pq_cellstyle);
if (rd.cd_kind < 4) { // stock data
Object.defineProperty(rd, 'total_this_month1', {
get (){
//return tot_this_month;
var rd = this, total = 0;
for(var i=1;i<=31;i++){
total += rd['qty' + i];
}
return total;
}
})
Object.defineProperty(rd, 'total_this_month2', {
get (){
//return tot_this_month;
var rd = this, total = 0;
for(var i=1;i<=31;i++){
total += rd['qty' + i];
}
return total;
}
})
}
else if(rd.cd_kind == 4){ // stock data
Object.defineProperty(rd, 'qty1', {
enumerable: true, get() {
var rd = this, ri = rd.pq_ri, pdata = grid.pageData(),
pre_month_stock = rd['total_pre_month'],
day = (pdata && pdata[ri - 4]) ? pdata[ri - 4].qty1 : 0,
night = (pdata && pdata[ri - 3]) ? pdata[ri - 3].qty1 : 0,
shipment = (pdata && pdata[ri - 2]) ? pdata[ri - 2].qty1 : 0,
etc = (pdata && pdata[ri - 1]) ? pdata[ri - 1].qty1 : 0;
return pre_month_stock + day + night - shipment - etc;
}
});
for(var i=2; i<=31; i++){
(function(qty, i){
Object.defineProperty(rd, qty, {
enumerable: true, get() {
var rd = this, ri = rd.pq_ri, pdata = grid.pageData(),
pre_day_stock = (pdata && pdata[ri]) ? pdata[ri]['qty'+(i-1)] : 0,
day = (pdata && pdata[ri - 4]) ? pdata[ri - 4][qty] : 0,
night = (pdata && pdata[ri - 3]) ? pdata[ri - 3][qty] : 0,
shipment = (pdata && pdata[ri - 2]) ? pdata[ri - 2][qty] : 0,
etc = (pdata && pdata[ri - 1]) ? pdata[ri - 1][qty] : 0;
return stock_this_month = pre_day_stock + day + night - shipment - etc;
}
});
})('qty'+i, i)
}
Object.defineProperty(rd, 'total_this_month1', {
get (){
var stock_this_month = rd['qty31'];
return stock_this_month;
}
})
Object.defineProperty(rd, 'total_this_month2', {
get (){
var stock_this_month = rd['qty31'];
return stock_this_month;
}
})
}
})
this.option('summaryData', calculateSummary(this));
return response;
}
},
(The following is omitted)
var obj = {
title: '<b>Production Schedule</b>',
menuUI: { singleFilter: true },
filterModel: { on: true, header: true, type: 'local' },
height: 900,
freezeCols: 14,
collapsible: {on: false},
hwrap: true,
trackModel: { on: true },
render: function(){
grid = this;
},
change: function(){
this.option('summaryData', calculateSummary(this));
//grid = this;
this.refresh();
},
hideCols: function (){
var $tb = this.toolbar();
$('button.changes', $tb).button('option', { disabled: false });
},
load: function(){
this.option('summaryData', calculateSummary(this));
},
dataReady: function(){
this.option('summaryData', calculateSummary(this));
},
< omitted below >
}
dataModel: {
dataType: 'JSON',
location: 'remote',
recIndx: 'id',
url: "product_plan_save.php",
getData: function (response){
debugger;
response.data.forEach(function(rd){
if(rd.cd_kind == 4){
var tot_this_month = 0;
Object.defineProperty(rd, 'qty1', {
enumerable: true, get(){
var rd = this, ri = rd.pq_ri, pdata = grid.pageData(),
pre_month_stock = rd['total_pre_month'],
day = (pdata && pdata[ri-4])? pdata[ri-4].qty1: 0,
night = (pdata && pdata[ri-3])? pdata[ri-3].qty1: 0,
shipment = (pdata && pdata[ri-2])? pdata[ri-2].qty1: 0,
etc = (pdata && pdata[ri-1])? pdata[ri-1].qty1: 0;
return pre_month_stock + day + night - shipment - etc;
}
}),
Object.defineProperty(rd, 'qty2', {
enumerable: true, get(){
var rd = this, ri = rd.pq_ri, pdata = grid.pageData(),
pre_day_stock = (pdata && pdata[ri])? pdata[ri].qty1: 0,
day = (pdata && pdata[ri-4])? pdata[ri-4].qty2: 0,
night = (pdata && pdata[ri-3])? pdata[ri-3].qty2: 0,
shipment = (pdata && pdata[ri-2])? pdata[ri-2].qty2: 0,
etc = (pdata && pdata[ri-1])? pdata[ri-1].qty2: 0;
tot_this_month = pre_day_stock + day + night - shipment - etc;
return tot_this_month;
}
}),
< Intermediate omitted >
Object.defineProperty(rd, 'total_this_month1', {
get (){
return tot_this_month;
}
}),
Object.defineProperty(rd, 'total_this_month2', {
get (){
return tot_this_month;
}
})
}
})
return response;
}
},
function calculateSummary(grid){
var sum_product_qty = Array.from({length: 42}, () => 0);
var sum_shipment_qty = Array.from({length: 42}, () => 0);
var sum_stock_vc_qty = Array.from({length: 42}, () => 0);
var sum_stock_qty = Array.from({length: 42}, () => 0);
var data = grid.option("dataModel.data");
var CM = grid.option("colModel");
var cd_wcop = CM[2].dataIndx;
var cd_kind = CM[15].dataIndx; // cd_kind (Day(0), Night(1), Shipment(2), Etc(3), Stock(4))
for(var i = 0; i < data.length; i++){
var row = data[i];
var cd_wcop9 = data[i][cd_wcop];
var cd_kind9 = data[i][cd_kind];
if(cd_kind9 < 2){
sum_product_qty[40] += (row['total_pre_month'] * 1);
sum_product_qty[41] += (row['total_this_month1'] * 1);
sum_product_qty[1] += (row['qty1'] * 1);
sum_product_qty[2] += (row['qty2'] * 1);
sum_product_qty[3] += (row['qty3'] * 1);
sum_product_qty[4] += (row['qty4'] * 1);
sum_product_qty[5] += (row['qty5'] * 1);
sum_product_qty[6] += (row['qty6'] * 1);
sum_product_qty[7] += (row['qty7'] * 1);
sum_product_qty[8] += (row['qty8'] * 1);
sum_product_qty[9] += (row['qty9'] * 1);
sum_product_qty[10] += (row['qty10'] * 1);
sum_product_qty[11] += (row['qty11'] * 1);
sum_product_qty[12] += (row['qty12'] * 1);
sum_product_qty[13] += (row['qty13'] * 1);
sum_product_qty[14] += (row['qty14'] * 1);
sum_product_qty[15] += (row['qty15'] * 1);
sum_product_qty[16] += (row['qty16'] * 1);
sum_product_qty[17] += (row['qty17'] * 1);
sum_product_qty[18] += (row['qty18'] * 1);
sum_product_qty[19] += (row['qty19'] * 1);
sum_product_qty[20] += (row['qty20'] * 1);
sum_product_qty[21] += (row['qty21'] * 1);
sum_product_qty[22] += (row['qty22'] * 1);
sum_product_qty[23] += (row['qty23'] * 1);
sum_product_qty[24] += (row['qty24'] * 1);
sum_product_qty[25] += (row['qty25'] * 1);
sum_product_qty[26] += (row['qty26'] * 1);
sum_product_qty[27] += (row['qty27'] * 1);
sum_product_qty[28] += (row['qty28'] * 1);
sum_product_qty[29] += (row['qty29'] * 1);
sum_product_qty[30] += (row['qty30'] * 1);
sum_product_qty[31] += (row['qty31'] * 1);
}
else if(cd_kind9 == 2){
sum_shipment_qty[40] += (row['total_pre_month'] * 1);
sum_shipment_qty[41] += (row['total_this_month1'] * 1);
sum_shipment_qty[1] += (row['qty1'] * 1);
sum_shipment_qty[2] += (row['qty2'] * 1);
sum_shipment_qty[3] += (row['qty3'] * 1);
sum_shipment_qty[4] += (row['qty4'] * 1);
sum_shipment_qty[5] += (row['qty5'] * 1);
sum_shipment_qty[6] += (row['qty6'] * 1);
sum_shipment_qty[7] += (row['qty7'] * 1);
sum_shipment_qty[8] += (row['qty8'] * 1);
sum_shipment_qty[9] += (row['qty9'] * 1);
sum_shipment_qty[10] += (row['qty10'] * 1);
sum_shipment_qty[11] += (row['qty11'] * 1);
sum_shipment_qty[12] += (row['qty12'] * 1);
sum_shipment_qty[13] += (row['qty13'] * 1);
sum_shipment_qty[14] += (row['qty14'] * 1);
sum_shipment_qty[15] += (row['qty15'] * 1);
sum_shipment_qty[16] += (row['qty16'] * 1);
sum_shipment_qty[17] += (row['qty17'] * 1);
sum_shipment_qty[18] += (row['qty18'] * 1);
sum_shipment_qty[19] += (row['qty19'] * 1);
sum_shipment_qty[20] += (row['qty20'] * 1);
sum_shipment_qty[21] += (row['qty21'] * 1);
sum_shipment_qty[22] += (row['qty22'] * 1);
sum_shipment_qty[23] += (row['qty23'] * 1);
sum_shipment_qty[24] += (row['qty24'] * 1);
sum_shipment_qty[25] += (row['qty25'] * 1);
sum_shipment_qty[26] += (row['qty26'] * 1);
sum_shipment_qty[27] += (row['qty27'] * 1);
sum_shipment_qty[28] += (row['qty28'] * 1);
sum_shipment_qty[29] += (row['qty29'] * 1);
sum_shipment_qty[30] += (row['qty30'] * 1);
sum_shipment_qty[31] += (row['qty31'] * 1);
}
else if(cd_kind9 == 4){
if(cd_wcop9 == "P165"){
sum_stock_vc_qty[40] += (row['total_pre_month'] * 1);
sum_stock_vc_qty[41] += (row['total_this_month1'] * 1);
sum_stock_vc_qty[1] += (row['qty1'] * 1);
sum_stock_vc_qty[2] += (row['qty2'] * 1);
sum_stock_vc_qty[3] += (row['qty3'] * 1);
sum_stock_vc_qty[4] += (row['qty4'] * 1);
sum_stock_vc_qty[5] += (row['qty5'] * 1);
sum_stock_vc_qty[6] += (row['qty6'] * 1);
sum_stock_vc_qty[7] += (row['qty7'] * 1);
sum_stock_vc_qty[8] += (row['qty8'] * 1);
sum_stock_vc_qty[9] += (row['qty9'] * 1);
sum_stock_vc_qty[10] += (row['qty10'] * 1);
sum_stock_vc_qty[11] += (row['qty11'] * 1);
sum_stock_vc_qty[12] += (row['qty12'] * 1);
sum_stock_vc_qty[13] += (row['qty13'] * 1);
sum_stock_vc_qty[14] += (row['qty14'] * 1);
sum_stock_vc_qty[15] += (row['qty15'] * 1);
sum_stock_vc_qty[16] += (row['qty16'] * 1);
sum_stock_vc_qty[17] += (row['qty17'] * 1);
sum_stock_vc_qty[18] += (row['qty18'] * 1);
sum_stock_vc_qty[19] += (row['qty19'] * 1);
sum_stock_vc_qty[20] += (row['qty20'] * 1);
sum_stock_vc_qty[21] += (row['qty21'] * 1);
sum_stock_vc_qty[22] += (row['qty22'] * 1);
sum_stock_vc_qty[23] += (row['qty23'] * 1);
sum_stock_vc_qty[24] += (row['qty24'] * 1);
sum_stock_vc_qty[25] += (row['qty25'] * 1);
sum_stock_vc_qty[26] += (row['qty26'] * 1);
sum_stock_vc_qty[27] += (row['qty27'] * 1);
sum_stock_vc_qty[28] += (row['qty28'] * 1);
sum_stock_vc_qty[29] += (row['qty29'] * 1);
sum_stock_vc_qty[30] += (row['qty30'] * 1);
sum_stock_vc_qty[31] += (row['qty31'] * 1);
}
else{
sum_stock_qty[40] += (row['total_pre_month'] * 1);
sum_stock_qty[41] += (row['total_this_month1'] * 1);
sum_stock_qty[1] += (row['qty1'] * 1);
sum_stock_qty[2] += (row['qty2'] * 1);
sum_stock_qty[3] += (row['qty3'] * 1);
sum_stock_qty[4] += (row['qty4'] * 1);
sum_stock_qty[5] += (row['qty5'] * 1);
sum_stock_qty[6] += (row['qty6'] * 1);
sum_stock_qty[7] += (row['qty7'] * 1);
sum_stock_qty[8] += (row['qty8'] * 1);
sum_stock_qty[9] += (row['qty9'] * 1);
sum_stock_qty[10] += (row['qty10'] * 1);
sum_stock_qty[11] += (row['qty11'] * 1);
sum_stock_qty[12] += (row['qty12'] * 1);
sum_stock_qty[13] += (row['qty13'] * 1);
sum_stock_qty[14] += (row['qty14'] * 1);
sum_stock_qty[15] += (row['qty15'] * 1);
sum_stock_qty[16] += (row['qty16'] * 1);
sum_stock_qty[17] += (row['qty17'] * 1);
sum_stock_qty[18] += (row['qty18'] * 1);
sum_stock_qty[19] += (row['qty19'] * 1);
sum_stock_qty[20] += (row['qty20'] * 1);
sum_stock_qty[21] += (row['qty21'] * 1);
sum_stock_qty[22] += (row['qty22'] * 1);
sum_stock_qty[23] += (row['qty23'] * 1);
sum_stock_qty[24] += (row['qty24'] * 1);
sum_stock_qty[25] += (row['qty25'] * 1);
sum_stock_qty[26] += (row['qty26'] * 1);
sum_stock_qty[27] += (row['qty27'] * 1);
sum_stock_qty[28] += (row['qty28'] * 1);
sum_stock_qty[29] += (row['qty29'] * 1);
sum_stock_qty[30] += (row['qty30'] * 1);
sum_stock_qty[31] += (row['qty31'] * 1);
}
}
}
var sum_product_data = {
info_item: "Total Production", total_pre_month: sum_product_qty[40], total_this_month1: sum_product_qty[41],
qty1: sum_product_qty[1], qty2: sum_product_qty[2], qty3: sum_product_qty[3], qty4: sum_product_qty[4], qty5: sum_product_qty[5],
qty6: sum_product_qty[6], qty7: sum_product_qty[7], qty8: sum_product_qty[8], qty9: sum_product_qty[9], qty10: sum_product_qty[10],
qty11: sum_product_qty[11], qty12: sum_product_qty[12], qty13: sum_product_qty[13], qty14: sum_product_qty[14], qty15: sum_product_qty[15],
qty16: sum_product_qty[16], qty17: sum_product_qty[17], qty18: sum_product_qty[18], qty19: sum_product_qty[19], qty20: sum_product_qty[20],
qty21: sum_product_qty[21], qty22: sum_product_qty[22], qty23: sum_product_qty[23], qty24: sum_product_qty[24], qty25: sum_product_qty[25],
qty26: sum_product_qty[26], qty27: sum_product_qty[27], qty28: sum_product_qty[28], qty29: sum_product_qty[29], qty30: sum_product_qty[30],
qty31: sum_product_qty[31]
};
var sum_shipment_data = {
info_item: "Total Shipment", total_pre_month: sum_shipment_qty[40], total_this_month1: sum_shipment_qty[41],
qty1: sum_shipment_qty[1], qty2: sum_shipment_qty[2], qty3: sum_shipment_qty[3], qty4: sum_shipment_qty[4], qty5: sum_shipment_qty[5],
qty6: sum_shipment_qty[6], qty7: sum_shipment_qty[7], qty8: sum_shipment_qty[8], qty9: sum_shipment_qty[9], qty10: sum_shipment_qty[10],
qty11: sum_shipment_qty[11], qty12: sum_shipment_qty[12], qty13: sum_shipment_qty[13], qty14: sum_shipment_qty[14], qty15: sum_shipment_qty[15],
qty16: sum_shipment_qty[16], qty17: sum_shipment_qty[17], qty18: sum_shipment_qty[18], qty19: sum_shipment_qty[19], qty20: sum_shipment_qty[20],
qty21: sum_shipment_qty[21], qty22: sum_shipment_qty[22], qty23: sum_shipment_qty[23], qty24: sum_shipment_qty[24], qty25: sum_shipment_qty[25],
qty26: sum_shipment_qty[26], qty27: sum_shipment_qty[27], qty28: sum_shipment_qty[28], qty29: sum_shipment_qty[29], qty30: sum_shipment_qty[30],
qty31: sum_shipment_qty[31]
};
var sum_stock_data = {
info_item: "Total Stock(Non VC)", total_pre_month: sum_stock_qty[40], total_this_month1: sum_stock_qty[41],
qty1: sum_stock_qty[1], qty2: sum_stock_qty[2], qty3: sum_stock_qty[3], qty4: sum_stock_qty[4], qty5: sum_stock_qty[5],
qty6: sum_stock_qty[6], qty7: sum_stock_qty[7], qty8: sum_stock_qty[8], qty9: sum_stock_qty[9], qty10: sum_stock_qty[10],
qty11: sum_stock_qty[11], qty12: sum_stock_qty[12], qty13: sum_stock_qty[13], qty14: sum_stock_qty[14], qty15: sum_stock_qty[15],
qty16: sum_stock_qty[16], qty17: sum_stock_qty[17], qty18: sum_stock_qty[18], qty19: sum_stock_qty[19], qty20: sum_stock_qty[20],
qty21: sum_stock_qty[21], qty22: sum_stock_qty[22], qty23: sum_stock_qty[23], qty24: sum_stock_qty[24], qty25: sum_stock_qty[25],
qty26: sum_stock_qty[26], qty27: sum_stock_qty[27], qty28: sum_stock_qty[28], qty29: sum_stock_qty[29], qty30: sum_stock_qty[30],
qty31: sum_stock_qty[31]
};
var sum_stock_vc_data = {
info_item: "Total Stock(VC)", total_pre_month: sum_stock_vc_qty[40], total_this_month1: sum_stock_vc_qty[41],
qty1: sum_stock_vc_qty[1], qty2: sum_stock_vc_qty[2], qty3: sum_stock_vc_qty[3], qty4: sum_stock_vc_qty[4], qty5: sum_stock_vc_qty[5],
qty6: sum_stock_vc_qty[6], qty7: sum_stock_vc_qty[7], qty8: sum_stock_vc_qty[8], qty9: sum_stock_vc_qty[9], qty10: sum_stock_vc_qty[10],
qty11: sum_stock_vc_qty[11], qty12: sum_stock_vc_qty[12], qty13: sum_stock_vc_qty[13], qty14: sum_stock_vc_qty[14], qty15: sum_stock_vc_qty[15],
qty16: sum_stock_vc_qty[16], qty17: sum_stock_vc_qty[17], qty18: sum_stock_vc_qty[18], qty19: sum_stock_vc_qty[19], qty20: sum_stock_vc_qty[20],
qty21: sum_stock_vc_qty[21], qty22: sum_stock_vc_qty[22], qty23: sum_stock_vc_qty[23], qty24: sum_stock_vc_qty[24], qty25: sum_stock_vc_qty[25],
qty26: sum_stock_vc_qty[26], qty27: sum_stock_vc_qty[27], qty28: sum_stock_vc_qty[28], qty29: sum_stock_vc_qty[29], qty30: sum_stock_vc_qty[30],
qty31: sum_stock_vc_qty[31]
};
return [sum_product_data, sum_shipment_data, sum_stock_data, sum_stock_vc_data];
}
;
function calculateSummary(grid, refresh){
var sum_product_qty1 = 0, sum_product_qty2 = 0, sum_product_qty3 = 0;
var sum_shipment_qty1 = 0, sum_shipment_qty2 = 0, sum_shipment_qty3 = 0;
var sum_stock_vc_qty1 = 0, sum_stock_vc_qty2 = 0, sum_stock_vc_qty3 = 0;
var sum_stock_qty1 = 0, sum_stock_qty2 = 0, sum_stock_qty3 = 0;
var data = grid.option("dataModel.data");
var CM = grid.option("colModel");
var cd_wcop = CM[2].dataIndx;
var cd_kind = CM[15].dataIndx; // cd_kind (Day(0), Night(1), Shipment(2), Etc(3), Stock(4))
for(var i = 0; i < data.length; i++){
var row = data;
var cd_wcop9 = data[cd_wcop];
var cd_kind9 = data[cd_kind];
if(cd_kind9 < 2){
sum_product_qty1 += (row[18] * 1); // May 1st data
sum_product_qty2 += (row[19] * 1); // May 2nd data
sum_product_qty3 += (row[20] * 1); // May 3rd data
// omit the rest
}
else if(cd_kind9 == 2){
sum_shipment_qty1 += (row[18] * 1); // May 1st data
sum_shipment_qty2 += (row[19] * 1); // May 2nd data
sum_shipment_qty3 += (row[20] * 1); // May 3rd data
// omit the rest
}
else if(cd_kind9 == 4){
if(cd_wcop9 == "P165"){
sum_stock_vc_qty1 += (row[18] * 1); // May 1st data
sum_stock_vc_qty2 += (row[19] * 1); // May 2nd data
sum_stock_vc_qty3 += (row[20] * 1); // May 3rd data
// omit the rest
}
else{
sum_stock_qty1 += (row[18] * 1); // May 1st data
sum_stock_qty2 += (row[19] * 1); // May 2nd data
sum_stock_qty3 += (row[20] * 1); // May 3rd data
// omit the rest
}
}
}
var sum_product_data = ["<b>Total Production: </b>", "", sum_product_qty1, sum_product_qty2, sum_product_qty3];
var sum_shipment_data = ["<b>Total Shipment: </b>", "", sum_shipment_qty1, sum_shipment_qty2, sum_shipment_qty3];
var sum_stock_data = ["<b>Total Stock(Non VC): </b>", "", sum_stock_qty1, sum_stock_qty2, sum_stock_qty3];
var sum_stock_vc_data = ["<b>Total Stock(VC): </b>", "", sum_stock_vc_qty1, sum_stock_vc_qty2, sum_stock_vc_qty3];
return [sum_product_data, sum_shipment_data, sum_stock_data, sum_stock_vc_data];
};
var obj = {
// some omitted
load: function(){
this.option('summaryData', calculateSummary(this));
},
dataReady: function(){
this.option('summaryData', calculateSummary(this));
},
summaryData: function () {
calculateSummary(this);
}
// omit the rest
};
hideCols: function (){
var $tb = this.toolbar;
$('button.changes', $tb).button('option', { disabled: false });
},