KearneyKang 发表于 2019-12-10 12:24:27

使用JSviewer如何在工具栏添加按钮

本帖最后由 KearneyKang 于 2019-12-24 14:50 编辑

目前JSviewer在工具栏上非常的齐全,基本可以满足需求。但是有的时候还是需要自己收到添加一些按钮来解决一些问题。例如导出Excel的时候,当报表多页的时候导出会有多个sheet页,这个需要进行一个报表属性的设置。或者导出文件的时候需要修改导出报表的名称或者设置其他属性。具体截图:
一、下面我们先来说说如何在导出的时候自定义一个 单表Excel 的按钮实现导出Excel报表时的属性设置。
具体步骤如下:1、 需要引用jquery.min.js 文件2、 使用Jquery选择器对单个元素或者组件进行操作3、 给导出按钮的下拉框下添加一个导出样式选择按钮具体实现代码:<script type="text/javascript">
    var reportName = "";
    var viewer = GrapeCity.ActiveReports.JSViewer.create({
      element: '#viewer-id',
      reportService: {
            url: 'api/reporting',
      },
      reportID: '多条件级联模糊过滤.rdlx',
      settings: {
          zoomType: 'FitPage'
       },
       reportLoaded: function (reportInfo) {         
            reportName = reportInfo.name;
            var dotPosition = reportName.lastIndexOf(".");
            if (dotPosition > 0) {
                reportName = reportName.substr(0, dotPosition);
            }
      }
    });
    //增加导出单页Excel按钮
    $(".mdi-download").parent().bind('click', function () {   
      addSimpleSheetExcelButton();
      
    });
   
    function addSimpleSheetExcelButton() {      
      if ($(".ef-dd-menu").length > 0) {
            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>";
            $($("#viewer-id .mdi-file-excel").parent()).before(simpleSheetExcelButton);
            $("#export-simple-sheet-excel").click(function () {
                viewer.export('Xlsx', null, true, { FileName: reportName + '.xlsx', Multisheet: 'False', Pagination: 'False' });
         });
      }
      else {
            setTimeout(addSimpleSheetExcelButton, 100);
      }
    }

</script>
注意点:记得添加jquery.min.js的引用,不然你写的方法执行不了二、如何在工具栏按钮1、实现代码:$(document).ready(function () {
      $(".gces-viewer-tools").
            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>");
    });

总的页面代码:<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link href="scripts/materialdesignicons.min.css" rel="stylesheet" />
    <link rel="stylesheet" href="https://fonts.cat.net/css?family=Open+Sans:400,300,600,700" type="text/css">
    <link href="scripts/jsViewer.min.css" rel="stylesheet" />
    <script src="scripts/jsViewer.min.js"></script>
    <script src="scripts/jquery.min.js"></script>
</head>
<body>
    <div id="viewer-id" style="height: 1000px"></div>
</body>
</html>
<script type="text/javascript">
    var reportName = "";
    var viewer = GrapeCity.ActiveReports.JSViewer.create({
      element: '#viewer-id',
      reportService: {
            url: 'api/reporting',
      },
      reportID: '多条件级联模糊过滤.rdlx',
      settings: {
            zoomType: 'FitPage'
      },
      reportLoaded: function (reportInfo) {         
            reportName = reportInfo.name;
            var dotPosition = reportName.lastIndexOf(".");
            if (dotPosition > 0) {
                reportName = reportName.substr(0, dotPosition);
            }
      }
    });
    //增加导出单页Excel按钮
    $(".mdi-download").parent().bind('click', function () {   
      addSimpleSheetExcelButton();
      
    });
    $(document).ready(function () {
      $(".gces-viewer-tools").
            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>");
    });
    function addSimpleSheetExcelButton() {      
      if ($(".ef-dd-menu").length > 0) {
            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>";
            $($("#viewer-id .mdi-file-excel").parent()).before(simpleSheetExcelButton);
            $("#export-simple-sheet-excel").click(function () {
                viewer.export('Xlsx', null, true, { FileName: reportName + '.xlsx', Multisheet: 'False', Pagination: 'False' });
            });
      }
      else {
            setTimeout(addSimpleSheetExcelButton, 100);
      }
    }

</script>



页: [1]
查看完整版本: 使用JSviewer如何在工具栏添加按钮