RecBalancePRDetailGrid.js 4.9 KB

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