BOMStructQuery.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.bom.BOMStructQuery', {
  3. extend: 'Ext.app.Controller',
  4. views:[
  5. 'common.batchPrint.Viewport','common.batchPrint.Form','pm.bom.BomQueryGrid','core.form.ConMonthDateField',
  6. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.FtFindField','core.form.ConDateField','core.form.MonthDateField',
  7. 'core.form.YnField', 'core.form.FtDateField','core.grid.YnColumn', 'core.grid.TfColumn',
  8. 'core.form.ConMonthDateField'],
  9. init:function(){
  10. //var me = this;
  11. this.control({
  12. 'dbfindtrigger[name=bo_id]':{
  13. afterrender:function(trigger){
  14. trigger.autoDbfind=false;
  15. }
  16. },
  17. 'erpBatchPrintGridPanel': {
  18. afterrender: function(grid){
  19. var form = Ext.getCmp('printform');
  20. if(form && form.items.items.length > 0){
  21. //根据form字段的多少来调节form所占高度
  22. var height = window.innerHeight;
  23. if(Ext.isIE){
  24. height = screen.height*0.75;
  25. }
  26. var cw = 0;
  27. Ext.each(form.items.items, function(){
  28. cw += this.columnWidth;
  29. });
  30. cw = Math.ceil(cw);
  31. if(cw == 0){
  32. cw = 5;
  33. } else if(cw > 2 && cw <= 5){
  34. cw -= 1;
  35. } else if(cw > 5 && cw < 8){
  36. cw = 4;
  37. }
  38. cw = Math.min(cw, 5);
  39. form.setHeight(height*cw/10 + 10);
  40. grid.setHeight(height*(10 - cw)/10 - 10);
  41. }
  42. }
  43. }
  44. });
  45. },
  46. countGrid: function(){
  47. //重新计算合计栏值
  48. var grid = Ext.getCmp('batchPrintGridPanel');
  49. Ext.each(grid.columns, function(column){
  50. if(column.summary){
  51. var sum = 0;
  52. Ext.each(grid.store.data.items, function(item){
  53. if(item.value != null && item.value != ''){
  54. sum += Number(item.value);
  55. }
  56. });
  57. Ext.getCmp(column.dataIndex + '_sum').setText(column.text + '(sum):' + sum);
  58. } else if(column.average) {
  59. var average = 0;
  60. Ext.each(grid.store.data.items, function(item){
  61. if(item.value != null && item.value != ''){
  62. average += Number(item.value);
  63. }
  64. });
  65. average = average/grid.store.data.items.length;
  66. Ext.getCmp(column.dataIndex + '_average').setText(column.text + '(average):' + average);
  67. } else if(column.count) {
  68. var count = 0;
  69. Ext.each(grid.store.data.items, function(item){
  70. if(item.value != null && item.value != ''){
  71. count++;
  72. }
  73. });
  74. Ext.getCmp(column.dataIndex + '_count').setText(column.text + '(count):' + count);
  75. }
  76. });
  77. }
  78. });