DBfindSet.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.DBfindSet', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'ma.DBfindSet','core.form.Panel','core.grid.Panel2',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.DeleteDetail','core.button.ResAudit','core.grid.YnColumn',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.button.DlcCaller'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpSaveButton': {
  17. click: function(btn){
  18. this.FormUtil.beforeSave(me);
  19. }
  20. },
  21. 'erpCloseButton': {
  22. click: function(btn){
  23. this.FormUtil.beforeClose(me);
  24. }
  25. },
  26. 'erpAddButton': {
  27. click: function(){
  28. me.FormUtil.onAdd('addDBFindSet', '新增DBFindSet设置', 'jsps/ma/dbFindSet.jsp');
  29. }
  30. },
  31. 'erpUpdateButton':{
  32. click: function(btn){
  33. this.FormUtil.onUpdate(this);
  34. }
  35. },
  36. 'erpDeleteButton':{
  37. click: function(btn){
  38. this.FormUtil.onDelete(Ext.getCmp('ds_id').getValue());
  39. }
  40. },
  41. 'combo': {
  42. change: this.onChange
  43. },
  44. 'erpGridPanel2': {
  45. itemclick: this.GridUtil.onGridItemClick
  46. },
  47. 'dbfindtrigger': {
  48. change: function(trigger){
  49. if(trigger.name == 'fo_table'){
  50. this.changeGrid(trigger);
  51. }
  52. }
  53. },
  54. 'erpDlcCallerButton':{
  55. click:function(btn){
  56. var tablename=Ext.getCmp('ds_tablename');
  57. var form=me.getForm(btn);
  58. var items=Ext.getCmp('grid').store.data.items;
  59. var fields='';
  60. Ext.each(items,function(i){
  61. if(i.data['dd_fieldtype']=='C'){
  62. fields+="'"+i.data['dd_fieldname']+"',";
  63. }
  64. });
  65. if(fields.length>0&&tablename&&tablename.value!=''){
  66. fields=fields.substring(0,fields.length-1);
  67. var con="'"+tablename.value.toUpperCase().replace(/\s+(LEFT|RIGHT)\s+JOIN\s+/g,"','")
  68. .replace(/(\s+ON\s+)([A-Z0-9$_.]+)(\s*=\s*)([A-Z0-9$_.]+)/g,"")
  69. .replace(/((\s+AND\s+)([A-Z0-9$_.]+)(\s*=\s*)([A-Z0-9$_.]+))/g,"")+"'";
  70. form.setLoading(true);
  71. Ext.Ajax.request({
  72. url : basePath +'common/getDlccallerByTables.action',
  73. params: {
  74. table:con,
  75. fields:fields
  76. },
  77. async: false,
  78. method : 'post',
  79. callback : function(options,success,response){
  80. form.setLoading(false);
  81. var res = new Ext.decode(response.responseText);
  82. if(res.exceptionInfo != null){
  83. showError(res.exceptionInfo);return;
  84. }
  85. if(res.success){
  86. var arr=arr1=arr2=new Array();
  87. var s1=Ext.getCmp('ds_dlccaller').value;
  88. arr1=s1.split(',');
  89. var s2=res.callers;
  90. var arr2=s2.split(',');
  91. var arr=Ext.Array.union(arr1,arr2);
  92. arr=Ext.Array.remove(arr,'');
  93. Ext.getCmp('ds_dlccaller').setValue(arr.join(','));
  94. }
  95. }
  96. });
  97. }
  98. }
  99. }
  100. });
  101. },
  102. getForm: function(btn){
  103. return btn.ownerCt.ownerCt;
  104. },
  105. onChange: function(field, value){
  106. field.setValue(value);
  107. if(value == 'C'){
  108. }
  109. },
  110. changeGrid: function(trigger){
  111. var grid = Ext.getCmp('grid');
  112. Ext.Array.each(grid.store.data.items, function(item){
  113. item.set('fd_table',trigger.value);
  114. });
  115. }
  116. });