找回密码
 立即注册

QQ登录

只需一步,快速开始

张亮xta

注册会员

1

主题

4

帖子

9

积分

注册会员

积分
9
  • 860

    金币

  • 1

    主题

  • 4

    帖子

最新发帖
张亮xta
注册会员   /  发表于:2021-12-24 17:48  /   查看:2004  /  回复:6
1金币
ActiveReports9,使用GetViewModel获得了viewModel,因为外网映射端口和内网端口不一致,导致调取报表的接口因端口号错误而失败。方法如下:

var viewModel = GetViewModel('WebViewer1');
if (viewModel.PageLoaded()) {
    viewModel.Print();
}



导出通过修改url,可以成功调用,方法如下:
var viewModel = GetViewModel('WebViewer1');
if (viewModel.PageLoaded()) {
  viewModel.Export(ExportType.Xls, function (uri) {
     var url = window.location.origin;
     if (uri.indexOf(url) == -1) {
        uri = url + "/ActiveReports.ar9?" + uri.split('/ActiveReports.ar9?')[1];
     }
    window.location = uri;
  }, true, { FileName: "报表.xls" });
}


求教各位大神,打印有相似的办法处理url吗?或者可以通过其他方式调用打印成功。

最佳答案

查看完整内容

内网端口是IIS配置的端口,外网端口是映射的,在外网打开报表系统的时候,内网地址是被外网替换掉的,但是端口未替换,我一直没找到是哪里替换掉地址的。 不过现在问题暂时已经解决了,打印方法实际调用的是一个exportImpl 方法,这个方法可以替换uri; 用这个方法替换掉Print方法就可以了。 viewModel.exportImpl(ExportType.Pdf, { PrintOnOpen: true }, function (uri) { var url = window.location.ori ...

6 个回复

倒序浏览
最佳答案
最佳答案
张亮xta
注册会员   /  发表于:2021-12-24 17:48:04
来自 5#
James.Lv 发表于 2021-12-29 10:19
您好,您这边F12 控制台输出请求的错误是什么,端口映射建议在 Web Config文件做好端口号配置

内网端口是IIS配置的端口,外网端口是映射的,在外网打开报表系统的时候,内网地址是被外网替换掉的,但是端口未替换,我一直没找到是哪里替换掉地址的。
不过现在问题暂时已经解决了,打印方法实际调用的是一个exportImpl 方法,这个方法可以替换uri;
用这个方法替换掉Print方法就可以了。
viewModel.exportImpl(ExportType.Pdf, { PrintOnOpen: true }, function (uri) {
                  var url = window.location.origin;
                  if (uri.indexOf(url) == -1) {
                      uri = url + "/ActiveReports.ar9?" + uri.split('/ActiveReports.ar9?')[1];
                  }
                  var printFrameId = 'WebViewer1_printFrame';
                  var iframe = document.getElementById(printFrameId);
                  if (!iframe) {
                      iframe = document.createElement('iframe');
                      iframe.style['width'] = '1px';
                      iframe.style['height'] = '1px';
                      iframe.style['visibility'] = 'hidden';
                      iframe.style['position'] = 'fixed';
                      iframe.style['left'] = '0';
                      iframe.style['top'] = '0';
                      document.body.appendChild(iframe);
                  }
                  iframe.src = uri;
              });

评分

参与人数 1金币 +666 收起 理由
James.Lv + 666

查看全部评分

回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-12-24 19:32:10
2#
您好,这个我们研究一下
回复 使用道具 举报
张亮xta
注册会员   /  发表于:2021-12-29 09:14:09
3#
James.Lv 发表于 2021-12-24 19:32
您好,这个我们研究一下

没结果吗?
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-12-29 10:19:06
4#
您好,您这边F12 控制台输出请求的错误是什么,端口映射建议在 Web Config文件做好端口号配置
回复 使用道具 举报
张亮xta
注册会员   /  发表于:2021-12-29 17:20:08
6#
张亮xta 发表于 2021-12-29 17:18
内网端口是IIS配置的端口,外网端口是映射的,在外网打开报表系统的时候,内网地址是被外网替换掉的,但 ...

内外网端口号是不一样的,导致实际访问地址是错误
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-12-29 18:09:05
7#
赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部