ActiveReports 报表控件:添加 WebViewer 控件加载进度条

发布时间:2014/11/30 00:11 发布者:iceman

返回博客中心

介绍

论坛中有用户提到如何在 ActiveReports WebViewer 控件中添加加载进度条,来提示用户当前加载进度增强用户体验。

在本篇文章中我们将阐述如何在 WebViewer 的 浏览类型为FlashViewer 时添加进度条, 选择这个浏览方式的原因是我们需要使用 client side API 来跟踪前端的加载进度。

在本篇博客中,我们使用 C1ProgressBar 控件来展示加载进度,

最终效果图如下:

ReportProgress

实现方法:

设置 C1ProgressBar 控件的范围为 0 到 100。主要实现方法为捕获“OnLoadProgress” 事件,获取当前渲染进而获取当前加载进度,代码如下:

var viewer;
function init() {
   GrapeCity.ActiveReports.Viewer.OnLoad("WebViewer1", function () {
      viewer = GrapeCity.ActiveReports.Viewer.Attach("WebViewer1");
      viewer.setEventsHandler({
         OnLoadProgress: function (e) {
            var pageCount = e.PageCount;
            var valToIncrease = 100 / pageCount;
            var oldVal = $("#C1ProgressBar1").c1progressbar("option", "value");
            var newVal = oldVal + valToIncrease;
            $("#C1ProgressBar1").c1progressbar("option", "value", newVal);
         }
      });
   });
}

 

HTML标记代码下:

<body onload="return init()">
   <form id="form1" runat="server">
   <asp:Label ID="Label1" runat="server" Text="Report Generation Progress:-"></asp:Label>
   <wijmo:C1ProgressBar ID="C1ProgressBar1" runat="server" FillDirection="East">
   </wijmo:C1ProgressBar>
   <div>
      <ActiveReportsWeb:WebViewer ID="WebViewer1" runat="server" Height="571px" ReportName="file: MovieCatalog.rdlx"
Width="1073px" ViewerType="FlashViewer">
         <FlashViewerOptions MultiPageViewColumns="1" MultiPageViewRows="1" UseClientApi="True">
</FlashViewerOptions>
      </ActiveReportsWeb:WebViewer>
   </div>
   </form>
</body>
That is all we need. To see it in action, you may download the sample application from the download link below.

 

Demo下载:

VS2010 + C# + AR9.0 + .NET4.0

 

更多ActiveReports报表功能请参考:/developer/activereports


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网