分享一下自己开发的一套可快速开发企业管理软件的工具,纯属显摆,高手勿喷,欢迎大家多提意见。
该工具的功能就是让开发人员仅通过配置就可以将软件中所需的表单交互界面做出来,然后配合我的框架,简单的管理软件可自动完成70%的工作,让开发人员真正只需关注表单与表单间的逻辑处理即可。
先是工具的登录界面
如果同时开发多套软件,可选择一套进行配置。
主界面,里面的数据是其中一个五金厂的配置,每行数据代表一个表单。
表单主体功能配置。
从界面就可以看出表单可以实现那些功能了,如果表单中有多个表体,可用逗号分开。所有表头与表体类需继承框架接口,以让框架自动实现用户配置的功能。如果表单没有额外的特殊需求,那么业务处理类非常简单,像下面的代码,声明一个父类即可:
namespace Qfjxc.Business.Storage
{
public class Storage_MoveDetail : Core.ABusinessDetail<Model.Storage.Storage_MoveDetail>
{
}
}
整个框架中代码最多的可以会集中在model类中,需要为model设置特性及验证条件,验证条件可提示用户操作或禁止用户操作,如下:
public class Storage_MoveDetail : IDetail, IStateMod, IValidate
{
public string SMID { get; set; }
public string DID { get; set; }
public decimal Number { get; set; }
public string GID { get; set; }
[OnlyCompelSave]
public string SourceDID { get; set; }
public string GState { get; set; }
public string Remark { get; set; }
[NoInitField]
public string State { get; set; }
public string Auditer { get; set; }
[NoSaveField]
public string AuditerName { get; set; }
public DateTime? AuditDate { get; set; }
public List<ValidateResult> Validate()
{
List<ValidateResult> list = new List<ValidateResult>();
if (DID == SourceDID)
{
ValidateResult result = new ValidateResult(eConfirm.Forbid);
result.Message = string.Format("调出仓库{0}不能与调入仓库{1}相同!", SourceDID, DID);
list.Add(result);
}
return list;
}
}
列表页或者编辑页的表体,都可以以上面类似的方式配置,可配置某个栏位在某个状态下禁止编辑,这点非常重要。
表头中栏位配置,可设置栏位的类型,如日期类型,数字类型,下拉类型,combotree类型等。字源来源可配置从字典或基础数据中选取数据。
打印一直是个难点,用户的打印格式各有不同,这里的配置可以设置将数据推送至excel中,让用户用excel作为模板,自已定义好格式,软件只负责推送数据,免去格式设置的烦恼。
字典的配置
其它的功能,如页面js,可配置某个表单需运行的js。
其它的对于数据库的操作就不粘贴了,类似于我之前做的一个工具
自己做的SQL SERVER数据导入导出等辅助功能工具
通过这个工具,几天开发一个管理系统可轻松实现了。