前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 处理报表

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

作者头像
魏琼东
发布2018-01-12 12:15:08
1.4K0
发布2018-01-12 12:15:08
举报
文章被收录于专栏:魏琼东魏琼东
报表系统介绍

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

wps_clip_image-26064
wps_clip_image-26064

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

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

wps_clip_image-6552
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-12339

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

wps_clip_image-1147
wps_clip_image-1147

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

wps_clip_image-30092
wps_clip_image-30092

         预览报表:

wps_clip_image-30222
wps_clip_image-30222

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

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

wps_clip_image-24853
wps_clip_image-24853

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

wps_clip_image-25418
wps_clip_image-25418
报表集成

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

wps_clip_image-14340
wps_clip_image-14340

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

         新建报表:

wps_clip_image-30776
wps_clip_image-30776

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

wps_clip_image-19232
wps_clip_image-19232

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

wps_clip_image-27597
wps_clip_image-27597

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

程序中使用报表

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

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

代码语言:js
复制
             //报表对象
             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
wps_clip_image-461

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

代码语言:js
复制
             //报表对象
             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
wps_clip_image-19242

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-09-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 报表系统介绍
  • 制作报表
  • 报表集成
  • 程序中使用报表
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档