AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业创建一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。git
AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,经过提供大量的基础支撑功能如IOC、ORM、SOA、分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体、数据模型设计生成工具、代码生成工具,用于帮助中小软件开发商快速成长。程序员
AgileEAS.NET平台充分把握目前软件行业快速发展的新趋势,基于敏捷并行开发、快速适应市场这样淳朴的软件工程实践,采用业界普遍使用的Microsoft .Net构件(组件)开发技术实践了这种开发思想,帮助软件企业实现“敏捷变化、快速适合”的目标,从而帮助软件企业在激烈的市场竞争中赢得先机并得到更高的回报。github
AgileEAS.NET SOA中间件平台目前集成两套优秀的报表系统,一套是开源的fyireporting报表系统3.96版本,其始于2007年AgileEAS.NET SOA中间件平台3.0版本之时就集成入平台的一套报表系统,其快速方便的条带式报表很是适合用于MIS系统的报表展现,咱们在fyireporting基础上作了大是的汉化、改动而且与AgileEAS.NET SOA中间件平台进行紧密的集成。数据库
可是对于市场在国内的大多数软件企业都会遇到客户的不少近似于变态的报表需求,fyireporting有也其不足的地方,其在处理中国式的票据、和一个特殊报表时无能无为,以后咱们考虑集成一套更好的中国式报表系统,在和几家行业医疗供应商合做的两个年头之中,咱们集成广州锐浪的Grid++报表系统并与AgileEAS.NET SOA中间件进行融合,称之为GReport。缓存
AgileEAS.NET SOA中间件平台的报表管理体系并设计为集中式的报表管理、设计与报表浏览、打印相协调的可集中管理的报表体系,极大的简化和方便报表的开发、部署和管理。并发
在AgileEAS.NET中间件平台之中提供了一个用于管理、和设计GRport的功能模块“GR报表”:app
系统之中的全部报表都是可管理的,当在系统的任何一个客户端修改了报表定义以后,不须要从新部署程序,便可让报表的修改经过全部的使用者。即时生效。分布式
在GR报表模块之中,直接双击选中的报表便可进行报表设计界面,进行报表的设计:工具
GR报表的设计器界面是基于Grid++报表所提供的设计器控件实现的,其使用方法同Grid++原始的报表设计工做,具体的使用方法请参考Grid++官方帮助。学习
本设计器与官方的原生设计器之间的差异主要是新建报表与原生不一样,原生的报表系统只能基于数据库链接和SQL语句建立报表,而本设计器提供了除经过书写SQL建立报表(不用提供链接信息,以当前链接为准)以外还提供了基于AgileEAS.NET SOA中间件平台的ORM实体建立报表:
数据报表即为基于SQL语句建立报表,对象报表基于ORM实体对象建立报表:
当基于实体建立报表时肯定报表对应的实体对象以后,系统会自动的从ORM定义信息之中读出实体的属性定义信息而且自动的转换为报表的数据列。
AgileEAS.NET SOA中间件平台为开发人员提供了三个有关于GReport报表的控件,包括打印预览对话框、报表数据显示控件、报表打印控件,这三个控件都由EAS.GReport.Controls.dll程序集承载,使用这三个组件以前都须要先引用EAS.GReport.Controls.dll程序集或者把这三个组件加载到Visual Studio的工具箱之中。
打印预览对话框: EAS.GReport.Controls.PrintViewDialog,用于打开一个新的窗口而且预览打印报表。
报表查询显示控件: EAS.GReport.Controls.GDisplayViewer,以查询模式显示报表及报表数据的一个控件。
报表预览显示控件: EAS.GReport.Controls.GPrintViewer,以打印模式显示报表及报表数据的一个控件。
以上三个控件都提供相同的报表API:
1: //
2: // 摘要:
3: // 报表ID。
4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
5: [Browsable(false)]
6: public Guid ReportID { get; set; }
属性ReportID:其意思为报表ID,其取值为GR报表模块之中设计好的报表ID号,用于实现与系统报表管理的绑定。
1: //
2: // 摘要:
3: // 数据源对象。
4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
5: [Browsable(false)]
6: public object DataObject { get; set; }
属性DataObject:其意义为报表的数据对象,即控件要显示或者打印的数据源,DataObject的值必须为DataTable或者为ORM实体的List<T>集合。
程序之中调用报表的流程即为设计这两个属性便可,首先设计ReportID为要显示、打印的报表ID,而后向控件设置报表的显示数据源DataObject便可完成对报表系统的调用。
咱们下面以DrugShop案例之中的药品字典模块的字打印实例如何进行GReport报表开发:
首先咱们须要在GR报表模块之中增长一个名称为“药品字典明细报表”的报表项目。
报表名称必需要填写而且不能重名,别名能够选择填写,缓存间隔默认为15分种,最小1分种,自由设定,原则上在系统开发测试阶段设小一些,在稳定运行阶段设大一些。
其余参数,如“报表模块,把报表作为独立模块发布”、查询语句、查询参数能够不去理会,这些参数为动态报表提供,关于动态报表咱们会在后面的文章之中进行专门的介绍。
而后咱们点“肯定”按钮保存报表进行下一步的报表设计工做。
双击咱们刚才添加的“药品字典明细报表”进入报表设计界面,咱们能够看到这是一个空报表:
选择“文件”菜单之中的“新建”=》“对象报表”:
切换到数据定义Tab页,进行实体类型的选择:
咱们浏览选择程序集DrugShop.Entitties.dll,而后在对象下拉列表框中选择DrugShop.Entitties.PIn,即药品入库ORM对象,咱们基于DrugShop.Entitties.PIn建立报表,点击“肯定”完成报表的新建。
系统会自动的更具新建导向生成一个初始报表,若是须要对报表的显示、格式进行调用,请参考Grid++设计手册进行学习。
修改完成以后,点击“保存”图标、或者“文件=》保存”菜单项保存报表的格式定义,这样就完成了报表的定义。
接下来咱们须要把刚才定义、设计好的报表挂在程序之中,使用Visual Studio 打开DrugShop解决方案,打开DrugShop.WinUI项目之中的药品字典模块DrugDictList.cs:
双击“打印”按钮写如下打印代码:
1: private void tsbPrint_Click(object sender, EventArgs e)
2: {
3: if (this.dictList != null)
4: {
5: EAS.GReport.Controls.PrintViewDialog ViewDialog = new EAS.GReport.Controls.PrintViewDialog();
6: ViewDialog.ReportID = new Guid("F29C4C91-0791-4116-BE26-3A2A88F30A2A");
7: ViewDialog.DataObject = this.dictList;
8: ViewDialog.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
9: ViewDialog.WindowState = System.Windows.Forms.FormWindowState.Maximized;
10: ViewDialog.ShowDialog();
11: }
12: }
这样咱们就完成了对报表的调用,另外,在DrugShop案例之中,药品入库查询和药品销售查询两个模块之中分别使用了GReport报表,请你们在开发过程之中参考。
咱们编译而且启动DrugShop.Main.exe,使用0001密码sa登陆,打开药品字典功能,来试一下是报表是否正常:
OK,使用正常,没有任何问题。
DrugShop案例之中同步提供了本例子的报表定义和使用代码,请你们经过AgileEAS.NET SOA中间件官方网站的最新下载栏目进行下载。
为完善、改进和推广AgileEAS.NET而成立了敏捷软件工程实验室,是一家研究、推广和发展新技术,并致力于提供具备自主知识产权的业务基础平台软件,以及基于业务基础平台开发的管理软件的专业软件提供商。主要业务是为客户提供软件企业研发管理解决方案、企业管理软件开发,以及相关的技术支持,管理及技术咨询与培训业务。
AgileEAS.NET SOA中间件平台自2004年秋呱呱落地一来,我就一直在逐步完善和改进,也被应用于保险、医疗、电子商务、房地产、铁路、教育等多个应用,但一直都是以我我的在推广,2010年由于我辞职休息,我就想到把AgileEAS.NET推向市场,让更多的人使用。
个人技术团队成员都是合做多年的老朋友,由于这个平台是免费的,因此也没有什么收入,都是由程序员的那种理想与信念坚持,在此我感谢一块儿奋斗的朋友。
AgileEAS.NET网站:http://www.agileeas.net
官方博客:http://eastjade.cnblogs.com
github:https://github.com/agilelab/eas
QQ:47920381
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。