Ext.define('erp.view.ma.DataDictionaryGrid',{
extend: 'Ext.grid.Panel',
alias: 'widget.dictionarygrid',
layout : 'fit',
id: 'grid',
emptyText : $I18N.common.grid.emptyText,
columnLines : true,
autoScroll : true,
dockedItems: [{
xtype: 'toolbar',
dock: 'top',
items: [{
xtype:'button',
iconCls:'x-button-icon-add',
itemId:'column_add',
text:'添加'
},{
xtype:'button',
iconCls:'x-button-icon-delete2',
itemId:'column_delete',
text:'删除'
}]
}],
bodyStyle: 'background-color:#f1f1f1;',
plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1,
listeners:{
beforeedit:function(e){
var g=e.grid,r=e.record,f=e.field;
if(g.binds){
var bool=true;
Ext.Array.each(g.binds,function(item){
if(Ext.Array.contains(item.fields,f)){
Ext.each(item.refFields,function(field){
if(r.get(field)!=null && r.get(field)!=0 && r.get(field)!='' && r.get(field)!='0'){
bool=false;
}
});
}
});
return bool;
}
}
}
}), Ext.create('erp.view.core.plugin.CopyPasteMenu')],
GridUtil: Ext.create('erp.util.GridUtil'),
BaseUtil: Ext.create('erp.util.BaseUtil'),
dbfinds: [],
caller: null,
condition: null,
gridCondition:null,
columnLines:true,
plugins: [Ext.create('erp.view.core.grid.HeaderFilter'),Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1,
})],
necessaryFields:['column_name','data_type'],
initComponent : function(){
var me=this;
Ext.apply(me,{
columns:[{
dataIndex:'column_name',
cls: "x-grid-header-1",
text:'列名',
sortable:false,
renderer:function(val){
if(val != null && val.toString().trim() != ''){
return val;
} else {
return '' +
'' + val + '';
}
},
width:200,
filter: {xtype:"textfield", filterName:"column_name"},
editor:{
xtype:'textfield',
field:'column_name'
}
},{
dataIndex:'data_type',
cls: "x-grid-header-1",
text:'数据类型',
sortable:false,
width:120,
filter: {xtype:"textfield", filterName:"data_type"},
renderer:function(val,meta,record){
if(val){
if(val=='VARCHAR2'){
if(!record.get('data_length')){
record.set('data_length',20);
}
}else if(val=='CLOB' || val=='DATE' || val=='TIMESTAMP'){
if(record.get('data_length') && record.get('data_length')!=7) record.set('data_length',null);
}
}
return val;
},
editor:{
xtype:'combo',
editable:false,
queryMode: 'local',
displayField: 'type',
valueField: 'type',
store:Ext.create('Ext.data.Store',{
fields:['type'],
data:[{type:'VARCHAR2'},{
type:'NUMBER'
},{
type:'DATE'
},{
type:'CLOB'
},{
type:'TIMESTAMP'
},{
type:'FLOAT'
}]
})
}
},{
dataIndex:'comments',
cls: "x-grid-header-1",
text:'注释',
sortable:false,
format:'',
flex:1,
filter: {xtype:"textfield", filterName:"comments"},
editor:{
xtype:'textfield',
format:''
},
renderer:function(val){
if(val != null && val.toString().trim() != ''){
return val;
} else {
return '' +
'' + val + '';
}
}
},{
text:'其他属性',
columns:[{
dataIndex:'data_length',
cls: "x-grid-header-1",
text:'字段长度',
sortable:false,
width:100,
xtype:'numbercolumn',
format:0,
editor:{
xtype:'numberfield',
hideTrigger:true,
name:'data_length'
},
renderer:function(val,meta,record){
if(val){
if(record.get('data_type')=='DATE' && val==7) return null;
}
return val;
},
},{
dataIndex:'data_precision',
cls: "x-grid-header-1",
text:'字段精度',
sortable:false,
width:100,
editor:{
xtype:'numberfield',
hideTrigger:true
}
},{
dataIndex:'nullable',
cls: "x-grid-header-1",
text:'允许为空',
sortable:false,
width:80,
editor:{
xtype:'combo',
queryMode: 'local',
displayField: 'type',
valueField: 'type',
editable:false,
store:Ext.create('Ext.data.Store',{
fields:['type'],
data:[{type:'Y'},
{type:'N'}]
})
}
},{
dataIndex:'data_default',
cls: "x-grid-header-1",
text:'默认值',
sortable:false,
flex:100,
editor:{
xtype:'textfield'
}
}]
}],
store:Ext.create('Ext.data.Store',{
fields:['column_name','data_type',{name:'data_length',type:'int',format:0},'data_precision','nullable','data_default',{name:'comments',type:'string',format:''}],
proxy: {
type: 'ajax',
url: basePath+'/common/getDetail.action',
extraParams :{
tablename:tablename
},
reader: {
type: 'json',
root: 'list',
idProperty:'column_name'
}
},
autoLoad: true
})
})
this.callParent(arguments);
}
});