MIS系统开发利器,实施、维护人员自定义报表的福音,AgileEAS.NET SOA平台动态报表指南

简介:

一、前言

     AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。

     AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。

     AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界广泛使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并获得更高的回报。

二、关于动态报表系统

     在之前的犀利的报表系统,AgileEAS.NET SOA中间件平台GReport使用指南一文之中我们为大家介绍和实例演示了如何使用AgleEAS.NET SOA中间件平台的GReport报表系统。

     但是,在之前提供的报表系统之中,不管是fyireporting报表系统还是GReport报表系统,都是预定义报表系统,即需要在程序开发过程之中进行预定义,虽然留给项目实施人员和维护人员极大的自定义功能,但是必竟是有所限制的,比如不能修改报表的ReportID,不能变更报表依赖的ORM实体对象。

     而在现实项目之中,特别是偏重于数据查询、统计分析的MIS类系统,项目后期需要大量的统计分析报表,而在项目开发过程之中,毕竟不可能把所有的报表都开发出来,因为其需求并不是在开发阶段所提供的,而是在系统运行过程之中,随着对系统应用的深入会有越来越多的报表需求,那么在这个时间,再由开发人员重新定义报表,显然有些不能接受,一是项目的成果会明细的提高,二是因为开发人员的流动和其他一些因素,比如开发企业的售后服务响应周期较长,不能及时的响应这种需求。

     为解决此问题,AgileEAS.NET SOA中是件平台创新的提出了动态报表的思路,即我们系统的报表进行了大致的划分,开发前提能明确确定的业务票据和业务报表由开发人员在开发过程之中实现,而对于因为不同的企业、用户的不同管理需求而导致变化的那些可变化报表系统,则交由项目实施人员或者系统应用者的维护人员进行实现。

     这样做,可以为开发企业和系统使用者都能提出更大的便利,对于开发企业来讲,把一部分报表后置交由实施人员根据客户的具体情况在项目实施周期之内完成,一是可以节省前提开发成本,减少返工带来的高成本,二是可以把产品做成稳定的基础部分+动态定义的报表系统,便于对软件系统的定型和维护,而对于系统使用者也是也极大的便利,比如一些急需的或者特别的报表系统,则可以直接由自己的实施人员搞定,并且随便可以增加和修改,减少需要的实现周期。

     AgileEAS.NET SOA中间件平台的动态报表系统其本质是定义一个依赖于一个动态SQL查询的数据报表以及对这个报表的模块转换发布两个功能实现

 

     AgileEAS.NET SOA中间件平台没有为“动态报表”提供单独的定义和管理功能,其管理功能集成于“GR报表”和“报表管理”两个模块之中。

     和犀利的报表系统,AgileEAS.NET SOA中间件平台GReport使用指南一文之中定义普通报表不一样的地方是,动态报表在定义过程之中必须要选中“报表模块、把报表做为独立模块发布”复选框,并且必须要填写报表的“查询语句”,如果“查询语句”是一个带参数的动态查询语言,则必须要定义“查询参数”。

0`8STFH@XYWW%$E{~VL(NCX

     以下对几个重要参数做一下说明:

     “报表模块、把报表做为独立模块发布”:动态报表必须要中此项,选中本选项之后,系统会自动把这个报表发布为一个“报表模块”,即让报表充当系统之中的模块插件,一个报表即为一个模块插件,可以对于进行权限和导航部署,系统之中对此报表具体权限的账号登录系统之中就会以普通模块一样的方式打开报表并且使用。

     “查询语句”:动态报表的查询语句是报表工作过程之中抓取报表数据的动态查询语句,报表的绑定数据来自于本查询语句与查询参数动态组合而成的目标查询结果:

5{2_7COWC4NFYK_ZS$9{HZX

 

     查询语句之中以$符号起始的单词即为动态查询参数,此查询条件会根据最终用户的输入进行替换,如果查询语句之中定义了动态查动态查询参数,则必须定义报表的“查询参数”。

     “查询参数”:查询参数用于详细定义解释报表动态查询语句之中的动态参数,比如参数的显示标题、参数数据类型、参数默认值,参数是否与某输入字典相关联等,下图的查询参数与上图你动态查询语句相匹配:

VFBW~QR4V0T[D8~LF]7CBDL

     数据类型,目前支持“字符”、“日期”、“日期时间”、“整数”、“小数”。

     查询参数被用于在打开报表自动生成的查询UI界面上输入预值的参数值,以便于动态生成报表数据。

三、动态报表实践

     开发动态报表不需要进行C#或者VB.NET编程,但是需要掌握系统的数据库结构、会设计、制作报表和熟练的使用AgileEAS.NET SOA中间件平台的系统管理功能,符合这种条件的人员主要是系统实施人员和系统维护人员。

     下面我们就是GReport动态报表一步一步的学习和演示一下处理过程。

     首先,我们需要打开平台的“GR报表”模块,并且增加一个新的报表:

0`8STFH@XYWW%$E{~VL(NCX

 

     必须选中“报表模块、把报表做为独立模块发布”,然后切换到“查询语句”Tab页并且写入如下SQL语句:

5{2_7COWC4NFYK_ZS$9{HZX

     这个SQL语句之中带了两个动态参数:$StartTime和$EndTime两个参数,我们的目标是统计LMTIME在这两个参数区间的模块,并且以程序集为分组汇总条件。

     然后我们切换到“查询语句”Tab页,我们可以看到:

 

2L}JQQYFYBNV~YW[T)4]6UW     系统自动的从“查询语句”之中提取StartTime和EndTime,但是显示标题、数据类型、迷人值还需要我们手动修改和填写,填写完成如下图:

W(633~@$[Q_OCZ2VNZFM){1

     这样就完成了“查询参数”的定义,点“确定”按钮这后保存报表。

     接下来双击刚添加的动态报表,系统会打开设计界面,自动加载初始样式:

9G~F_M5A4E5A6OB)JUQJ7AG

     请根据情况自己修改报表,最后保存,我们修改为以下样式:

QQ图片20131218195113

     这样报表的设计工作就完成了,接下来我们为动态报表进行使用者授权和导航分组部署,首先我们打开“角色管理”并且选中一个角色(我们选择“平台演示”角色),然后双击打开:

ET27SNQ}0}_0%IZ`FFG}]RA

     双击“添加”按钮,打开“模块选择界面”:

6I@V3XFO6]%0_8MF[6]TF9O

     选择“搜索报表”复选框,输入检索条件,点“搜索”按钮之后选中刚才加载的模块,点击确定,返回“角色”属性设定界面。

IOTOL{K0Q82XVR3JRXAOQ%7

     点击“确定”完成对动态报表的访问授权。

 

     接下来我们设置导航分组的部署,打开“导航分组”选择要部署动态报表的分组,如果没有分组请添加一个新的分组,有关于如何添加 一个新的导航分组的使用说明请参考《AgileEAS.NET SOA中间件系统管理使用教程 V5.0》。

5_EVTBZAA~H`G_@H2}V{ZUB

     选中一个分组,然后后右边空白区域右键打开快捷菜单,选择“添加”打开“模块选择窗口”:

YC1W@6VOUJF5UA4_@M(A0L7

     选择动态报表然后单击“确定”按钮,完成对动态报表的导航分组部署。

U]GRP@NOMXG)EGOU8@VL3)C

四、执行验证

     我们编译并且启动DrugShop.Main.exe,使用0001密码sa登录,我们就会在“统计报表”分组之中看到模块“模块程序集统计报表”:

NXM%GVTQ4[W0HAIU7G~TUKK

     打开这个模块:

image

     设置开始时间和结束时间,点击“提取数据”按钮:

image

     OK,动态报表演示完成。

     DrugShop案例之中同步提供了本例子的报表定义和导航、权限配置,请大家通过AgileEAS.NET SOA中间件官方网站最新下载栏目进行下载。

五、联系我们

     为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具有自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。

     AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我个人在推广,2010年因为我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。

     我的技术团队成员都是合作多年的老朋友,因为这个平台是免费的,所以也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一起奋斗的朋友。

团队网站:http://www.agilelab.cn

AgileEAS.NET网站:http://www.smarteas.net

官方博客:http://eastjade.cnblogs.com

QQ:47920381,AgileEAS.NET

QQ群:113723486(AgileEAS SOA 平台)/上限1000人

199463175(AgileEAS SOA 交流)/上限1000人

212867943(AgileEAS.NET研究)/上限500人

147168308(AgileEAS.NET应用)/上限500人

172060626(深度AgileEAS.NET平台)/上限500人

116773358(AgileEAS.NET 平台)/上限500人

125643764(AgileEAS.NET探讨)/上限500人

193486983(AgileEAS.NET 平台)/上限500人

邮件:james@agilelab.cn,mail.james@qq.com,

电话:18629261335。

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


相关文章
|
16天前
|
存储 设计模式 编解码
.NET 8.0 通用管理平台,支持模块化、WinForms 和 WPF
【11月更文挑战第5天】本文分析了.NET 8.0 通用管理平台在模块化、WinForms 和 WPF 方面的优势。模块化设计提升了系统的可维护性和可扩展性,提高了代码复用性;WinForms 提供了丰富的控件库和简单易用的开发模式,技术成熟稳定;WPF 支持强大的数据绑定和 MVVM 模式,具备丰富的图形和动画功能,以及灵活的布局系统。
|
1月前
|
Windows
.NET 隐藏/自定义windows系统光标
【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。
|
3月前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
|
3月前
|
开发者 API Windows
从怀旧到革新:看WinForms如何在保持向后兼容性的前提下,借助.NET新平台的力量实现自我进化与应用现代化,让经典桌面应用焕发第二春——我们的WinForms应用转型之路深度剖析
【8月更文挑战第31天】在Windows桌面应用开发中,Windows Forms(WinForms)依然是许多开发者的首选。尽管.NET Framework已演进至.NET 5 及更高版本,WinForms 仍作为核心组件保留,支持现有代码库的同时引入新特性。开发者可将项目迁移至.NET Core,享受性能提升和跨平台能力。迁移时需注意API变更,确保应用平稳过渡。通过自定义样式或第三方控件库,还可增强视觉效果。结合.NET新功能,WinForms 应用不仅能延续既有投资,还能焕发新生。 示例代码展示了如何在.NET Core中创建包含按钮和标签的基本窗口,实现简单的用户交互。
71 0
|
5月前
|
安全 程序员 Shell
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
老程序员分享:NSIS自定义界面,下载并安装Net.Framework4.8
|
5月前
|
存储 分布式计算 大数据
MaxCompute操作报错合集之自定义udf的函数,引用了import net.sourceforge.pinyin4j.PinyinHelper;但是上传资源后,出现报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
107 0
|
6月前
|
数据采集 存储 监控
.NET智慧手术室管理平台源码
术前访视记录单、手术风险评估表、手术安全核查表、自费药品或耗材、麻醉知情同意书、麻醉记录单、分娩镇痛记录单、麻醉复苏单、术后镇痛记录单、术后访视记录单、压伤风险评估量表、手术清点记录单、护理记录单、输血护理记录单。
121 0
|
6月前
深入.net平台的分层开发
深入.net平台的分层开发
|
6月前
|
前端开发 JavaScript 关系型数据库
.NET开源、强大的Web报表统计系统
.NET开源、强大的Web报表统计系统
159 0
|
6月前
|
Web App开发 开发框架 .NET
asp.net基于WEB层面的云LIS系统平台源码
结合当今各检验科管理及实验室规模的不同状况,充分吸收当今IT科技的最新成就,开发出以高度产品化、功能强大、极易实施操作、并不断升级换代为主要特点的LIS系统。彻底解决检验科的信息孤岛,全面实现全院信息互通互联、高度共享,并为检验科的规范化管理提供了有力工具。
66 0
下一篇
无影云桌面