wang_maosen 发表于 2018-12-7 18:00:27

报表导出Word和Excel 失败!--ERR_INVALID_RESPONSE

导出以后报这个错误,pdf就可以;word和Excel 不行;不知道什么原因!
无法访问此网站网址为 http://localhost:51971/ActiveReports.ar11?Token=a193afbe-6804-4b22-9f77-0a96b52f6b84&Command=Export&ExportType=Xls&FileName=生日报表&Generation=1&Attachment=1 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。ERR_INVALID_RESPONSE

KearneyKang 发表于 2018-12-10 11:48:14

能提供下可以反馈该问题的demo嘛,我这边先重现你的问题,然后再看具体导致该问题的原因。

wang_maosen 发表于 2018-12-10 12:58:04

/*通用表报对象*/


function Reporter(url, queryButton, container, companyid, hotelname) {
    this.elements.btnQuery = queryButton;
    this.elements.Container = container;
    this.url = url;
    //this.systemParameter.CompanyID = CompanyID;
    //this.systemParameter.HotelName = hotelName;

}

Reporter.prototype = {
    viewer: null,
    systemParameter: {
      //CompanyID: null,
      //   HotelName: null
    },
    url: null,
    elements: {
      Container: null,
      btnQuery: null,
    },
    options: {},
    //需要实现   初始化请求参数
    onBeforQuery: null,
    //需要实现   查询验证
    validate: null,
    //需要实现查询完成后事件
    onAfterQuery: null,
    //需要实现   页面事件绑定
    bindPageEvent: null,
    init: function () {          //初始化加载
      if (this.bindPageEvent) this.bindPageEvent();
      // this.bindQuery();

      this.query();
      this.ReplaceExportLink();       //重新替换下载按钮名称,解决条件查询后下载文件名字未变
      this.RemoveSidebar(true);      //移除手动输入参数框
    },
    bindQuery: function () {         //查询按钮
      /*var context = this;
          $(this.elements.btnQuery).click(function () {
             // var isRun = true;
             // if (context.validate) isRun = context.validate();
             // if (!isRun) return;    //验证查询参数
            context.query();
            context.ReplaceExportLink();       //重新替换下载按钮名称,解决条件查询后下载文件名字未变
            context.RemoveSidebar(true);      //移除手动输入参数框
          });*/
    },
    query: function () {
      var context = this;
      if (context.onBeforQuery) context.onBeforQuery();
      context.createViewer();
      if (context.onAfterQuery) context.onAfterQuery();

    },
    createViewer: function (callback) {
      var context = this;
      context.viewer = GrapeCity.ActiveReports.Viewer({
            element: context.elements.Container,
            reportService: {
                url: "/ActiveReports.ReportService.asmx"
            },
            uiType: "desktop",
            report: {
                id: context.url,                           //报表文件路径
                parameters: context.getParameters()       //查询参数
            },
            availableExports: ['Xls', 'Pdf', 'Word'],    //导出显示按钮
            // availableExports: ['Xls', 'Pdf', 'Word', 'Image', 'Mht'],
            //localeUri: '../../Scripts/Report/i18n/zh.txt',
            documentLoaded: function (rrr, rer) {
                if (callback) callback();
            },
            reportLoaded: function (info) {

            }
      });

      //reportviewer = context.viewer;


    },
    getParameters: function () {
      var context = this;
      var params = context.options;

      // var sysParams = [
      //{ 'name': 'CompanyID', 'value': context.systemParameter.CompanyID },
      //{ 'name': 'HotelName', 'value': context.systemParameter.HotelName },
      //{'name': 'Lang', 'value': _language}
      // ];

      //合并系统参数和业务参数
      var result = params;   // .concat(sysParams);
      return result;
    },
    print: function () {
      var context = this;
      if (context.onBeforQuery) context.onBeforQuery();
      if (context.viewer) {
            context.viewer.print();
      } else {
            context.createViewer(function () { context.viewer.print() });
      }
    },
    //替换下载链接
    ReplaceExportLink: function () {
      var list = ["PDF Document", "Excel Workbook", "Word Document", "Image File"];
      for (var i = 0; i < list.length; i++) {
            var excelLink = $('a:contains("' + list + '")');
            ko.cleanNode(excelLink);
            excelLink.removeAttr('data-bind');
            excelLink.removeAttr('disabled');
            excelLink.attr('target', '_blank');
            excelLink.attr('href', 'javascript: customExport(\"' + list + '\")');
      }
    },
    //替换下载文件名字
    ReplaceExportFileName: function (extype) {
      var context = this;
      switch (extype) {
            case 'PDF Document':
                context.viewer.export("Pdf", function (uri) { window.open(uri); }, true, { FileName: vm.FileName });
                break
            case 'Excel Workbook':
                context.viewer.export("Xls", function (uri) { window.open(uri); }, true, { FileName: vm.FileName });
                break;
            case 'Word Document':
                context.viewer.export("Word", function (uri) { window.open(uri); }, true, { FileName: vm.FileName });
                break;
            case 'Image File':
                context.viewer.export("Image", function (uri) { window.open(uri); }, true, { FileName: vm.FileName });
                break;
      }
    },

    //删除手动输入参数框,连续加载
    RemoveSidebar: function (ishide) {
      if (ishide) {
            // $(".btn-toolbar.toolbar.toolbar-top div:first").hide();
            //$(".btn-toolbar.toolbar.toolbar-top div:first").remove();

            $(".btn-toolbar.toolbar.toolbar-top div").eq(0).remove();
            $(".btn-toolbar.toolbar.toolbar-top div").eq(2).remove();
            $(".btn-toolbar.toolbar.toolbar-top div").eq(3).remove();
            $(".btn-toolbar.toolbar.toolbar-top div").eq(3).remove();

      }

    }


}



function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return decodeURI(r); return null;
}

KearneyKang 发表于 2018-12-10 15:39:26

能提供一个可以直接运行的demo吗?便于我进行问题的重现和问题的解决

wang_maosen 发表于 2018-12-10 17:01:09

大哥 我们提供不了的,集成在一块的;如果我单独写一个Demo有可能就是OK的;

KearneyKang 发表于 2018-12-10 17:38:11

本帖最后由 KearneyKang 于 2018-12-21 14:17 编辑

你单独运行H5的项目试试,因为我这边没办法进行重现问题,就不知道该如何解决。

wang_maosen 发表于 2018-12-12 10:07:31

方便加微信18221091168QQ:9983601 么;感谢感谢!

KearneyKang 发表于 2018-12-13 11:57:17

本帖最后由 KearneyKang 于 2018-12-13 18:08 编辑

您好,经过验证初步判定这是由于你的的AR引用里面没有包含导出Word和Excel的引用导致的,你把该应用添加进去,就能正常导出Word和Excel了。




wang_maosen 发表于 2018-12-13 15:12:50

      function exportImpl(exportType, settings) {
            if (!token || _pageCount() <= 0) throw new Error("document is not ready for export");
            return reportService["export"](token, exportType, settings).fail(failHandler);
      }
现在可以了,原因:版本安装问题;Token问题,您们是否做过这方面验证!

KearneyKang 发表于 2018-12-13 18:17:34

您好,经过验证初步判定这是由于你的的AR引用里面没有包含导出Word和Excel的引用导致的,你把该应用添加进去,就能正常导出Word和Excel了。



页: [1] 2
查看完整版本: 报表导出Word和Excel 失败!--ERR_INVALID_RESPONSE