Ext.QuickTips.init();
Ext.define('erp.controller.pm.bom.BOMTree', {
extend: 'Ext.app.Controller',
BaseUtil: Ext.create('erp.util.BaseUtil'),
GridUtil: Ext.create('erp.util.GridUtil'),
views:[
'pm.bom.BOMTree','common.query.Form','pm.bom.BOMTreeGrid','core.form.YnField',
'core.trigger.DbfindTrigger'
],
init:function(){
this.control({
'bomTreeGrid': {
itemmousedown: function(selModel, record){
if(record.data['bs_sonbomid'] > 0 && record.childNodes.length == 0){
Ext.getCmp('querygrid').loadChildNodes(record);
}
}
},
'button[name=export]':{
beforerender:function(btn){
btn.handler=function(){
var grid = Ext.getCmp('querygrid');
var main = parent.Ext.getCmp("content-panel");
var title =main.getActiveTab().tabConfig.tooltip+ Ext.Date.format(new Date(), 'Y-m-d H:m:s');
var columns = grid.columns,cm = new Array(),datas = new Array();
Ext.Array.each(columns, function(c){
if(!c.hidden && c.width > 0) {
if(c.items && c.items.length > 0) {
var items = c.items.items;
Ext.Array.each(items, function(item){
if(!item.hidden)
cm.push({text: c.text.replace(/
/g, '\n') + '(' + item.text.replace(/
/g, '\n') + ')',
dataIndex: item.dataIndex, width: item.width, xtype: item.xtype, format: item.format});
});
} else {
cm.push({text: c.text.replace(/
/g, '\n'), dataIndex: c.dataIndex, width: c.width, xtype: c.xtype, format: c.format});
}
}
});
Ext.Array.each(grid.store.tree.root.childNodes, function(d){
var dd = d.data;
Ext.each(grid.columns, function(c){
if(c.xtype == 'datecolumn'){
c.format = c.format || 'Y-m-d';
if(Ext.isDate(dd[c.dataIndex])){
dd[c.dataIndex] = Ext.Date.format(dd[c.dataIndex], c.format);
}
} else if(c.xtype == 'datetimecolumn'){
if(Ext.isDate(dd[c.dataIndex])){
dd[c.dataIndex] = Ext.Date.format(dd[c.dataIndex], 'Y-m-d H:i:s');
}
} else if(c.xtype == 'numbercolumn'){
if(Ext.isNumber(dd[c.dataIndex])){
dd[c.dataIndex] = dd[c.dataIndex].toString();
}
}
if(dd[c.dataIndex] == null) {
dd[c.dataIndex] = '';
}
});
datas.push(dd);
});
if (!Ext.fly('ext-grid-excel')) {
var frm = document.createElement('form');
frm.id = 'ext-grid-excel';
frm.name = id;
frm.className = 'x-hidden';
document.body.appendChild(frm);
}Ext.Ajax.request({
url: basePath + 'common/excel/grid.xls',
method: 'post',
form: Ext.fly('ext-grid-excel'),
isUpload: true,
params: {
datas: unescape(Ext.JSON.encode(datas).replace(/\\/g,"%")),
columns: Ext.encode(cm),
title: title
}
});
};
}
}
});
}
});