找回密码
 立即注册

QQ登录

只需一步,快速开始

sjsm
中级会员   /  发表于:2013-12-20 14:26:00
11#
这个问题已经解决,因为我们页面嵌套了很多框架,不好找到父页面。
回复 使用道具 举报
sjsm
中级会员   /  发表于:2013-12-20 14:30:00
12#
dof你好,我们在打开报表时,画面出来就进行打印,但是第一次点击打印按钮,打印机无反应,没有执行打印,在等待一段时间,进行第二次打印时,就可以正常打印。我们认为这时有些控件还没有加载完成,这种情况如何处理。
  1. var   viewer ,viewerforprint;
  2.         var pages;

  3.         window.onload = function () {
  4.             GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer2", function () {
  5.                 viewerforprint = GrapeCity.ActiveReports.Viewer.Attach("WebViewer2");

  6.                 GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer1", function () {
  7.                     viewer = GrapeCity.ActiveReports.Viewer.Attach("WebViewer1");
  8.                     viewer.setEventsHandler({
  9.                         OnToolClick: function (e) {
  10.                             // 用户点击【套打】按钮时触发
  11.                             if (e.Tool == "套打") {
  12.                                 printreport();
  13.                                 return false;
  14.                             }
  15.                         },
  16.                         OnLoadProgress: function (e) {
  17.                             if (e.State == "Completed") {
  18.                                 pages = e.PageCount;
  19.                             }
  20.                         }
  21.                     });
  22.                 });
  23.             });
  24.         }

  25.         // 调用套打操作
  26.         function printreport() {
  27.             var orient = "None";
  28.             var scale = "None";
  29.             var from = 1;
  30.             var to = pages;
  31.             var ops = viewerforprint.CreatePrintOptions();
  32.             ops.AdjustPaperOrientation = orient;
  33.             ops.ScalePages = scale;
  34.             ops.ClearPageRanges();
  35.             ops.AddPageRange(from, to);
  36.            var State=viewerforprint.Print(ops);
  37.            alert(State);
  38.             var sFunCallBack = $("#funCallBack").val();
  39.             if (sFunCallBack != "") {
  40.                 window.opener[sFunCallBack]($("#CallBackParm").val());
  41.             }
  42.         }
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-12-20 17:12:00
13#
sjsm

AR所有平台的打印操作都需要在报表生成完成之后才能进行,可以加个变量 loaded 判断报表是否加载完毕:
  1.     <script language="javascript" type="text/javascript">
  2.         var pages;
  3.         var loaded = false;
  4.         var viewer, viewerforprint;

  5.         window.onload = function () {
  6.             GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer1", function () {
  7.                 viewer = GrapeCity.ActiveReports.Viewer.Attach("WebViewer1");
  8.                 viewer.setEventsHandler({
  9.                     OnToolClick: function (e) {
  10.                         // 用户点击【套打】按钮时触发
  11.                         if (loaded) {
  12.                             if (e.Tool == "套打") {
  13.                                 printreport();
  14.                                 return false;
  15.                             }
  16.                         } else { alert("报表加载完毕之后才能进行打印!"); }
  17.                     },
  18.                     OnLoadProgress: function (e) {
  19.                         if (e.State == "Completed") {
  20.                             pages = e.PageCount;
  21.                             loaded = true;
  22.                         }
  23.                     }
  24.                 });
  25.             });

  26.             GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer2", function () {
  27.                 viewerforprint = GrapeCity.ActiveReports.Viewer.Attach("WebViewer2");
  28.             });
  29.         }

  30.         // 套打操作
  31.         function printreport() {
  32.             var orient = "None";
  33.             var scale = "None";
  34.             var from = 1;
  35.             var to = pages;
  36.             var ops = viewerforprint.CreatePrintOptions();
  37.             ops.AdjustPaperOrientation = orient;
  38.             ops.ScalePages = scale;
  39.             ops.ClearPageRanges();
  40.             ops.AddPageRange(from, to);

  41.             viewerforprint.Print(ops);

  42.             window.opener.TestM();
  43.         }

  44.     </script>
复制代码
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部