BatchPrint.js 2.6 KB

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