/** * 针对ERP中的标签模板设置grid */ Ext.define('erp.view.scm.reserve.labelPrintSetting.labelPrintSettingGrid',{ extend: 'Ext.grid.Panel', alias: 'widget.erpLabelPrintSettingGrid', requires: ['erp.view.core.toolbar.Toolbar', 'erp.view.core.plugin.CopyPasteMenu'], region: 'south', layout : 'fit', id: 'grid', emptyText : $I18N.common.grid.emptyText, columnLines : true, autoScroll : true, store: [], columns: [], bodyStyle: 'background-color:#f1f1f1;', plugins: [Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }), Ext.create('erp.view.core.plugin.CopyPasteMenu')], bbar: {xtype: 'erpToolbar',id:'toolbar'}, tbar:[{ xtype:'erpSaveButton' },{ xtype:'erpDeleteButton' },{ xtype:'erpCloseButton' }/*,{ xtype:'erpSyncButton' }*/], GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), RenderUtil: Ext.create('erp.util.RenderUtil'), initComponent : function(){ var gridCondition = this.BaseUtil.getUrlParam('gridCondition'); gridCondition = (gridCondition == null || gridCondition == "null") ? "" : gridCondition; var gridParam = {caller: caller, condition: gridCondition}; this.getGridColumnsAndStore(gridParam); this.callParent(arguments); }, getGridColumnsAndStore: function(gridParam){ var grid = this; grid.setLoading(true); Ext.Ajax.request({//拿到grid的columns url : basePath + 'common/singleGridPanel.action', params:gridParam , method : 'post', async: false, callback : function(options,success,response){ grid.setLoading(false); var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } var data = []; if(!res.data || res.data.length == 2){ grid.add10EmptyData(data,caller); grid.add10EmptyData(data,caller); } else { data = Ext.decode(res.data.replace(/,}/g, '}').replace(/,]/g, ']')); } if(grid.columns && grid.columns.length > 2){ grid.store.loadData(data); } else { if(res.columns){ Ext.each(res.columns, function(column, y){ //render if(!column.haveRendered && column.renderer != null && column.renderer != ""){ var renderName = column.renderer; if(contains(column.renderer, ':', true)){ var args = new Array(); Ext.each(column.renderer.split(':'), function(a, index){ if(index == 0){ renderName = a; } else { args.push(a); } }); if(!grid.RenderUtil.args[renderName]){ grid.RenderUtil.args[renderName] = new Object(); } grid.RenderUtil.args[renderName][column.dataIndex] = args; } column.renderer = grid.RenderUtil[renderName]; column.haveRendered = true; } //logictype var logic = column.logic; if(logic != null){ if(logic == 'detno'){ grid.detno = column.dataIndex; } else if(logic == 'keyField'){ grid.keyField = column.dataIndex; } else if(logic == 'mainField'){ grid.mainField = column.dataIndex; } else if(logic == 'necessaryField'){ grid.necessaryField = column.dataIndex; if(!grid.necessaryFields){ grid.necessaryFields = new Array(); } grid.necessaryFields.push(column.dataIndex); if(!column.haveRendered){ /*column.renderer = function(val){ return '' + '' + val + ''; };*/ } } else if(logic == 'groupField'){ grid.groupField = column.dataIndex; } } /** *****如果有固定咧,grid不能分组***** */ }); var store = Ext.create('Ext.data.Store', { storeId: 'gridStore', fields: res.fields, data: data, groupField: grid.groupField }); if(grid.selModel && grid.selModel.views == null){ grid.selModel.views = []; } if(res.dbfinds.length > 0){ grid.dbfinds = res.dbfinds; } grid.columns = res.columns; if(grid.autoRowNumber) { Ext.Array.insert(grid.columns, 0, [{xtype: 'rownumberer', width: 35, locked: true, cls: 'x-grid-header-1'}]); } grid.store = store; } } } }); }, getGridStore: function(){ var grid = this; var jsonGridData = new Array(); var s = grid.getStore().data.items;//获取store里面的数据 for(var i=0;i