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 } }); }; } } }); } });