找回密码
 立即注册

QQ登录

只需一步,快速开始

木四
金牌服务用户   /  发表于:2024-10-31 11:38  /   查看:263  /  回复:10
1金币
          导出代码如下,升18后,点击按钮无反应
           <script type="text/javascript">         
            var viewMode;

            $(document).ready(function () {

                var toolbar = $('#WebViewer1').find('.arvToolBar');  //WebViewer1为WebViewer的ID
                toolbar.find('.btnToggleSidebar').remove();
                toolbar.find('.btnFind').remove(); //隐藏查找按钮
                toolbar.find('.btnBack').remove();
                toolbar.find('.btnGalley').remove();

                $('#WebViewer1').bind('loaded', function () {

                    // 获取 ViewMode 对象

                    viewMode = GetViewModel('WebViewer1');

                });

            });

            // 导出 Excel 文件

            function BtnExcel_onclick() {

                if (viewMode.PageLoaded()) {
                    viewMode.Export(ExportType.Xls, function (uri) {

                        window.location = uri;

                    }, true, {
                            FileName:  "产品产量报表",
                            MultiSheet: false,
                            Pagination: false
                        });

                }

            }

        </script>
F12的错误提示:



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

最佳答案

查看完整内容

从您截图的代码中,确实也没有定义ExportType 这个对象如果不是咱们自己定义的,那确实应该报错找不到。 不确定咱们以前的实现逻辑和之前的定义逻辑。 不过现在export需要的对象如下: https://developer.mescius.com/activereportsnet/docs/latest/online/api/jsViewer_docs/interfaces/index.JSViewer.html#export

10 个回复

倒序浏览
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2024-10-31 11:38:40
来自 9#
从您截图的代码中,确实也没有定义ExportType

这个对象如果不是咱们自己定义的,那确实应该报错找不到。
不确定咱们以前的实现逻辑和之前的定义逻辑。
不过现在export需要的对象如下:
https://developer.mescius.com/ac ... SViewer.html#export

  1. <span style="background-color: rgb(255, 255, 255);">viewMode</span>.export('Pdf', downloadReport, true, { Title: '1997 Annual Report' })

  2. // function fetches the report from uri(callback function)
  3. var downloadReport = function (uri) {
  4.         var newWin = null;
  5.         // open uri in new window
  6.         try {
  7.             newWin = window.open(uri);
  8.         } catch (e) { }
  9.         // if browser rejects opening new window, open uri in current window
  10.         if (!newWin) {
  11.             window.location = uri;
  12.         }
  13.     };
复制代码


本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-10-31 13:36:36
2#
问题描述:
AR18 自定义导出按钮。


问题解决:
您好,AR 13到18  版本跨度比较大,写法上可能有变化,您参考这个帖子看一下呢:

JSViewer_MVC自定义按钮保存导出文件到服务器固定目录_晋江全顺软件
https://gcdn.grapecity.com.cn/showtopic-57467-1-1.html
(出处: 葡萄城开发者社区)
回复 使用道具 举报
木四
金牌服务用户   /  发表于:2024-11-1 08:20:03
3#
这个也报错,未能找到引用的组件“GrapeCity.ActiveReports.Export.Excel”。       
我手动添加这个引用也不行               
而且我想要个js的代码

本帖子中包含更多资源

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

x
回复 使用道具 举报
木四
金牌服务用户   /  发表于:2024-11-1 08:25:12
4#
我的程序不是MVC的框架,就普通 的ASP.net项目,这样的

本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-11-1 10:56:55
5#
木四 发表于 2024-11-1 08:25
我的程序不是MVC的框架,就普通 的ASP.net项目,这样的

https://github.com/activereports/WebSamples18/tree/main

您在这个地址上下载demo看看

本帖子中包含更多资源

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

x
回复 使用道具 举报
木四
金牌服务用户   /  发表于:2024-11-5 09:40:34
6#
Eden.Sun 发表于 2024-11-1 10:56
https://github.com/activereports/WebSamples18/tree/main

您在这个地址上下载demo看看

demo里也没有呀,目前可以用界面自带的导出
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2024-11-5 11:12:36
7#
从代码中看起来是您的viewModel 没有获取到值,有可能页面元素的控件获取失败,您可以用如下方法获取试一下:
  1. function viewer_loaded() {
  2.     var viewModel = GetWebViewer($("#WebViewer")[0].childNodes[0].id);
  3.     console.log("viewModel", viewModel);
  4. }

  5. function document_onload() {
  6.     $(document).ready(function () {
  7.         $('.viewer').ready(viewer_loaded);
  8.     });
  9. }

  10. document_onload();
复制代码
下面是一个简单的Demo,您可以参考一下:

本帖子中包含更多资源

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

x
回复 使用道具 举报
木四
金牌服务用户   /  发表于:2024-11-5 15:52:16
8#


本帖子中包含更多资源

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

x
回复 使用道具 举报
木四
金牌服务用户   /  发表于:2024-11-6 09:44:45
10#

可以了,谢谢大神,ExportType.Xls 不能直接用了,viewMode = GetViewModel('WebViewer1'); 这样定义也不行了,
最终代码如下:
           function BtnExcel_onclick() {

               $('.viewer').ready(function () {
                   var viewModel = GetWebViewer($("#WebViewer1")[0].childNodes[0].id);

                   viewModel.export('Xls', function (uri) {
                       var newWin = null;
                       // open uri in new window
                       try {
                           newWin = window.open(uri);
                       } catch (e) { }
                       // if browser rejects opening new window, open uri in current window
                       if (!newWin) {
                           window.location = uri;
                       }
                   }, true, {
                       FileName: "产品产量报表",
                       MultiSheet: false,
                       Pagination: false
                   });

               });


           }

评分

参与人数 1金币 +100 收起 理由
Bella.Yuan + 100 赞一个!

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部