基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 处理报表

简介: 报表系统介绍          我们都知道,在信息系统开发过程中,报表占据着很重要的位置,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,在如何选择一个合适的报表系统也让很多开发员纠结,AgileEAS.

报表系统介绍

         我们都知道,在信息系统开发过程中,报表占据着很重要的位置,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,在如何选择一个合适的报表系统也让很多开发员纠结,AgileEAS.NET平台采用了基于RDL语言的开源报表系统fyireporting,最早基于其2.X版本进行了中文化并和AgileEAS.NET进行集成,到目前为止AgileEAS.NET平台中集成的是3.96版本,下面展示一下报表在AgileEAS.NET中的一个呈现:

wps_clip_image-26064

         AgileEAS.NET平台对于fyireporting开源项目,只采用了其中的RdlEngine,RdlViewer和ReportDesigner三个项目,对报表设计器和引擎做了如下修改:

         1.修改了Excel导出的问题,因为在应用中有大量的需求需要导出报表并要求和打印样式匹配:

wps_clip_image-6552

         2.修改了PDF文件导出中文的问题。

         3.中文化。

         4.打印的走纸控制,在企业应用中,特别是窗口服务应用的同一打印机打多咱票据的打印走纸控制。

         同时,我对fyireporting报表与AgileEAS.NET进行了集成,增加了报表设计器可以根据ORM实体对象创建报表的设计极报表呈现与ORM实体的数据绑定。

制作报表

         AgileEAS.NET平台设计器提供一个非常方便的可以化报表设计器,fyireporting原版本的报表设计器只提供了基于数据库连接的报表设计器,我增加了一个方法,基于AgileEAS.NET平台的ORM数据对象进行报表设计,整合了ORM与报表,下面看看新建一个与数据库相关的报表:

         首先设置连接:

wps_clip_image-12339

         选择数据库表或者编写报表的查询语句:

wps_clip_image-1147

         确定之后使用报表设计器设计报表:

wps_clip_image-30092

         预览报表:

wps_clip_image-30222

         AgileEAS.NET平台同时提供了一个不需要数据库连接而是基于AgileEAS.NET平台中的ORM对象设计报表的方法,我们来看一下设计过程:

         首先选择ORM对象的组件及ORM表对象:

wps_clip_image-24853

         确定之后使用报表设计器设计报表:

wps_clip_image-25418

报表集成

         AgileEAS.NET平台在报表的部署上采用了集成部署的思路,即设计好的报表定义存储在数据库中,客户端在使用中读报表定义并缓存在客户端,平台中增加了一个报表管理的应用插件报表管理:用于管理系统中的所有报表。

wps_clip_image-14340

         开发人员可以使用独立的报表设计器设计好报表,然后在报表管理中新建一个报表并且导入报表定义。

         新建报表:

wps_clip_image-30776

         导入报表定义,可以根据设计好的报表定义文件导入,也可以直接从报表设计器Copy报表定义源码:

wps_clip_image-19232

         开发员人也可以直接使用集成的报表设计器进行报表设计:

wps_clip_image-27597

         报表管理模块集成的报表设计器是一个相独立的报表设计器相比更加简洁,这个报表设计器不像独立的报表设计,最后把结果保存到报表定义文件,而是直接保存到AgileEAS.NET的报表定义数据库中。

程序中使用报表

         AgileEAS.NET平台提供了一个报表打印/预览控件与报表打印/预览窗口,开发人员可以根据需要情况弹出的打印窗体还是使用可以嵌入在应用界面中的打印控件。

         因为报表定义是在数据库中,所以在报表打印前需要赋予报表打印控件报表定义和报表的数据源,我们在平台的报表管理中定义了一个IRportEx接口,用于存储报表定义,下面演示一个使用弹出窗体的报表打印例子:

             //报表对象

             IReportEx report = DALHelper.DALManager.CreateReportEx();

             report.Session = ContextHelper.Session;

             report.Name = "诊疗项目列表";

             report.Refresh();

             //绑定到报表的数据对象(ORM表对象)

             IItemInfoPrintList pl = this.itemList.GetPrintList();

             //打印对话框

             RDLViewDialog printForm = new RDLViewDialog();

             //绑定报表定义

                 printForm.Report = this.Report; 

             //绑定打印数据

             printForm.DataObject = pl;

             //预览打印

             printForm.PrintPreview();

以上代码效果如下图:

wps_clip_image-461

             使用AgileEAS.NET平台提供的报表打印控件的使用方法同弹出式打印窗口,代码如下:

             //报表对象

             IReportEx report = DALHelper.DALManager.CreateReportEx();

             report.Session = ContextHelper.Session;

              report.Name = "演示报表";

             report.Refresh();

             //绑定到报表的数据对象(ORM表对象)

             IIteminfoList dataList =

             EAS.Exam.DAL.Interface.DALHelper.DALManager.CreateIteminfoList();

             dataList.Session = ContextHelper.Session;

             dataList.GetIteminfoList(string.Empty, this.tbName.Text);

             //绑定报表定义

             this.reportViewer.Report = this.Report; 

             //绑定打印数据

             this.reportViewer.DataObject = pl;

             以上代码执行效果如下图:

wps_clip_image-19242

             在AgileEAS.NET平台的应用项目开发中,我们建设使用这种模式的报表开发,简单、直观,在我们的开发实践中,我们也可以使用这种方式代替数据查询模块。

 

 

链接

     AgileEAS.NET平台开发指南-系列目录

     AgileEAS.NET应用开发平台介绍-文章索引

     AgileEAS.NET官方网站

     敏捷软件工程实验室

 

QQ群:116773358,15118502(已满员)

目录
相关文章
|
14天前
|
人工智能 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
|
14天前
|
人工智能 开发框架 Cloud Native
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
|
14天前
|
数据可视化 NoSQL C#
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
|
14天前
|
设计模式 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
|
2月前
|
人工智能 前端开发 开发工具
解读.NET 技术的开发潜力
本文全面介绍了.NET技术在软件开发领域的核心优势、创新应用及面临的挑战。.NET以其统一的开发平台、强大的工具和跨平台能力,成为企业级应用、Web应用乃至游戏开发的理想选择。然而,在性能优化、容器化及AI集成等方面仍需不断突破。通过积极拥抱开源和社区驱动模式,.NET将持续推动软件开发的进步。
50 1
|
2月前
|
Ubuntu 持续交付 API
如何使用 dotnet pack 打包 .NET 跨平台程序集?
`dotnet pack` 是 .NET Core 的 NuGet 包打包工具,用于将代码打包成 NuGet 包。通过命令 `dotnet pack` 可生成 `.nupkg` 文件。使用 `--include-symbols` 和 `--include-source` 选项可分别创建包含调试符号和源文件的包。默认情况下,`dotnet pack` 会先构建项目,可通过 `--no-build` 跳过构建。此外,还可以使用 `--output` 指定输出目录、`-c` 设置配置等。示例展示了创建类库项目并打包的过程。更多详情及命令选项,请参考官方文档。
143 11
|
2月前
|
人工智能 前端开发 Devops
.NET技术自发布以来,在软件开发领域发挥了重要作用
【9月更文挑战第12天】.NET技术自发布以来,在软件开发领域发挥了重要作用。本文分为三部分探讨其在现代开发中的应用:首先介绍.NET的核心价值,包括语言多样性、强大的开发工具支持、丰富的类库、跨平台能力和活跃的社区;接着分析其在企业级应用、Web开发、移动应用、云服务及游戏开发中的实际应用;最后讨论.NET面临的挑战与未来趋势,如性能优化、容器化、AI集成及跨平台框架竞争等。通过不断的技术创新和社区驱动,.NET将持续推动软件开发的进步。
36 4
|
2月前
|
人工智能 开发框架 算法
C#/.NET/.NET Core技术前沿周刊 | 第 2 期(2024年8.19-8.25)
C#/.NET/.NET Core技术前沿周刊 | 第 2 期(2024年8.19-8.25)
|
2月前
|
传感器 应用服务中间件 Linux
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
|
2月前
|
人工智能 算法 C#
C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)
C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)