请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

KearneyKang 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2019-12-10 12:24  /   查看:4103  /  回复:0
本帖最后由 KearneyKang 于 2019-12-24 14:50 编辑

目前JSviewer在工具栏上非常的齐全,基本可以满足需求。但是有的时候还是需要自己收到添加一些按钮来解决一些问题。
例如导出Excel的时候,当报表多页的时候导出会有多个sheet页,这个需要进行一个报表属性的设置。或者导出文件的时候需要修改导出报表的名称或者设置其他属性。
具体截图:

一、下面我们先来说说如何在导出的时候自定义一个 单表Excel 的按钮实现导出Excel报表时的属性设置。

具体步骤如下:
1、 需要引用jquery.min.js 文件
2、 使用Jquery选择器对单个元素或者组件进行操作
3、 给导出按钮的下拉框下添加一个导出样式选择按钮
具体实现代码:
  1. <script type="text/javascript">
  2.     var reportName = "";
  3.     var viewer = GrapeCity.ActiveReports.JSViewer.create({
  4.         element: '#viewer-id',
  5.         reportService: {
  6.             url: 'api/reporting',
  7.         },
  8.         reportID: '多条件级联模糊过滤.rdlx',
  9.         settings: {
  10.           zoomType: 'FitPage'
  11.        },
  12.        reportLoaded: function (reportInfo) {           
  13.             reportName = reportInfo.name;
  14.             var dotPosition = reportName.lastIndexOf(".");
  15.             if (dotPosition > 0) {
  16.                 reportName = reportName.substr(0, dotPosition);
  17.             }
  18.         }
  19.     });
  20.     //增加导出单页Excel按钮
  21.     $(".mdi-download").parent().bind('click', function () {   
  22.         addSimpleSheetExcelButton();
  23.         
  24.     });
  25.    
  26.     function addSimpleSheetExcelButton() {      
  27.         if ($(".ef-dd-menu").length > 0) {
  28.             var simpleSheetExcelButton = "<button id='export-simple-sheet-excel' class='btn btn-default' title='导出为 单表Excel 文档'><i class='mdi mdi-file-excel-box mdi-18px'></i><span class='ef-dd-item-text'>单表Excel</span></button>";
  29.             $($("#viewer-id .mdi-file-excel").parent()).before(simpleSheetExcelButton);
  30.             $("#export-simple-sheet-excel").click(function () {
  31.                 viewer.export('Xlsx', null, true, { FileName: reportName + '.xlsx', Multisheet: 'False', Pagination: 'False' });
  32.            });
  33.         }
  34.         else {
  35.             setTimeout(addSimpleSheetExcelButton, 100);
  36.         }
  37.     }

  38. </script>
复制代码
注意点:记得添加jquery.min.js的引用,不然你写的方法执行不了
二、如何在工具栏按钮
1、实现代码:
  1. $(document).ready(function () {
  2.         $(".gces-viewer-tools").
  3.             append("<div style='float:left;position:absolute;right:220px;'><input id='btnPrint' type='Button' value='编辑报表' onclick='Edit()' style='font-size:14px; width:80px;height:40px;background-color:#D8D8D8;' /></div>");
  4.     });
复制代码

总的页面代码:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8" />
  5.     <title></title>
  6.     <link href="scripts/materialdesignicons.min.css" rel="stylesheet" />
  7.     <link rel="stylesheet" href="https://fonts.cat.net/css?family=Open+Sans:400,300,600,700" type="text/css">
  8.     <link href="scripts/jsViewer.min.css" rel="stylesheet" />
  9.     <script src="scripts/jsViewer.min.js"></script>
  10.     <script src="scripts/jquery.min.js"></script>
  11. </head>
  12. <body>
  13.     <div id="viewer-id" style="height: 1000px"></div>
  14. </body>
  15. </html>
  16. <script type="text/javascript">
  17.     var reportName = "";
  18.     var viewer = GrapeCity.ActiveReports.JSViewer.create({
  19.         element: '#viewer-id',
  20.         reportService: {
  21.             url: 'api/reporting',
  22.         },
  23.         reportID: '多条件级联模糊过滤.rdlx',
  24.         settings: {
  25.             zoomType: 'FitPage'
  26.         },
  27.         reportLoaded: function (reportInfo) {           
  28.             reportName = reportInfo.name;
  29.             var dotPosition = reportName.lastIndexOf(".");
  30.             if (dotPosition > 0) {
  31.                 reportName = reportName.substr(0, dotPosition);
  32.             }
  33.         }
  34.     });
  35.     //增加导出单页Excel按钮
  36.     $(".mdi-download").parent().bind('click', function () {   
  37.         addSimpleSheetExcelButton();
  38.         
  39.     });
  40.     $(document).ready(function () {
  41.         $(".gces-viewer-tools").
  42.             append("<div style='float:left;position:absolute;right:220px;'><input id='btnPrint' type='Button' value='编辑报表' onclick='Edit()' style='font-size:14px; width:80px;height:40px;background-color:#D8D8D8;' /></div>");
  43.     });
  44.     function addSimpleSheetExcelButton() {      
  45.         if ($(".ef-dd-menu").length > 0) {
  46.             var simpleSheetExcelButton = "<button id='export-simple-sheet-excel' class='btn btn-default' title='导出为 单表Excel 文档'><i class='mdi mdi-file-excel-box mdi-18px'></i><span class='ef-dd-item-text'>单表Excel</span></button>";
  47.             $($("#viewer-id .mdi-file-excel").parent()).before(simpleSheetExcelButton);
  48.             $("#export-simple-sheet-excel").click(function () {
  49.                 viewer.export('Xlsx', null, true, { FileName: reportName + '.xlsx', Multisheet: 'False', Pagination: 'False' });
  50.             });
  51.         }
  52.         else {
  53.             setTimeout(addSimpleSheetExcelButton, 100);
  54.         }
  55.     }

  56. </script>
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部