RecBalanceAPGrid.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. Ext.define('erp.view.fa.ars.recbalanceap.RecBalanceAPGrid',{
  2. extend:'Ext.grid.Panel',
  3. alias:'widget.recbalanceap',
  4. requires: ['erp.view.core.toolbar.Toolbar'],
  5. layout:'fit',
  6. id:'recbalanceapGrid',
  7. emptyText : $I18N.common.grid.emptyText,
  8. columnLines : true,
  9. autoScroll : true,
  10. detno:'rbap_detno',
  11. keyField:'rbap_id',
  12. mainField:'rbap_rbid',
  13. columns:[],
  14. multiselected: [],
  15. bodyStyle:'bachgroud-color:#f1f1f1;',
  16. plugins:Ext.create('Ext.grid.plugin.CellEditing',{
  17. clicksToEdit:1
  18. }),
  19. features : [Ext.create('Ext.grid.feature.Grouping',{
  20. groupHeaderTpl: '{name} (Count:{rows.length})'
  21. }),{
  22. ftype : 'summary',
  23. showSummaryRow : false,//不显示默认合计行
  24. generateSummaryData: function(){
  25. var me = this,
  26. data = {},
  27. store = me.view.store,
  28. columns = me.view.headerCt.getColumnsForTpl(),
  29. i = 0,
  30. length = columns.length,
  31. comp;
  32. //将feature的data打印在toolbar上面
  33. for (i = 0, length = columns.length; i < length; ++i) {
  34. comp = Ext.getCmp(columns[i].id);
  35. data[comp.id] = me.getSummary(store, comp.summaryType, comp.dataIndex, false);
  36. var tb = Ext.getCmp(columns[i].dataIndex + '_' + comp.summaryType);
  37. if(tb){
  38. var val = data[comp.id];
  39. if(columns[i].xtype == 'numbercolumn' || /^numbercolumn-\d*$/.test(columns[i].columnId)) {
  40. val = Ext.util.Format.number(val, (columns[i].format || '0,000.000'));
  41. }
  42. tb.setText(tb.text.split(':')[0] + ':' + val);
  43. }
  44. }
  45. return data;
  46. }
  47. }],
  48. bbar: {xtype: 'erpToolbar',id: 'RBAPtool'},
  49. GridUtil:Ext.create('erp.util.GridUtil'),
  50. BaseUtil:Ext.create('erp.util.BaseUtil'),
  51. setReadOnly: function(bool){
  52. this.readOnly = bool;
  53. },
  54. selModel: Ext.create('Ext.selection.CheckboxModel',{
  55. checkOnly:true,
  56. ignoreRightMouseSelection : false,
  57. getEditor: function(){
  58. return null;
  59. },
  60. onHeaderClick: function(headerCt, header, e) {
  61. if (header.isCheckerHd) {
  62. e.stopEvent();
  63. var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
  64. if (isChecked) {
  65. this.deselectAll(true);
  66. var grid = Ext.getCmp('paypleasedetailGrid');
  67. this.deselect(grid.multiselected);
  68. grid.multiselected = new Array();
  69. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  70. Ext.each(els, function(el, index){
  71. el.setAttribute('class','x-grid-row-checker');
  72. });
  73. header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  74. } else {
  75. var grid = Ext.getCmp('paypleasedetailGrid');
  76. this.deselect(grid.multiselected);
  77. grid.multiselected = new Array();
  78. var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
  79. Ext.each(els, function(el, index){
  80. el.setAttribute('class','x-grid-row-checker');
  81. });
  82. this.selectAll(true);
  83. header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
  84. }
  85. }
  86. }
  87. }),
  88. /**
  89. * 修改为selection改变时,summary也动态改变
  90. */
  91. getMultiSelected: function(){
  92. var grid = this;
  93. var items = grid.selModel.getSelection();
  94. Ext.each(items, function(item, index){
  95. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  96. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  97. grid.multiselected.push(item);
  98. }
  99. });
  100. return Ext.Array.unique(grid.multiselected);
  101. },
  102. initComponent:function(){
  103. this.callParent(arguments);
  104. //得到页面上显示的formCondition属性
  105. var urlCondition = this.BaseUtil.getUrlParam('gridCondition');
  106. var condition='';
  107. if(urlCondition){
  108. condition = urlCondition.replace('rbd_rbid','rbap_rbid');
  109. condition = condition.replace('IS','=');
  110. }
  111. //通过pp_id的值按条件查找PayPleaseDetail 表中的数据 condition为查找PayPleaseDetail的时候拼成的条件
  112. this.getMyData(condition);
  113. },
  114. getMyData:function(condition){
  115. var me = this;
  116. var caller = (me.caller&&me.caller!='')?me.caller:'RBAPGird';
  117. var params = {
  118. caller:caller,
  119. condition:condition
  120. };
  121. if(me.columns && me.columns.length > 2){
  122. me.GridUtil.loadNewStore(me,params);
  123. } else {
  124. me.GridUtil.getGridColumnsAndStore(me,'common/singleGridPanel.action',params);
  125. }
  126. }
  127. });