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

简介:

报表系统介绍

         我们都知道,在信息系统开发过程中,报表占据着很重要的位置,业务运营数据最后给领导的反应就是那么几张综合的业务数据报表,在如何选择一个合适的报表系统也让很多开发员纠结,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(已满员)


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。



    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/09/14/1825973.html,如需转载请自行联系原作者

相关文章
|
7月前
|
关系型数据库 MySQL Linux
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
102 0
|
28天前
|
数据采集 存储 监控
.NET智慧手术室管理平台源码
术前访视记录单、手术风险评估表、手术安全核查表、自费药品或耗材、麻醉知情同意书、麻醉记录单、分娩镇痛记录单、麻醉复苏单、术后镇痛记录单、术后访视记录单、压伤风险评估量表、手术清点记录单、护理记录单、输血护理记录单。
28 0
|
1月前
深入.net平台的分层开发
深入.net平台的分层开发
53 0
|
4月前
|
Web App开发 开发框架 .NET
asp.net基于WEB层面的云LIS系统平台源码
结合当今各检验科管理及实验室规模的不同状况,充分吸收当今IT科技的最新成就,开发出以高度产品化、功能强大、极易实施操作、并不断升级换代为主要特点的LIS系统。彻底解决检验科的信息孤岛,全面实现全院信息互通互联、高度共享,并为检验科的规范化管理提供了有力工具。
41 0
|
4月前
|
Web App开发 开发框架 .NET
asp.net基于WEB层面的区域云LIS系统平台源码
asp.net基于WEB层面的区域云LIS系统平台源码
49 1
|
4月前
|
开发框架 小程序 数据可视化
基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop
基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop
|
5月前
|
存储 前端开发 程序员
一款基于.Net开发、开源、支持多平台云存储文件管理器
一款基于.Net开发、开源、支持多平台云存储文件管理器
42 0
|
5月前
|
数据采集 自然语言处理 监控
基于.Net开发的、支持多平台、多语言餐厅点餐系统
基于.Net开发的、支持多平台、多语言餐厅点餐系统
76 0
|
10月前
|
SQL 数据库连接 数据库
在VS2013平台下,用VB.net 连接Access数据库
从开始学习计算机,我们使用的一直是SQL数据库。这次接触了Access数据库,我将从Access创建到连接向大家分享一下我在Access数据库中的收获。
205 0
|
11月前
|
分布式计算 NoSQL Java
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
1..Net平台历程介绍和.net framework和netcore的架构体系对比,以及框架的选择介绍
174 0