ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

ActiveReports 是一款专注于 .NET 平台的 表控件,全面满足 HTML5、WinForm、ASP.NET、.NET Core、WPF 等平台下的中国式复杂 表设计和跨平台 表开发需求,作为专业的 表工具为全球超过 300,000 名开发者提供全面的 表解决方案。

ActiveReports正式版

用户使用 ActiveReports 想实现 .Net Core Web 页中直接打开 表导出的PDF ,Excel或其他导出文件。

以下是示例图片:展示了各车型2019的型 列表。那标题中的 Tesla 品牌和 2019 就是 表的参数,当我们直接输入 在浏览器中输入带年份和品牌名的参数值就可以直接打开该 表生成的PDF。如 https:///cars/tesla/2019;https:///cars/honda/2014

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

操作步骤:

1、在VS2019 新建空的 ASP.Net Core Web应用

且注意取消选中为HTTP配置 选项

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能 ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

2、添加 GrapeCity.ActiveReports.Export.Pdf Nuget 包

在浏览输入:grapecity.activereports.export.pdf

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

3、设置 表

(1)并设置 表生成操作为内嵌资源。

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

(2)为 表添加 表参数mark,year用于接收URL 传递的参数值

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

(3)为 表添加数据源,后添加数据集,当字段生成成功后,修改数据源连接字符串如下:

注意在数据源链接字串中拼接了 表参数,用于动态获取数据。

=”xmldoc=https://vpic.nhtsa.dot.gov/api/vehicles/getmodelsformakeyear/make/”& [@make] & “/modelyear/” & [@year] &”ormat=xml”

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

4、在Starup.cs 中添加以下方法:

   internalSystem.IO.Stream GeneratePDF(string make,int year)       {            using (var reportStream = typeof(Startup).Assembly.GetManifestResourceStream("WebApplication22.RdlReport.rdlx"))            using (var reader = new System.IO.StreamReader(reportStream))            {                var rpt = new GrapeCity.ActiveReports.PageReport(reader);                rpt.Document.Parameters["make"].CurrentValue =make;                rpt.Document.Parameters["year"].CurrentValue =year;                var pdfRe = newGrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();                var output = newGrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();               rpt.Document.Render(pdfRe,output);                return output.GetPrimaryStream().OpenStream();                    }        }

5、配置 URL 映射

因为ASP.NET Core 路由的配置是非常灵活的。因为我们给的数据基本就在可选范围内,如车辆品牌就是:Honda, Tesla 及Mercedes; 年份也是2000-2020年,所以配置路由要用正则来做判断后限制:

/cars/{make:regex(^(honda|mecedes|tesla)$)}/{year:range(2000,2020)}

路由映射配置完成后就可以调用GeneratePDF方法:

app.UseEndpoints(endpoints =>           {               endpoints.MapGet("/cars/{make:regex(^(honda|mercedes|tesla)$)}/{year:range(2000,2020)}",async context =>                {                    try                    {                        var year =int.Parse(context.Request.RouteValues["year"].ToString());                        var make =context.Request.RouteValues["make"].ToString();                        var stream =GeneratePDF(make, year);                       context.Response.ContentType = "application/pdf";                       context.Response.Headers.Add("content-disposition",$"inline; filename={make}-{year}.pdf");                        awaitstream.CopyToAsync(context.Response.Body);                    }                    catch(Exception ex)                    {                        awaitcontext.Response.WriteAsync(ex.ToString());                    }                });

6、运行

运行就可以看到结果,注意如果URL 里面不带汽车品牌和年份,就会 404错误。

在浏览器中输入链接:

https:///cars/Honda/1999

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

本教程内容到这里就结束了,希望对您有所帮助!感兴趣的朋友可以下载ActiveReports试用版免费体验,或者关注 了解更多产品资讯~

相关内容推荐:

ActiveReports使用教程:如何在Winform项目集成ActiveReportsbr>ActiveReports使用教程:如何在MVC中使用ActiveReports
ActiveReports使用教程:如何在Asp.net 中集成 ActiveReports
ActiveReports使用教程:如何借助参数 表设置下拉框和数据过滤


想要购买ActiveReports正版授权,或了解更多产品信息请点击【咨询在线客服】

ActiveReports使用教程:如何在.Net Core 平台中实现 HTTP Handlers 功能

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月12日
下一篇 2020年3月12日

相关推荐

发表回复

登录后才能评论