解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑。核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利。比如通用权限管理系统,通用附件管理,通用查询等组件,若是在项目开发前就准备好了这些组件,为项目如期交付提供了保证。
查询设计器 Query Designer 支持选择一个或多个数据库表,通过左右连接的方式构建查询结果,支持直接手写SQL语句设计查询,支持调用存储过程查询,支持用代码设计查询。
报表设计器 Report Designer 支持配置的方式生成报表参数对话框,支持报表多语言,支持报表参数设置与打印
窗体设计器 Form Designer 支持用户自定义界面控件的布局(Layout)和外观(Appearance),支持用户修改界面控件的查找条件
工作流设计器 Workflow Designer 支持自定义流程,支持自定义消息通知,支持自定义事件,支持计划任务
任务计划设计器 Schedule Designer 支持计划任务
查询设计器 Query Designer
在系统维护过程中,,不停的增加新的字段,一般不会立即重写系统现有的查询,但需要一种方式可以立即看到系统的更改,或者是系统现有的查询不能满足客户的需求,查询设计器就是为了解决系统查询功能的不足开发的。
我考虑到了以下几种查询的方式,简单介绍它们的实现方式供参考。
1 SQL语句 SQL Statements假设客户的系统维护人员懂SQL语句,经过多年客户积累的系统,软件公司也有许多常用的查询语句,将这些查询语句放到一个查询功能中执行一下,即可获取数据。
参考下面的SqlDbx程序的例子,在系统中可以对这个界面进行简化,只保留输入SQL语句和显示查询结果的地方。
为了方便最终用户分析结果数据,系统需要提供对查询结果数据的导出(Microsoft Excel),过滤,排序,分组等功能。
ERP系统将每个查询保存起来,下次用户只需要敲查询编号即可看到查询结果,并对结果数据进行操作。
2 图形化查询设计 GUI Query Design
如果用户不懂SQL语句,系统考虑提供一种图形化的方式供用户设计查询。记得10年前自己在学习SQL语句的时候,是非常期待有一个智能化的工具,可以让我选择要查询的数据表和字段,再设置数据表之间关联,最后就得到我需用的查询语句。系统参考了Access 的查询设计器,参考一下经典的Access的查询设计界面:
微软Office套件中Access的查询设计器经过多年的发展,应该是有足够的理由相信这个界面是最容易让非IT人士接受的查询设计界面。只需要用鼠标选一下要查询的表,再选择要显示的字段,系统自动产生相应的SQL语句。
图纸化查询设计这种功能会经常出现在报表设计器中,报表设计器一般都会附加一个图形化的查询设计工具,我们可以在那里找到它的界面原型,经过简化后变成ERP系统的查询设计工具。
3 存储过程查询 Query By Stored Procedure
如果SQL语句或是表关联也不能满足数据的查询要求,系统可以考虑增加存储过程支持,以满足更复杂的查询需求。在ERP的财务报表中,各种财务统计报表的确相当的繁琐,非用存储过程不可。我们需要考虑好,如何将参数传递到存储过程中,显示存储过程的返回结果就可满足这种需求。为此,设计如下的查询语句:
EXEC spRpt_OrderAmtTotal %1, %2存储过程的后面两个参数是占位符号,表示需要给此存储过程传递参数。于是,还需要设计一种参数映射,设定参数的类型,长度,运行此查询时,将用户输入的值替换到上面的两个占位置符中,传递到存储过程中。
存储过程的定义已经定义它的参数类型,系统运行查询时,系统需要将上面的%1的值所代表的值转换成存储过程需要的参数类型,比如上图中的%1 所代表的Date From,系统需要用户的输入值进行强制类型转换为日期时间类型,再传递到存储过程中获取返回结果。
4 程序查询 Query By Program
用程序代码写查询可以分为二种情况,单据查询,列表查询。单据查询只需要继承原有的单据编辑窗体,设置窗体不可编辑,这样就完成了单据查询。列表查询是指需要用户输入一种或几种过滤条件,根据过滤条件得到查询结果。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69243.html