报表导出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
能提供下可以反馈该问题的demo嘛,我这边先重现你的问题,然后再看具体导致该问题的原因。 /*通用表报对象*/
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;
} 能提供一个可以直接运行的demo吗?便于我进行问题的重现和问题的解决 大哥 我们提供不了的,集成在一块的;如果我单独写一个Demo有可能就是OK的; 本帖最后由 KearneyKang 于 2018-12-21 14:17 编辑
你单独运行H5的项目试试,因为我这边没办法进行重现问题,就不知道该如何解决。 方便加微信18221091168QQ:9983601 么;感谢感谢! 本帖最后由 KearneyKang 于 2018-12-13 18:08 编辑
您好,经过验证初步判定这是由于你的的AR引用里面没有包含导出Word和Excel的引用导致的,你把该应用添加进去,就能正常导出Word和Excel了。
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问题,您们是否做过这方面验证! 您好,经过验证初步判定这是由于你的的AR引用里面没有包含导出Word和Excel的引用导致的,你把该应用添加进去,就能正常导出Word和Excel了。
页:
[1]
2