Winform开发框架之通用人员信息管理
我在随笔《Winform开发框架之通用短信邮件通知模块》和《Winform开发框架之通用附件管理模块》等多篇文章中都有介绍我总体的一个Winform开发框架的规划,其实就是开发一个集成度高的Winform开发框架,然后尽可能开发一些日常项目用到的模块,我称之为通用模块(可重复利用,或稍微调整可以适应项目需求),这样就形成了一个良好的生态体系,能够极快提高开发效率,同时也能规范化项目产品的开发工作,松耦合的集成能提供更高层的整合和利用。本文主要介绍我的Winform开发框架体系里面的一个新的模块,通用人员信息管理模块,这个模块其实在很多场合都可能用到,如企业员工管理、科室员工管理等等,这些要求登记人员详细资料及图片等信息的系统模块,就是我这里提到的人员信息管理模块。
首先我们来回顾一下,我的Winform开发框架体系,以及人员信息管理模块在其中所处的位置。Winform开发框架是我集多年开发经验以及积累而成,很多细节之处润物细无声,但却是精粹心得所至,很多地方都希望是精益求精,力求把框架中的模块当成一把把神兵利器,用到的时候,马上就可以派生用场解决问题,这样可以避免给客户开发业务的时候,延误战机,或者因为事无巨细,都要从头来过,效率大打折扣,而且时间和金钱的大投入也未见得取得好的效果。
1、模块设计
整个人员模块,我们预想需要管理人员基本信息,学习情况,职称情况,履历情况,出国情况,家庭情况,受奖情况,以及相关的附件信息,当然人员数据还有一些字典管理,因此该模块同时也整合通用附件管理模块,以及通用字典管理模块,是一个小综合性的集成模块了。
人员信息管理,一般需要导出一个标准型的Word文档,方便人员资料打印操作,我们预想是导出这样的文档的。
因此设计模块的数据库如下所示,其中包括了通用字典管理和通用附件模块的数据库设计。
完成以上的文档规划以及数据库的模型设计,就可以着手开始我们的系统模块功能,以及界面的设计工作了。
2、软件使用界面
和其他通用表格一个,需要展示一个列表集合,把相关功能集成在其中,包括查询、新建、按模板的导入、导出功能,当然更多的功能,集成在分页控件的(列表)右键菜单中,其中一些字典项目,采用下列列表方式,方便填写或者从中选择。
详细的数据编辑窗体,就是综合各种人员信息的填写和展现了,包括前面提到的基本信息(含肖像管理)、学习情况、职称情况、履历情况、出国情况、家庭情况、个人图片、科研和受奖情况、个人文件资料等功能模块,其中整合了字典管理、附件管理,所以功能使用也很方便,下面就是一个基本资料的主界面情况。
为了更好展现整个人员管理数据内容的情况,我们在看看其中家庭和个人图片的管理界面,其中家庭情况,可以在其中添加、删除、刷新、位置上移、位置下移等操作,个人图片则是集成了附件管理的模块,因此也方便集成进去。
3、报表导出
刚才说到,我们的目的之一,就是需要导出一个符合规格的Word文档,这样方便我们正常的数据交换和打印显示。为了更好的实现固定报表的导出,对于表格的绑定,这里使用了Aspose.Cell的MailMerge功能了,先在固定模板中插入并定义好相关的域引用,如下所示。
然后,插入一些常规的书签(单字段),这样绑定数据就很方便了,最后设计好的Word模板如下所示。至于了Aspose.Cell的MailMerge功能操作,有空再独立的随笔中介绍吧。
4、模块集成使用
由于模块是独立开发,支持集成整合的,因此,把相关的数据库部署到具体的环境上,然后简单调用下面的代码就可以了。
private void btnAddStaff_Click(object sender, EventArgs e) { FrmEditStaff dlg = new FrmEditStaff(); dlg.ShowDialog(); } private void btnStaffList_Click(object sender, EventArgs e) { FrmStaff dlg = new FrmStaff(); dlg.ShowDialog(); }
以上就是我开发人员管理的一些思路和总结,介于篇幅原因,细节地方以后会逐步介绍一下。整个模块除了能够有效管理人员基本信息外,还比较方便对人员列表数据,如家庭情况,履历情况等列表性的数据合理的管理,还可以通过附件管理(详细功能可以参考一下《Winform开发框架之通用附件管理模块》),这样集成,既能达到满足功能需求,又能更好实现松耦合的集成使用,在今后的开发项目中多次运用,达到提高效率,提高代码质量和稳定性的目的。
希望本随笔文章对大家有帮助,有启发。
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
专注于Winform开发框架、WCF开发框架的研究及应用。
转载请注明出处:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)