ghostlyt 发表于 2016-4-13 16:34:34

ActiveX版ARViewer使用的问题

本帖最后由 Lenka.Guo 于 2016-4-14 11:21 编辑

在原来的系统中,使用的是VBScript脚本来操作ARViewer,
通过给DataPath属性指定RDF文件路径,报表能正常加载表示。

由于IE11不再支持VBScript脚本,所以改为javascript脚本。
但是,相同的逻辑,RDF文件不能正常加载。
有没有解决办法?

示例脚本如下:
    <script type="text/javascript" for="window" event="onload">
      
      with (objARViewer) {
            Printer.RenderMode = 1;
            Printer.PaperSize = 9;                //A4
            Printer.Orientation = 2;    //横
DataPath = '\\172.19.59.158\Fileshare\Data.kei\QFurikomiyoshi_11005604130000.rdf';
      }
</script>

Lenka.Guo 发表于 2016-4-13 17:14:02

您好,
因为您使用的ActiveReports 是老版本,能提供的资源非常少,而且您用JavaScript 替换VBScirpt ;两种脚本语言本身就存在差别,而且旧版本的ActiveReports还不支持JavaScript,可能导致错误。

ActiveX 已经在新版的浏览器中支持较少,建议您升级ActiveReports,升级系统到最新的.Net 平台。

ghostlyt 发表于 2016-4-13 17:30:11

跟客户沟通过,大部分的控件都升级为了新的WebViewer控件;
但是有个别业务需要直接印刷的,只能采用旧的ActiveX控件实现。

Lenka.Guo 发表于 2016-4-14 11:05:18

本帖最后由 Lenka.Guo 于 2016-4-14 11:30 编辑

ghostlyt 发表于 2016-4-13 17:30
跟客户沟通过,大部分的控件都升级为了新的WebViewer控件;
但是有个别业务需要直接印刷的,只能采用旧的A ...
相同的逻辑,但是代码写法应该还要注意,使用JavaScript 的语法来访问ARViewer;

具体的ARViewer 可用的事件和属性,您可以在浏览器中调试Web程序时看到。



<script type="text/javascript" for="window" event="onload">
      
      var arvObject = document.getElementById(“arv”);
    arvObject.DataPath =”\\172.19.59.158\Fileshare\Data.kei\QFurikomiyoshi_11005604130000.rdf″;
arvObject.printreport(true);

      }
</script>

ghostlyt 发表于 2016-4-14 20:15:07

本帖最后由 ghostlyt 于 2016-4-14 20:25 编辑

问题搞明白了。
语法上并没有错误,问题在于文件路径中的【\】被解释为了转义字符,导致控件接收到的不是正确的路径。
对路径字符【\】用【\】进行转义就OK了。
还是对javascript不够了解,忘了这一点了。

Lenka.Guo 发表于 2016-4-15 09:26:14

ghostlyt 发表于 2016-4-14 20:15
问题搞明白了。
语法上并没有错误,问题在于文件路径中的【\】被解释为了转义字符,导致控件接收到的不是 ...

棒棒哒!:hjyzw:
页: [1]
查看完整版本: ActiveX版ARViewer使用的问题