人事系统总结——维护细节
来源:互联网 发布:不厌书法软件下载 编辑:程序博客网 时间:2024/04/30 11:06
现实是善变的,用户的需求也在跟随发展在变化。人事系统经过艳玲、唐欢社河师哥,到我们这里已经是3.0版。此篇博文主要针对系统新需求以及实现思路进行概述。
新需求1——>数据由死到活
1)数据动态导入导出:
原系统的不足之一在于没有后台动态导入考生信息的功能,以至于每次都需要进入数据库,手动导入考生信息。所以该系统3.0版,我们增加了后台管理员动态将数据入库的功能。第一反应出来的就是机房收费系统中导出excel的逆向工作——excel动态导入数据库。具体代码如下:
D层:
public class ImportDAL { /// <summary> /// excel导入到数据库中 /// </summary> /// <param name="dataTableName">创建的数据库的表名</param> /// <param name="excelName">excel文件的路径</param> /// <returns></returns> public int Import(string dataTableName,string excelName) { string strSql = "procImport"; SqlParameter[] paras=new SqlParameter[]{new SqlParameter("@tableName",dataTableName), new SqlParameter("@excel",excelName)}; SqlHelper sqlhelper=new SqlHelper(); return sqlhelper.ExecuteNonQuery(strSql, CommandType.StoredProcedure,paras); }
D层存储过程:
-- Create date: 2014年12月15号-- Description:存储过程:用来将excel表的数据导入到数据库中。-- =============================================ALTER PROCEDURE [dbo].[procImport] @tableName varchar(50), @excel varchar(300) ASdeclare @strSQL varchar(300), @str varchar(300), @fieldsname varchar(200)BEGIN--添加新的表,存放excel中的数据set @str='openrowset(''MICROSOFT.ACE.OLEDB.12.0'',''Excel 5.0;HDR=YES;IMEX=1 DATABASE='+@excel+''',[sheet1$])' set @strSQL='select * into'+char(32)+@tableName+CHAR(32)+'from'+CHAR(32)+@strexec(@strSQL)--将该表名存入t_tableName表中insert into t_TableName(tableName) values (@tableName)--将新添加的表的字段名、表名、和state状态添加到t_FieldsNameinsert into t_FieldsName(fieldsName) Select Name from SysColumns Where id=Object_Id(''+@tableName+'')update t_FieldsName set tableName =@tableName where tableName is null update t_FieldsName set [state]='Y' where [state] is nullEND
B层:
private readonly ImportDAL impDal = new ImportDAL(); public int import(string dataTableName, string excelName) { return impDal.Import(dataTableName, excelName); }U层:
BackMrgBLL bmb = new BackMrgBLL(); //将文件名分离出来 string[] sArray = fileName.Split(new char[1] { '.' }); //除了扩展名和“.”之外的完整文件名 string tableName = sArray[0]; int b = bmb.import(tableName, serverPath); if (b != 0) { Response.Write(" <script language=javascript>alert('导入成功 ') </script>"); }
2)前台字段动态显示:
前台字段显示原系统是查的考生表里的所有信息,由于每次考试显示的信息都在变换,所以一股脑通通显示虽然省事,但是这样设计也存在不小的问题。要是下一年考试显示字段有变,而数据库里又没有该字段,那么又得动数据库,不断增加字段,导致很多信息为空或者根本无需显示但依旧执着的给显示出来了。
应对这个问题,我们实现了根据考生不同考试,动态配置前台考生显示信息。实现该功能的难点在于考试是在变的,数据库里的字段也是在变的。经过思索,我的思路是:在考生登录时,判断该考生的考试类型,传入exam参数,根据该参数后台显示该考试下所有字段,利用checkbox进行勾选,判断前台显示字段。最后经过协商,决定在考生登录界面出来一个下拉框,让学生自己选择考试类型。这样做的优点在于:当该学生在同一时段内有多门考试时,动态选择,动态控制前台字段显示。弊端在于:大多数情况之下,每个学生只有一门考试,让用户一步选择操作,未免显得画蛇添足。但多门考试的需求是合理的。同时.net云平台中的考试系统也存在相同的需求,组长建议动态增删改均需实现。
新需求2——>考试时效性控制
根据用户历年考试使用系统的规律,添加控制系统失效性的需求。每年相应时间内——>考哪几场试——>固定显示字段——>控制查询时间——过时动态更新
新需求3——>界面调整
因为有机会跟用户面对面的交流,刚开始拿到系统只知道是某单位一招聘便用该系统,让考生用来查询成绩。做的时候也全屏师姐的指导和描述进行。但通过跟用户的接触,了解其工作背景,使用该系统的大环境,对用户需要一个什么效果的系统更加清晰。所以在界面上决定奔着方便用户的需要进行调整。
体会:
系统维护一开始上手是一个比较漫长且磨练人的工作。读别人写的代码,看着注释,理清他做系统时是什么思路。要的不仅是维护人员看代码理解能力和清晰的大脑,还需要一颗比较耐得住折磨的强大心脏。维护工作的不易,也让我思考设计编码时,就要大胆的发挥想象,把握这么一个让你思维自由的机会去编程,同时注意写好关键代码注释。
- 人事系统总结——维护细节
- 人事系统总结——第一次面向用户发布系统
- 人事系统——需求分析
- 人事维护——锐浪报表不能被IIS访问
- 单链表的应用——人事信息管理系统
- 图书馆维护系统总结
- 学生信息管理系统总结——细节问题
- 人事系统用例
- 人事档案管理系统总结(一)
- 人事面试总结
- 人事面试题目总结
- 人事面试题目总结
- 人事系统维护——谁有谁的表
- 软工导图总结——测试与维护
- 项目维护总结——日志打印
- 企业人事信息管理系统1.0
- 人事综合管理系统开发
- 人事工资管理系统的开发
- 把信送给加西亚
- 发送邮件
- jquerymobile创建9宫格事例
- 如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP
- PHP会被淘汰吗?
- 人事系统总结——维护细节
- ListView删除选中Item一次只能删除一个
- 神秘的Google项目,你知道多少?
- 我的2014:迭代的岁月,重构的人生
- android 源码探索--AsyncTask
- jquerymobile普通列表事例
- 用java代码实现生产者和消费者的问题
- ArcEngine 导出图层(shp)
- 常用动画要素分析