找回密码
 立即注册

QQ登录

只需一步,快速开始

fizsoft

注册会员

16

主题

44

帖子

140

积分

注册会员

积分
140

活字格认证微信认证勋章

fizsoft
注册会员   /  发表于:2015-10-29 12:32  /   查看:6433  /  回复:9
我看了其他帖子里讲到用如下代码可以实现JS导出Excel:
  1. <script src="jquery-1.9.1.min.js" type="text/javascript"></script>
  2.     <script type="text/javascript">
  3.         var viewMode;
  4.         $(document).ready(function () {
  5.             $('#WebViewer1').bind('loaded', function () {
  6.                 // 获取 ViewMode 对象
  7.                 viewMode = GetViewModel('WebViewer1');
  8.             });
  9.         });
  10.         // 导出 PDF 文件
  11.         function Button1_onclick() {
  12.             if (viewMode.PageLoaded()) {
  13.                 viewMode.Export(ExportType.Pdf, function (uri) {
  14.                     window.location = uri;
  15.                 }, true, { FileName: "ActiveReports报表.pdf" });
  16.             }
  17.         }
  18.         // 导出 Excel 文件
  19.         function Button2_onclick() {
  20.             if (viewMode.PageLoaded()) {
  21.                 viewMode.Export(ExportType.Xls, function (uri) {
  22.                     window.location = uri;
  23.                 }, true, { FileName: "ActiveReports报表.xls" });
  24.             }
  25.         }
  26.         // 导出 Word 文件
  27.         function Button3_onclick() {
  28.             if (viewMode.PageLoaded()) {
  29.                 viewMode.Export(ExportType.Word, function (uri) {
  30.                     window.location = uri;
  31.                 }, true, { FileName: "ActiveReports报表.doc" });
  32.             }
  33.         }
  34.     </script>
复制代码


有两个问题:
1、jquery库貌似有冲突,一旦引用jquery-1.9.1.min.js,报表一直处于加载状态。有没有非jquery版本的脚本。
2、这个导出支持钻取到子报表的导出吗?就是我钻取到下层的子报表时,运行这个方法得到的是当前报表的导出

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-10-29 15:37:00
沙发
回复 1楼fizsoft的帖子

可以通过FlashViewer + WebService 方式导出报表:
http://blog.gcpowertools.com.cn/ ... ze_flashviewer.aspx

问题2,我并不是十分理解您的意思,希望一起导出主报表和子报表到 Excel 吗?
回复 使用道具 举报
fizsoft
注册会员   /  发表于:2015-10-29 15:50:00
板凳
只导出子报表,就是当前钻取到的报表
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-10-29 18:08:00
地板
回复 3楼fizsoft的帖子

如果是基于2#链接中的方法,可以通过参数传递需要导出的报表,关键代码如下:

  1.             PageReport pr = new PageReport(new System.IO.FileInfo(context.Server.MapPath(&quot;PageReport1.rdlx&quot;)));
复制代码
回复 使用道具 举报
fizsoft
注册会员   /  发表于:2015-10-30 10:52:00
5#
HTMLView的该怎么操作?有例子吗?Flash的有其他的问题解决不了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-10-30 14:21:00
6#
回复 5楼fizsoft的帖子

理解您的问题是:希望通过 HTML Viewer 在后台导出 Excel 文件。可以参考博客:
http://blog.gcpowertools.com.cn/ ... export-options.aspx

前台代码:

  1. <script language="javascript" type="text/javascript">
  2.    function ForcePostBack() {
  3.       form1.submit();
  4.    }
  5.    var reportSelect = '<select id="ReportSelect" style="width:150px"><option selected disabled>Choose Report</option><option value="SectionReport1">SectionReport1</option><option value="SectionReport2">SectionReport2</option></select>';
  6.    $(document).ready(function () {
  7.       var selectedValue = $("#fldReportName").val();
  8.       if (selectedValue !== "") {
  9.          setTimeout(function () {
  10.             $("#ReportSelect").val(selectedValue);
  11.          }, 100);
  12.       }
  13.       var toolbar = $('#WebViewer1').find('.arvToolBar');
  14.       toolbar.append(reportSelect);
  15.       //Force a postback upon report selection
  16.       $("#ReportSelect").change(function (e, args) {
  17.          var reportName = this.value;
  18.          $("#fldReportName").val(reportName);
  19.          ForcePostBack();
  20.          this.value = $("#fldReportName").val();
  21.       });
  22.    });
  23. </script>
复制代码


后台结合2#链接中导出方法导出即可。

评分

参与人数 1满意度 +5 收起 理由
fizsoft + 5 问题解决,谢谢

查看全部评分

回复 使用道具 举报
fizsoft
注册会员   /  发表于:2015-10-31 17:45:00
7#
找到了最简单的方法,用下面这段代码随便在哪个按钮的onclick调用就行:
  1.         function ExportExcel()
  2.         {
  3.             viewMode = GetViewModel('WebViewer1');
  4.             if (viewMode.PageLoaded()) {
  5.                 viewMode.Export(ExportType.Xls, function (uri) {
  6.                     window.location = uri;
  7.                 }, true, { FileName: &quot;ActiveReports报表.xls&quot; });
  8.             }
  9.         }
复制代码


钻取也没有关系,问题解决,可以结贴
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2015-11-2 10:04:00
8#
回复 7楼fizsoft的帖子



谢谢fizsoft分享,在这边博客中也列出了基于Web客户端的导出和打印方法,可以导出当前视图下的报表内容。
http://blog.gcpowertools.com.cn/ ... _Client_Export.aspx
回复 使用道具 举报
fizsoft
注册会员   /  发表于:2015-11-2 11:50:00
9#
回复 8楼dof的帖子

嗯,其实就是这个文章里的方法,只不过没用jquery
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2015-11-2 12:15:00
10#
回复 9楼fizsoft的帖子

哈哈,好的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部