|
|
@@ -7,6 +7,7 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
|
|
|
var titleEditor = Ext.create('Ext.window.Window', {
|
|
|
field: trigger,
|
|
|
title: trigger.fieldLabel,
|
|
|
+ check: trigger.name == 'sql',
|
|
|
width:420,
|
|
|
height:320,
|
|
|
modal:true,
|
|
|
@@ -24,14 +25,14 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
|
|
|
fieldLabel: '内容',
|
|
|
name: 'text'
|
|
|
}],
|
|
|
- tbar: [{
|
|
|
- xtype: 'button',
|
|
|
- cls: 'ux-start-button',
|
|
|
- iconCls: 'ux-start-button-icon',
|
|
|
- menuAlign: 'bl-tl',
|
|
|
- text:'引入参数',
|
|
|
- menu:Ext.widget('startmenu'),
|
|
|
- }]
|
|
|
+ // tbar: [{
|
|
|
+ // xtype: 'button',
|
|
|
+ // cls: 'ux-start-button',
|
|
|
+ // iconCls: 'ux-start-button-icon',
|
|
|
+ // menuAlign: 'bl-tl',
|
|
|
+ // text:'引入参数',
|
|
|
+ // menu:Ext.widget('startmenu'),
|
|
|
+ // }]
|
|
|
}],
|
|
|
buttonAlign: 'center',
|
|
|
buttons:[{
|
|
|
@@ -39,6 +40,10 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
|
|
|
formBind:true,
|
|
|
handler:function(btn){
|
|
|
var win = btn.ownerCt.ownerCt;
|
|
|
+ var params = win.getParams(win.getText());
|
|
|
+ if(win.check && !win.checkParams(params)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
var componet = Ext.getCmp(win.field.ownerCt.el.dom.parentNode.id);
|
|
|
if(componet) {
|
|
|
var grid = componet;
|
|
|
@@ -48,7 +53,16 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
|
|
|
var selected = selections[0];
|
|
|
selected.set(fieldname, win.getText());
|
|
|
var rowIndex = store.indexOf(selected);
|
|
|
- grid.getPlugin().startEditByPosition({row: rowIndex, column: 1});
|
|
|
+ var colIndex = 0;
|
|
|
+ var columns = grid.columnManager.columns;
|
|
|
+ for(var i = 0; i < columns.length; i ++) {
|
|
|
+ var column = columns[i];
|
|
|
+ if(column.dataIndex == fieldname) {
|
|
|
+ colIndex = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ grid.getPlugin().startEditByPosition({row: rowIndex, column: colIndex});
|
|
|
}else {
|
|
|
win.field.setValue(win.getText());
|
|
|
}
|
|
|
@@ -83,6 +97,36 @@ Ext.define('erp.view.core.trigger.TextTrigger', {
|
|
|
var me = this;
|
|
|
var form = me.down('form');
|
|
|
return form.getForm().findField('text').getValue();
|
|
|
+ },
|
|
|
+ /* 获得引用的参数数组 **/
|
|
|
+ getParams: function(content) {
|
|
|
+ var reg = /\$P{([^\}]{0,})\}/g
|
|
|
+ var result = content.match(reg);
|
|
|
+ var params = [];
|
|
|
+ Ext.Array.each(result, function(r) {
|
|
|
+ var rs = reg.exec(r);
|
|
|
+ if(rs) {
|
|
|
+ params.push(rs[1]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return params;
|
|
|
+ },
|
|
|
+ /* 检测引用的参数是否定义 **/
|
|
|
+ checkParams: function(params) {
|
|
|
+ var paramsGrid = Ext.getCmp('modeltree');
|
|
|
+ var paramsRecord = paramsGrid.getStore().data.items;
|
|
|
+ var panelParams = [];
|
|
|
+ var success = true;
|
|
|
+ Ext.Array.each(paramsRecord, function(p) {
|
|
|
+ panelParams.push(p.get('name'));
|
|
|
+ });
|
|
|
+ Ext.Array.each(params, function(p) {
|
|
|
+ if(panelParams.indexOf(p) == -1) {
|
|
|
+ showErrorMsg('警告', '使用的参数 ' + p + ' 未定义!');
|
|
|
+ success = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return success;
|
|
|
}
|
|
|
});
|
|
|
titleEditor.show();
|