如何创建一个简单的 ActiveReports Web端在线报表设计器?

ActiveReports 是一款专注于 .NET 和 .NET Core 平台的报表控件。通过拖拽式报表设计器,可以快速地设计 Excel表格、Word文档、图表、数据过滤、数据钻取、精准套打等类型报表,全面满足 WinForm、ASP.NET、ASP.NET MVC、WPF 平台中各种报表的开发需要。同时,通过丰富的 API 可以灵活的实现报表创建、加载和运行时的个性化自定义需求。

下载ActiveReports最新版本

ActiveReports Web端在线报表设计器已经正式上线!

现在我们就来教您,如何创建一个简单的 ActiveReports Web端在线报表设计器(文末有示例源码,请大家下载体验),如您想体验ActiveReports 在线报表设计器的全部功能,请登陆 ActiveReports 官网,点击在线报表设计器菜单。

创建步骤

  1. 打开VS,然后创建一个 .Net Framework 4.6.2ASP .NET Empty Web Application的空项目

  2. 选中引用,然后右键>> 管理NuGet程序包 >>点击

  3. 选择“浏览”,然后在查询框中输入” Nunit”, 点击安装

  4. 在查询框中输入“Microsoft ASP.NET MVC”,点击安装,然后选择“我接受

  5. 在查询框中输入“OWIN”,点击安装

  6. 在查询框中输入” Microsoft.Owin” ,点击安装,然后选择“我接受

  7. 在查询框中输入“ Microsoft.Owin.Host.SystemWeb”,点击安装,然后选择“我接受

  8. 在查询框中输入“ Microsoft.Owin.StaticFiles”,点击安装,然后选择“我接受

  9. 在查询框中输入“ Microsoft.Owin.FileSystems”,如果显示“已安装”,则跳过此步骤。

  10. 添加引用

  11. 添加如下引用,引用的具体路径:

    C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 13

    添加引用如下:

    • GrapeCity.ActiveReports.Aspnet.Viewer

    • GrapeCity.ActiveReports.Aspnet.Designer

    • GrapeCity.ActiveReports.Core.Diagnostics

    • Grapecity.ActiveReports.Core.Rdl

  12. 在项目中新添加一个新的文件

  13. 在新的 Startup.cs 的代码替换如下代码:

    using System;
    using System.IO;
    using System.Linq;
    using System.Web;
    using GrapeCity.ActiveReports.Aspnet.Designer;
    using Owin;
    using Microsoft.Owin;
    using Microsoft.Owin.StaticFiles;
    using Microsoft.Owin.FileSystems;
    using System.Web.Mvc;
    using System.Web.Routing;
    [assembly: OwinStartup(typeof(AspNetDesignerSample.Startup))]
    namespace AspNetDesignerSample
    {
       public class Startup
       {
           // resources (reports, themes, images) location
           private static readonly DirectoryInfo ResourcesRootDirectory =
               new DirectoryInfo(String.Format("{0}.\\resources\\", HttpRuntime.AppDomainAppPath));
           public void Configuration(IAppBuilder app)
           {
               // web designer middleware
               app.UseDesigner(config => config.UseFileStore(ResourcesRootDirectory));
               // static files middlewares
               var fileSystem = new PhysicalFileSystem(String.Format("{0}.\\wwwroot\\", HttpRuntime.AppDomainAppPath));
               app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new[] { "index.html" }, FileSystem = fileSystem });
               app.UseStaticFiles(new StaticFileOptions { FileSystem = fileSystem });
           }
       }
    }
    在项目中创造一个’resourse’ 的文件,然后在可以在这个文件里放报表文件、主题、图片。为了方便你可以直接把web在线报表设计器源码里的 ’resourse’整个文件直接赋值粘贴到你当前的项目中,然后把 ’resourse’ 里的所有文件都是全部选择包含在项目中
  14. 源码路径:

    C:\Users\******\Documents\GrapeCitySamples\ActiveReports 13\Web\WebDesigner_MVC

  15. 在该路径下C:\Program Files (x86)\GrapeCity\ActiveReports 13\Deployment\WebDesigner folder on 64-bit Windows.

    复制 Web.Config 去替换项目中的已存在的 Web.Config 文件,注意需要移除Web.Config 中的如下配置。

    <handlers>   <add name="AllUris" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode" />  </handlers>  
  16. 在项目中新建一个 ’ wwwroot’ 文件,然后再在里面添加如下文件

    • baseServerApi.js
    • web-designer.css
    • web-designer.js
    • vendor

  17. 在项目中新添加一个新的 HTMLpage

  18. 在项目中打开 index页面,然后修改其内容,如下所示

    <!DOCTYPE html>
    <html>
    <head>
       <title>Web Designer Sample</title>
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width, initial-scale=1">
       <meta http-equiv="x-ua-compatible" content="ie=edge">
       <!-- designer-related css -->
       <link rel="stylesheet" href="vendor/css/materialdesignicons.min.css" media="all" type="text/css" />
       <link rel="stylesheet" href="vendor/css/bootstrap.min.css" />
       <link rel="stylesheet" href="vendor/css/font-awesome.min.css">
       <link rel="stylesheet" href="vendor/css/ionicons.min.css">
       <link rel="stylesheet" href="vendor/css/fonts-googleapis.css" type="text/css">
       <link rel="stylesheet" href="web-designer.css" />
    </head>
    <body class="theme-blue">
       <!-- designer-related js -->
       <script src="vendor/js/jquery.min.js"></script>
       <script src="vendor/js/bootstrap.min.js"></script>
       <script src="baseServerApi.js"></script>
       <script src="web-designer.js"></script>
       <!-- designer root div -->
       <div id="designer-id" style="width: 100%; height: 100%;"></div>
       <script>
           // create designer options
           var designerOptions = GrapeCity.ActiveReports.WebDesigner.createDesignerOptions(baseServerApi);
           // render designer application
           GrapeCity.ActiveReports.WebDesigner.renderApplication('designer-id', designerOptions);
       </script>
    </body>
    </html>
    最后运行结果:

  19. 如果你想打开的编辑界面,不是一个空白的页面,而是一个已经存在的报表。

    首先你需要在index.html的 createDesignerOptions() 的函数后面添加

    designerOptions.reportInfo.id = "MyReport.rdlx";  

    "MyReport.rdlx"报表是在项目’resources’中存在的报表文件,不然就会找不到报表路径,显示不出来。

  20. 添加 css 文件

    <link rel="stylesheet" href="file-dialog.css" /> <link rel="stylesheet" href="web-designer.css" />  
  21. 添加 JS 文件

    <link rel="stylesheet" href="file-dialog.css" /> <link rel="stylesheet" href="web-designer.css" />  
  22. 复制下面的<div>替换 index.html 中原来的<div>
    <!-- designer root div -->  < div id="designer-id" style="width: 100%; height: 100%;"></div>  <!-- save as dialog root div -->  < div id="save-as-dialog-id" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: none; z-index: 9999;"></div>  
  23. 替换 index.html中的<Script> 中的内容:
    <script>
       var showElement = function (id) {
           if (!id) return;
           ($('#' + id)).css('display', 'block');
       };
       var hideElement = function (id) {
           if (!id) return;
           ($('#' + id)).css('display', 'none');
       };
       var designerId = 'designer-id';
       var saveAsDialogId = 'save-as-dialog-id';
       function onSaveAs(options) {
           showElement(saveAsDialogId);
           // render save-as dialog
           fileDialog.createSaveReportAsDialog(saveAsDialogId, {
               locale: options.locale,
               api: {
                   getReportsList: function () {
                       return baseServerApi.getReportsList()
                           .then(function (reportsList) {
                               return reportsList.map(function (reportInfo) {
                                   return { path: reportInfo.Name };
                               });
                           });
                   },
                   saveReport: function (saveOptions) {
                       return baseServerApi.saveNewReport({
                           name: saveOptions.path,
                           content: options.reportInfo.content,
                       }).then(function (saveResult) {
                           return { id: saveResult.Id };
                       });
                   },
               },
               reportInfo: {
                   path: options.reportInfo.name,
               },
               onSuccess: function (saveResult) {
                   hideElement(saveAsDialogId);
                   options.onSuccess({ id: saveResult.id, name: saveResult.path });
               },
               onClose: function () {
                   hideElement(saveAsDialogId);
               },
           });
       };
       // create designer options
       var designerOptions = GrapeCity.ActiveReports.WebDesigner.createDesignerOptions(baseServerApi);
    
       designerOptions.reportInfo.id = " MyReport.rdlx";
       // enable showing save-as button
       designerOptions.saveAsButton.visible = true;
       // specify behavior on save-as
       designerOptions.onSaveAs = onSaveAs;
       // render designer application
       GrapeCity.ActiveReports.WebDesigner.renderApplication(designerId, designerOptions);
    </script>
    至此,一个简单的 ActiveReport 在线报表设计器已经创建成功,最终运行结果如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ReYoPrint (锐洋WEB打印控件)是一款实现网页套打的专用工具。作为web应用开发者,我们经常会遇到在浏览中打印报表、票据的需求,这些需求浏览本身的打印功能一般不能满足, 如精确打印,分页,套打等。这就需要有一种能解决常见的浏览打印问题的软件工具,这也是 ReYoPrint 的研发背景。ReYoPrint是一个ActiveX WEB打印控件(96k,支持windows7及IE8,带数字签名), 这个控件主要实现对打印参数的控制,ReYoPrint使用户通过JavaScript脚本可以控制分页,页眉页脚,页边距,打印方向,自定义纸张,直接打印,弹出打印对话框再打印,预览,放缩打印,成批打印,套打等功能 ReYoPrint 的主要功能有: 支持取得本机中的可用打印机,可用纸张类型列表,帮您设计出更友好的参数设置界面。 支持设置打印参数,纸张类型,打印方向(横、竖)等 。 支持自定义的页脚、页眉设置(支持html样式)。 支持打印区域拖拽及鼠标滚轮放大缩小功能(缩小(↓),放大(↑))。 支持程序分页与自动分页(支持ESC关闭预览窗口)。 支持打印预览,支持预览时指定页、指定份数打印。 支持直接打印指定票据的URL。 支持回调,可以帮助您在打印后自动处理有关事务,比如打印后自动关闭窗口、自动递交表单数据等。 支持票据套打时,底图仅在打印预览时显示,不输出到打印机。 小巧,整个控件只有100K,不需要额外的软件包支持。 与您项目采用的技术标准无关,J2EE、.NET 项目均可。 IE 5.5+ 以上适用。 ReYoPrint与其它WEB打印控件相比具有以下的优点: 支持WEB环境下取消当前打印任务。 支持打印数据加裁状态显示。 支持网页背景色与背景图片打印开关。 支持是否允许调整边距及显示边距 支持回调,可以帮助您在打印后自动处理有关事务,比如打印后自动关闭窗口、自动递交表单数据等。 支持取得本机中的可用打印机,可用纸张类型列表,帮您设计出更友好的参数设置界面。 支持自定义的页脚、页眉设置(支持html样式)及页眉页脚开关功能。 支持打印区域拖拽及鼠标滚轮放大缩小功能(缩小(↓),放大(↑))。 支持程序分页与自动分页(支持ESC关闭预览窗口)。 ReYoPrint插件的对象、属性和方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值