Ext.QuickTips.init(); Ext.define('erp.controller.ma.Form', { extend: 'Ext.app.Controller', FormUtil: Ext.create('erp.util.FormUtil'), GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), views:[ 'ma.Form','core.form.Panel','core.grid.Panel2','ma.MyGrid', 'core.button.UUListener','core.button.Sync', 'core.button.Add','core.button.Save','core.button.Close','core.button.Update','core.button.Delete','core.button.DeleteDetail', 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger', 'core.grid.TfColumn','core.button.DbfindButton','core.button.ComboButton', 'core.form.YnField' ], init:function(){ var me = this; this.control({ 'erpSyncButton': { afterrender: function(btn){ btn.autoClearCache = true; } }, 'erpSaveButton': { click: function(btn){ me.save(); } }, 'erpUpdateButton': { click: function(btn){ me.update(); } }, 'erpDeleteButton': { click: function(btn){ me.FormUtil.onDelete(Ext.getCmp('fo_id').value); } }, 'erpCloseButton': { click: function(btn){ this.FormUtil.beforeClose(this); } }, 'mygrid':{ select: function(selModel, record){ this.GridUtil.onGridItemClick(selModel, record); var grid=Ext.getCmp('grid'); if(record&&record.data.fd_dbfind) grid.down('erpDbfindButton').setDisabled(false); else if(record && record.data.fd_type == 'C') grid.down('erpComboButton').setDisabled(false); else { grid.down('erpComboButton').setDisabled(true); grid.down('erpDbfindButton').setDisabled(true); } } }, 'erpAddButton': { click: function(){ me.FormUtil.onAdd('addForm', '新增Form', 'jsps/ma/form.jsp'); } }, 'checkcolumn[dataIndex=fd_dbfind]': { checkchange: function(cm, rIdx, val){ if(val) { var grid = cm.up('grid'), record = grid.store.getAt(rIdx); grid.selModel.select(record); } } }, 'erpDeleteDetailButton': { afterrender: function(btn){ btn.ownerCt.add({ xtype:'erpDbfindButton', }); btn.ownerCt.add({ xtype:'erpComboButton', }); } }, /** * 下拉框设置 */ 'erpComboButton': { click: function(btn){ var record = btn.ownerCt.ownerCt.selModel.lastSelected; if(record && record.data.fd_type == 'C') { btn.comboSet(Ext.getCmp('fo_caller').value, record.data.fd_field,me); } } }, /** * DBFind设置 */ 'erpDbfindButton': { click: function(btn){ var record = btn.ownerCt.ownerCt.selModel.lastSelected; if(record && record.data.fd_dbfind) { btn.dbfindSetUI(Ext.getCmp('fo_caller').value, record.data.fd_field,me); } } }, 'erpFormPanel textfield[name=fo_table]': { /*change: function(field){ Ext.getCmp('fo_caller').setValue(field.value); var grid = Ext.getCmp('grid'),items = grid.store.data.items; Ext.Array.each(items, function(item){ if(Ext.isEmpty(item.data['fd_table'])) { item.set('fd_table', field.value); } }); field.setValue(field.value.toUpperCase()); }*/ }, 'erpFormPanel textfield[name=fo_detailtable]': { change: function(field){ field.setValue(field.value.toUpperCase()); } }, 'multidbfindtrigger': { render: function(field){ if(field.name == 'fo_button4add' || field.name == 'fo_button4rw'){ var fields = Ext.Object.getKeys($I18N.common.button); var values = Ext.Object.getValues($I18N.common.button); var data = []; Ext.each(fields, function(f, index){ var o = {}; o.value = fields[index]; o.display = values[index]; data.push(o); }); field.multistore = {fields:['display', 'value'],data:data}; } } }, 'multidbfindtrigger[name=fd_field]': { focus: function(t){ t.setHideTrigger(false); t.setReadOnly(false); var record = Ext.getCmp('grid').selModel.getLastSelected(); var code = record.data['fd_table']; if(code == null || code == ''){ showError("请先选择表单!"); t.setHideTrigger(true); t.setReadOnly(true); } else { t.dbBaseCondition = "ddd_tablename='" + code + "'"; } }, aftertrigger: function(t) { var f = Ext.getCmp('fo_table'); var record = Ext.getCmp('grid').selModel.getLastSelected(); var a = record.data['fd_table']; if(Ext.isEmpty(f.value) && !Ext.isEmpty(a)) { f.setValue(a.toUpperCase()); } } }, 'dbfindtrigger[name=fd_table]': { aftertrigger: function(t) { t.autoDbfind = false; var f = Ext.getCmp('fo_table'); if(Ext.isEmpty(f.value) && !Ext.isEmpty(t.value)) { f.setValue(t.value.toUpperCase()); } } }, 'dbfindtrigger[name=fo_keyfield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_table"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择表名!"; } }, 'dbfindtrigger[name=fo_codefield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_table"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择表名!"; } }, 'dbfindtrigger[name=fo_statusfield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_table"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择表名!"; } }, 'dbfindtrigger[name=fo_statuscodefield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_table"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择表名!"; } }, 'dbfindtrigger[name=fo_detailkeyfield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_detailtable"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择从表名!"; } }, 'dbfindtrigger[name=fo_detailmainkeyfield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_detailtable"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择从表名!"; } }, 'dbfindtrigger[name=fo_detailstatuscode]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_detailtable"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择从表名!"; } }, 'dbfindtrigger[name=fo_detailstatus]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_detailtable"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择从表名!"; } }, 'dbfindtrigger[name=fo_detaildetnofield]': { afterrender: function(t){ t.autoDbfind = false; t.dbKey = "fo_detailtable"; t.mappingKey = "ddd_tablename"; t.dbMessage = "请先选择从表名!"; } } }); }, getForm: function(btn){ return btn.ownerCt.ownerCt; }, onChange: function(field, value){ field.setValue(value); if(value == 'C'){ } }, save: function(){ //序列号 Ext.getCmp('fo_seq').setValue(Ext.getCmp('fo_table').value.toUpperCase() + '_SEQ'); var dt = Ext.getCmp('fo_detailtable').value; if(dt != null && dt != ''){ Ext.getCmp('fo_detailseq').setValue(dt.toUpperCase() + '_SEQ'); var dm = Ext.getCmp('fo_detailmainkeyfield').value; if(dm == null || dm == ''){ showError("请选择从表与主表关联的字段!");return; } } var grid = Ext.getCmp('grid'), items = grid.store.data.items, dd = new Array(), d = null; var field = Ext.getCmp('fo_table'); Ext.Array.each(items, function(item){ d = item.data; if(!Ext.isEmpty(d['fd_field'])){ if(Ext.isEmpty(d['fd_table'])) item.set('fd_table', field.value); d.fd_readonly = d.fd_readonly ? 'T' : 'F'; d.fd_dbfind = d.fd_dbfind ? 'T' : 'F'; d.fd_allowblank = d.fd_allowblank ? 'T' : 'F'; dd.push(d); } }); if(dd.length > 0) { var form = Ext.getCmp('form'); this.FormUtil.getSeqId(form); this.FormUtil.save(form.getValues(), Ext.encode(dd)); } else { showError('请至少配置一个有效字段!'); } }, update: function(){ var grid = Ext.getCmp('grid'); var field = Ext.getCmp('fo_table'), id = Ext.getCmp('fo_id').value; grid.store.each(function(item){ if(item.get('deploy') && !Ext.isEmpty(item.get('fd_field'))){ if(item.get('fd_foid') != id) item.set('fd_foid', id); if(Ext.isEmpty(item.get('fd_table'))) item.set('fd_table', field.value); } }); var me = this; if(! me.FormUtil.checkForm()){ return; } var dd = grid.getChange(); me.FormUtil.update(Ext.getCmp('form').getValues(), Ext.encode(dd.added), Ext.encode(dd.updated), Ext.encode(dd.deleted)); }, });