Просмотр исходного кода

报表界面,添加打印按钮

zhouy 7 лет назад
Родитель
Сommit
2e030cbe49

+ 14 - 1
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -44,7 +44,20 @@ Ext.define('saas.view.core.report.ReportPanel', {
                         xtype: 'button',
                         text: '查询',
                         handler: 'onQuery'
-                    }, {
+                    },{
+                        xtype:'button',
+                        text:'打印',
+                        style: {
+                            float: 'right'
+                        },
+                        handler: 'exportTo',
+                        cfg: {
+                            type: 'html',
+                            includeGroups: true,
+                            includeSummary: true,
+                            isPrint:true
+                        }
+                    },{
                         xtype: 'button',
                         style: {
                             float: 'right'

+ 20 - 10
frontend/saas-web/app/view/core/report/ReportPanelController.js

@@ -14,30 +14,40 @@ Ext.define('saas.view.core.report.ReportPanelController', {
         var me = this,
         reportPanel = me.getView(),
         grid = reportPanel.getListGrid();
-
         grid.store.loadPage(1);
     },
-
-    exportTo: function(btn){
+    exportTo:function(btn){
         var me = this,
-        reportPanel = me.getView(),
-        grid = reportPanel.getListGrid(),
-        title = reportPanel.reportTitle;
+            reportPanel = me.getView(),
+            grid = reportPanel.getListGrid(),
+            title = reportPanel.reportTitle;
 
         var cfg = Ext.merge({
             title: title,
+            titleStyle:{
+                alignment:{
+                    horizontal:'Center', vertical:'Center'
+                }
+                //font:
+            },
             fileName: title + '.' + (btn.cfg.ext || btn.cfg.type)
         }, btn.cfg);
-
-
         grid.store.exportPageSize = 5000;
         grid.store.exportNumber = 1;
         grid.store.load(function(records, operation, success) {
-            grid.saveDocumentAs(cfg);
+            if(btn.cfg.isPrint){
+                me.printHtml(grid.getDocumentData(cfg));
+            }else  grid.saveDocumentAs(cfg);
             grid.store.exportPageSize = null;
             grid.store.exportNumber = null;
             grid.store.load(function(records, operation, success) {
             });
         });
-    }
+    },
+    printHtml: function(html){
+        var d = window.open("", "print");
+        d.document.write(html);
+        d.document.close();
+        d.print();
+    },
 });