基于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(已满员)

目录
相关文章
|
7月前
|
关系型数据库 MySQL Linux
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
|
12月前
|
缓存 前端开发 JavaScript
采用.Net Core技术框架开发的医院云LIS平台源码,B/S架构
基于B/S架构的医学实验室检验系统源码,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式,部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js封装、分布式文件存储、分布式缓存等,支持LIS独立部署,Docker部署等多种方式。
|
SQL 数据可视化 BI
十三、.net core(.NET 6)搭建ElasticSearch(ES)系列之dotnet操作ElasticSearch进行存取的方法
.net core操作ES进行读写数据操作在Package包项目下,新增NEST包。注意,包版本需要和使用的ES的版本保持一致,可以避免因为不兼容所导致的一些问题。例如我本机使用的ES版本是7.13版本,所以我安装的NEST包也是7.13版本:
621 0
十三、.net core(.NET 6)搭建ElasticSearch(ES)系列之dotnet操作ElasticSearch进行存取的方法
|
缓存 监控 Unix
.NET Core 跨平台资源监控库及dotnet tool小工具
.NET Core 跨平台资源监控库及dotnet tool小工具
424 0
.NET Core 跨平台资源监控库及dotnet tool小工具
|
安全 NoSQL MongoDB
.Net线程同步技术解读
C#开发者(面试者)都会遇到lock(Monitor),Mutex,Semaphore,SemaphoreSlim这四个与锁相关的C#类型,本文期望以最简洁明了的方式阐述四种对象的区别。
.Net线程同步技术解读
|
移动开发 负载均衡 前端开发
2022届软件技术专业毕业生就业岗位分析(.Net方向)(7)
2022届软件技术专业毕业生就业岗位分析(.Net方向)(7)
143 0
2022届软件技术专业毕业生就业岗位分析(.Net方向)(7)
|
网络架构
2022届软件技术专业毕业生就业岗位分析(.Net方向)(6)
2022届软件技术专业毕业生就业岗位分析(.Net方向)(6)
162 0
2022届软件技术专业毕业生就业岗位分析(.Net方向)(6)
|
SQL 运维 监控
2022届软件技术专业毕业生就业岗位分析(.Net方向)(5)
2022届软件技术专业毕业生就业岗位分析(.Net方向)(5)
177 0
2022届软件技术专业毕业生就业岗位分析(.Net方向)(5)
|
SQL 消息中间件 存储
2022届软件技术专业毕业生就业岗位分析(.Net方向)(4)
2022届软件技术专业毕业生就业岗位分析(.Net方向)(4)
152 0
2022届软件技术专业毕业生就业岗位分析(.Net方向)(4)
|
SQL 运维 关系型数据库
2022届软件技术专业毕业生就业岗位分析(.Net方向)(3)
2022届软件技术专业毕业生就业岗位分析(.Net方向)(3)
152 0
2022届软件技术专业毕业生就业岗位分析(.Net方向)(3)