Export.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.data.Export', {
  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.data.Export','core.form.Panel','core.form.ArgsField','core.form.ArgTypeField',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.Load','core.button.Export',
  10. 'core.button.Update','core.button.Test','core.button.Scan','core.toolbar.Toolbar','core.button.Delete',
  11. 'core.trigger.DbfindTrigger','core.trigger.MultiDbfindTrigger','core.button.DeleteDetail'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpSaveButton': {
  17. click: function(btn){
  18. this.save(btn);
  19. }
  20. },
  21. 'erpUpdateButton':{
  22. click:function(btn){
  23. var form=me.getForm(btn);
  24. var data=form.getForm().getValues();
  25. var condition=data.ed_condition;
  26. var tablename=data.ed_tablename;
  27. var orderby=data.ed_orderby;
  28. var fields=data.ed_fields.replace(/#/g,",");
  29. var str="";
  30. str+=(condition==""||condition==null)?"":(" WHERE "+condition);
  31. str+=(orderby==""||orderby==null)?"":" "+orderby;
  32. Ext.getCmp('ed_sql').setValue('SELECT '+fields+' FROM ' +tablename+str);
  33. me.FormUtil.onUpdate(this);
  34. }
  35. },
  36. 'erpDeleteButton':{
  37. click:function(btn){
  38. me.FormUtil.onDelete(Ext.getCmp('ed_id').getValue());
  39. }
  40. },
  41. 'multidbfindtrigger[name=ed_tables]':{
  42. change:function(field,newvalue){
  43. if(newvalue!=null){
  44. var str="(";
  45. Ext.Array.each(newvalue.split('#'),function(item){
  46. str+="'"+item+"',";
  47. });
  48. str=str.substring(0,str.length-1)+")";
  49. Ext.getCmp('ed_selectfields').dbBaseCondition="ddd_tablename in " +str;
  50. }
  51. var com=Ext.getCmp('ed_selectfields');
  52. com.setValue(null);
  53. if(newvalue!=""){
  54. com.setDisabled(false);
  55. }else com.setDisabled(true);
  56. Ext.getCmp('ed_tablename').setValue(null);
  57. Ext.getCmp('ed_fields').setValue(null);
  58. }
  59. },
  60. 'multidbfindtrigger[name=ed_selectfields]':{
  61. afterrender:function(trigger){
  62. trigger.disabled=true;
  63. }
  64. },
  65. 'erpTestButton':{
  66. click:function(btn){
  67. var form=me.getForm(btn);
  68. Ext.Ajax.request({
  69. method:'POST',
  70. url:basePath+form.testUrl,
  71. params:{
  72. formStore:unescape(Ext.JSON.encode(form.getForm().getValues()).replace(/\\/g,"%"))
  73. },
  74. callback : function(options,success,response){
  75. var local=Ext.decode(response.responseText);
  76. if(local.success){
  77. Ext.Msg.alert('提示','测试成功!');
  78. }else Ext.Msg.alert('提示','测试失败!');
  79. }
  80. });
  81. },
  82. beforerender:function(btn){
  83. btn.formBind=true;
  84. }
  85. },
  86. 'erpLoadButton':{
  87. click:function(btn){
  88. var form=me.getForm(btn);
  89. Ext.Ajax.request({
  90. method:'POST',
  91. url:basePath+form.loadUrl,
  92. params:{
  93. id:Ext.getCmp('ed_id').getValue()
  94. },
  95. callback : function(options,success,response){
  96. var local=Ext.decode(response.responseText);
  97. if(local.exceptionInfo){
  98. showError(local.exceptionInfo);
  99. return;
  100. }else if(local.success){
  101. btn.ownerCt.ownerCt.ownerCt.add({
  102. xtype:'grid',
  103. columns:local.columns,
  104. anchor: '100% 30%',
  105. emptyText : $I18N.common.grid.emptyText,
  106. columnLines : true,
  107. autoScroll : true,
  108. store:Ext.create('Ext.data.Store', {
  109. fields: local.fields,
  110. data: Ext.decode(local.data)})
  111. });
  112. }
  113. }
  114. });
  115. },
  116. afterrender:function(btn){
  117. btn.id='load';
  118. }
  119. },
  120. 'erpExportButton':{
  121. beforerender:function(btn){
  122. btn.handler=function(){
  123. var id=Ext.getCmp('ed_id').getValue();
  124. window.location.href=basePath+'ma/downloadAsExcel.action?id='+id;
  125. };
  126. },
  127. afterrender:function(btn){
  128. var id=Ext.getCmp('ed_id').getValue();
  129. if(id!=""&&id!=null){
  130. btn.setDisabled(false);
  131. Ext.getCmp('load').setDisabled(false);
  132. }else{
  133. btn.setDisabled(true);
  134. Ext.getCmp('load').setDisabled(true);
  135. }
  136. }
  137. },
  138. 'erpCloseButton': {
  139. click: function(btn){
  140. this.FormUtil.beforeClose(me);
  141. }
  142. }
  143. });
  144. },
  145. getForm: function(btn){
  146. return btn.ownerCt.ownerCt;
  147. },
  148. save: function(btn){
  149. var me = this;
  150. var form=me.getForm(btn);
  151. var data=form.getForm().getValues();
  152. var condition=data.ed_condition;
  153. var tablename=data.ed_tablename;
  154. var orderby=data.ed_orderby;
  155. var fields=data.ed_fields.replace(/#/g,",");
  156. var str="";
  157. str+=(condition==""||condition==null)?"":(" WHERE "+condition);
  158. str+=(orderby==""||orderby==null)?"":" "+orderby;
  159. Ext.getCmp('ed_sql').setValue('SELECT '+fields+' FROM ' +tablename+str);
  160. if(Ext.getCmp('ed_code').value == null || Ext.getCmp('ed_code').value == ''){
  161. me.BaseUtil.getRandomNumber();
  162. Ext.getCmp('ed_code').setValue('D_'+Ext.getCmp('ed_code').getValue() );
  163. }
  164. me.FormUtil.beforeSave(me);
  165. }
  166. });