第10章项目实战会议考勤系统_第1页
第10章项目实战会议考勤系统_第2页
第10章项目实战会议考勤系统_第3页
第10章项目实战会议考勤系统_第4页
第10章项目实战会议考勤系统_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章工程实战:会议考勤系统

本章要点

C/S和B/S结构的联合应用

会议考勤系统开发流程导出Excel功能实现TreeView控件高级应用AJAX技术应用10.1系统功能概述本系统是为淮安市交通局开发的基于.NET平台的会议考勤系统,本系统分前台系统和后台系统,后台系统由数据库效劳器和Web应用程序效劳器构成,前台系统由考勤机、考勤状态显示机和会务管理机构成,整个系统拓扑结构如图10.1所示。1.数据库效劳器:安装WindowsSever2003操作系统和SQLServer2005数据库系统。2.Web效劳器:安装IIS6.0,.NETFramework2.0和考勤管理软件。该软件采用B/S结构,其界面如图10.2所示,其主要功能如图10.3所示。图10.2考勤管理软件界面图10.2考勤管理软件界面考勤后台管理系统用户权限管理部门人员管理会议管理会议出勤统计用户信息维护用户权限设置部门设置职工管理会议信息添加会议信息编辑参会人员设置职工请假管理当前会议设置3.考勤签到机:在考勤签到机上安装了考勤签到软件,其界面如图10.4所示:用户可以通过输入员工编号或者刷卡〔通过读卡器设备〕两种形式实现考勤登录功能,考勤签到软件那么将用户输入的信息通过局域网保存到后台SQLServer数据库上,其程序流程图如图10.5所示。图10.5考勤签到流程图输入职工考勤卡号是否允许该职工参会将数据保存至SQLSever数据库提示用户签到成功提示用户未被邀请参会提示用户已经签到否该用户是否重复输入是是否4.考勤状态显示机:由PC机和投影仪构成,输入效劳器的IP地址,即可查看当前会议出勤情况,如图10.6所示,按F11键,可全屏投影显示。在人数上单击鼠标,可显示相关人员列表,如图7所示:图10.7应到人员明细5.会务管理机:主要应对员工请假、临时添加参会人员等突发情况,该操作主要通过效劳器的IP地址后,登录到后台会议考勤管理软件,执行相应操作,其中系统登录界面如图10.8所示,请假管理界面如图10.9所示。10.2系统分析

通过对系统功能进行分析,可以归纳出本系统包含单位部门、职工信息、会议信息、参会人员设置、当前会议设置、请假信息、会议签到信息、系统用户等信息,其中主要信息的E-R图如图10.10所示:单位部门部门编号部门名称上级部门编号职工信息职工编号职工姓名考勤卡号部门编号职务会议签到信息考勤卡号会议编号会议信息会议编号会议名称会议内容允许迟到分钟提前分钟刷卡职工请假信息职工编号会议编号编号事由请假时间属于签到时间签到请假签到请假召开时间召开地点8个数据表结构如表10-1~表10-8所示。表10-1部门信息表〔Department〕序号列名数据类型长度小数位标识主键允许空说明1DeptIDint40是是否部门编号2DeptNamevarchar500是部门名称3ParentIDint40是上级部门编号4ShowNoint40是显示顺序表10-2职工信息表〔Employee〕序号列名数据类型长度小数位标识主键允许空说明1IDvarchar200是否职工编号2Namevarchar500是职工姓名3CardIDvarchar100否考勤卡号4DeptIDint40是部门编号5Positionvarchar500是职务表10-3会议信息表〔MeetingInfo〕序号列名数据类型长度小数位标识主键允许空说明1IDint40是是否会议编号2Titlevarchar500是会议名称3OpenDatedatetime83是召开时间4OpenPlacevarchar500是召开地点5CanCardint40是提前多少分钟刷卡6AllowDelayint40是允许迟到多少分钟7ContentsvarcharMAX0是会议内容表10-4参会人员设置表〔AttendEmpShedule〕表10-5会议签到信息表〔AttendCard〕序号列名数据类型长度小数位标识主键允许空说明1MeetingIDint40是否会议编号2EmployeeIDvarchar200是否员工编号序号列名数据类型长度小数位标识主键允许空说明1CardIDvarchar500是否考勤卡号2AttendTimedatetime83是签到时间3MeetingIDint40是否会议编号表10-6请假信息表〔AskForLeave〕序号列名数据类型长度小数位标识主键允许空说明1IDint40是是否序号2EmployeeIDvarchar200否员工编号3MeetingIDint40否会议编号4ReasonvarcharMAX0是请假事由5ReasonTimedatetime83是请假时间6Operatorvarchar500是记录员表10-7当前会议设置标〔CurrentMeeting〕表10-8系统用户表〔Admin〕序号列名数据类型长度小数位标识主键允许空说明1CurrentMeetingint40是否当前会议编号序号列名数据类型长度小数位标识主键允许空说明1UserIDvarchar500是否用户编号2RealNamevarchar500是真实姓名3Passwordvarchar1000否密码4RightsvarcharMAX0是权限描述5Operatorvarchar500是录入员10.3SQLServer数据库的创立我们将利用SQLServer2005提供的图形界面工具“SQLServerManagementStudio〞创立会议考勤系统的数据库。具体步骤如下:1〕选择“开始〞→“所有程序〞→“MicrosoftSqlServer2005〞→“SQLServerManagementStudio〞,翻开SQLServer管理平台,将弹出如图10.11所示的登录界面图10.11SQLServer2005登录界面2〕选择SQLServer身份验证,输入用户名和密码后,即可进入系统主界面,如图10.12所示:图10.12SQLServerManagementStudio3在〕“对象资源管理器〞选择“数据库〞,右键,执行“新建数据库〞命令,如图10.13所示:图10.13新建数据库4〕在弹出的“新建数据库〞对话框中,在数据库名称文本框中输入“Meeting〞,注意在“数据库文件〞列表选项中可以设置数据库的初始大小、自动增长、文件存储路径、文件名等信息,这里采用默认值,点击最下方的“确定〞按钮,完成数据库的添加,如图10.14所示:图10.14新建数据库对话框5〕在“对象资源管理器〞选择数据库“Meeting〞,在“表〞子工程上点击右键,执行“新建表〞命令,如图10.15所示6)根据表10-1到表10-8的字段要求,创立数据库表的各个字段,注意修改各个字段的数据类型,如图10.16所示:7)按<Ctrl+S>保存该表,在弹出的对话框中输入“Department〞,实现表的命名。8)选择DeptID列,在“列属性〞列表中,找到“表设计器〞→“标识标准〞,将“〔是标识〕〞项改为“是〞,如图10.17所示。标志列的作用是,当向该表添加记录时,标识列的数据自动增加,增加值由标识增量决定。例如,对于DeptID列,第一条记录该列值为1,第二条记录值为2,以此类推。图10.17修改标识列9)保持选中DeptID列,点击左上角的图标,为DeptID列添加主键,从而规定该列的值具备唯一性。10)根据以上步骤,创立会议考勤系统的其他表格。10.4考勤后台管理软件架构

本系统在同一“VisualStudio解决方案〞下包含三个工程,分别为系统类库,后台管理系统网站和考勤前台签到系统,采用同一解决方案的作用是方便代码管理和维护。10.4.1系统解决方案及类库创立系统解决方案和类库的创立步骤为:1〕翻开MicrosoftVisualStudio,在菜单栏选择“文件〞→“新建〞→“工程〞,在弹出的“新建工程〞对话框中选择“VisualStudio解决方案〞→“空白解决方案〞,工程名称输入“MeetingSys〞,保存位置可自行设置,如图10.18所示图10.18新建工程2〕点击确定按钮,VisualStudio将为我们创立工程的解决方案,在“解决方案资源管理器〞下的“解决方案'MeetingSys'〔0个工程〕〞栏目上单击鼠标右键,从弹出的下拉菜单中执行“添加〞→“新建工程〞命令,如图10.19所示。3〕在弹出的“添加新工程〞对话框中,选择“VisualC#语言〞→“类库〞,名称为“MeetingLib〞,如图10.20所示。4〕在解决方案“MeetingSys〞下将会添加“MeetingLib〞工程,在该工程上单击鼠标右键,从弹出的下拉菜单中执行“添加〞→“类〞命令,如图10.21所示。5〕在弹出的“添加新项〞对话框中,输入名称“DbHelper.cs〞后,点击“添加〞按钮。6〕双击“DbHelper.cs〞文件,修改代码为如下所示:键入代码7〕在解决方案资源管理器的“MeetingLib〞工程上单击鼠标右键,从弹出的下拉菜单中执行“添加引用〞命令,在弹出的“添加引用〞对话框中,选择“System.Configuration〞项,按住<Ctrl>键,再次选择“System.Data.OracleClient〞项后,点击“确定〞按钮,如图10.22所示。

图10.22添加引用8〕在解决方案资源管理器的“MeetingLib〞工程上单击鼠标右键,从弹出的下拉菜单中执行“生成〞命令,如果上述步骤没有出现错误,将在VS工具的左下角输出如图10.23所示工程生成信息。9〕继续添加名为“MyMD5〞的类,用来加密用户密码等敏感信息,代码如下:键入代码10〕再次在解决方案资源管理器的“MeetingLib〞工程上单击鼠标右键,从弹出的下拉菜单中执行“生成〞命令,如果上述步骤没有出现错误,继续添加名为“SysUtility〞的类,该类代码如下:键入代码11〕重新生成工程,确保代码正确10.4.2考勤后台管理系统框架构建

考勤后台管理系统采用FrameSet结构,具体实现步骤如下1〕利用搜索引擎查找或直接从微软网站上下载“ASPAJAXExtSetup.msi〞文件,并将该文件安装到操作系统中,从而后台系统可以支持微软AJAX架构,该软件的安装界面如图10.24所示。

2〕重新启动VisualStudio,翻开“MeetingSys〞解决方案,在“解决方案资源管理器〞下的“解决方案'MeetingSys'〔1个工程〕〞栏目上单击鼠标右键,从弹出的下拉菜单中执行“添加〞→“新建网站〞命令,在弹出的“添加新网站〞对话框中,选择“ASP.NETAJAX-EnabledWebSite〞模板,并将该网站的保存位置设置在解决方案相应目录下,例如本教程中为“D:\learn\MeetingSys\MeetingManagement〞,从而在解决方案下添加了“MeetingManagement〞这一子目录,网站文件将存放在里面。最后,确保工程语言为VisualC#,如图10.25所示。3〕在新添加的网站工程上点击鼠标右键,在弹出的下拉菜单中执行“设为启开工程〞命令,从而可以通过点击工具栏上的图标来运行工程。4〕在“解决方案资源管理器〞选中网站工程,右键,执行“新建文件夹〞命令,并将新的文件夹命名为“Admin〞。6〕在Admin文件夹下添加css、image、js、My97DatePicker等子文件夹,并将随案例提供的“案例素材.rar〞文件解压,将素材文件拷贝到相关目录下。7〕在Admin文件夹上点击鼠标右键,执行“添加新项〞命令,在弹出的“添加新项〞对话框中选择“Web窗体〞,并将之命名为“Default.aspx〞,如图10.26所示。8〕修改Default.aspx的代码为如下所示:

7〕添加“FrameTop.aspx〞窗体,HTML代码如下:键入代码8〕添加“FrameLeft.aspx〞窗体,HTML代码如下:键入代码9〕添加“FrameBottom.aspx〞窗体,HTML代码如下:键入代码10〕添加“FrameMain.aspx〞窗体,HTML代码如下:键入代码11〕在“解决方案资源管理器〞中,选中网站工程下“Admin〞文件夹中的“Default.aspx〞文件后,点击工具栏上的图标运行工程,运行结果如图10.27所示。由于没有添加具体的功能窗体,所以系统主界面上显示为“无法找到资源〞错误。10.5部门人员管理功能实现

10.5.1单位部门设置子模块单位部门设置功能实现步骤如下:1〕在“解决方案资源管理器〞中,选中网站工程下“Admin〞文件夹,右键,在弹出的下拉菜单中执行“新建文件夹〞命令,并将新的文件夹命名为“Department〞。2〕在“Department〞文件夹下添加名为“DeptSet.aspx〞的窗体文件,并添加初始代码如下:

4〕从VS工具箱中选择“TreeView〞控件和“Literal〞控件添加到Web窗体上,此时Web窗体布局如图10.28所示。4〕后台代码中初始化TreeView控件代码为:

5〕初始化页面代码如下:键入代码6〕在“解决方案资源管理器〞中,选中网站工程,右键,在弹出的下拉菜单中选择“添加引用〞,在弹出的“添加引用〞对话框中,切换到“工程〞标签页,选择“MeetingLib〞类库,将中创立的类库添加到网站引用中,由此,在考勤后台系统中,可以调用类库中的代码,如图10.29所示。7〕在“解决方案资源管理器〞中,选中“Web.config〞文件,双击翻开,在“<system.web>〞上添加如下xml语句:

8〕在“解决方案资源管理器〞中,选中Admin文件下的Default.aspx文件,右键,选择设为起始页,运行工程,该页首先被执行。在左侧导航栏中选择“部门人员管理〞→“单位及部门设置〞,执行结果如图10.30所示。9〕关闭浏览器,在“解决方案资源管理器〞中选择“Admin文件夹〞→“Department文件夹〞→“DeptSet.aspx〞文件,在源文件的顶部添加如下所示JS代码:键入代码10〕在源文件的底部添加如下代码,也可以借助VS工具栏中加快控件添加速度:键入代码注意以上代码需要添加在</form>标签之前。11〕添加以上代码后,部门设置功能界面如图10.31所示。12〕添加以下代码,以支持各个界面的AJAX功能:键入代码13〕切换到界面的设计试图,双击“添加单位〞控件,在生成的LinkButton1_Click事件中添加如下代码:

14〕添加单位信息代码如下:

15〕切换到界面的设计视图,双击“修改单位〞控件,在生成的LinkButton2_Click事件中添加如下代码:

其中调用的GetCheckedUnit〔〕代码如下:

16〕修改单位代码如下:键入代码17〕切换到界面的设计视图,双击“删除单位〞控件,在生成的LinkButton3_Click事件中添加如下代码:

18〕添加部门的操作步骤与添加单位根本类似,可自行通过案例素材中的案例源代码学习。10.5.2职工信息设置子模块1、职工信息添加功能实现步骤如下:1〕在网站的Admin\Department目录下添加名为“EmployeeSet.aspx〞的Web窗体,界面如图10.32所示,注意设置验证控件,用于验证用户输入的合法性,在单位部门下利用SqlDataSource和Dropdownlist控件实现单位部门信息的二级联动。2〕双击“提交〞按钮,添加如下代码,实现添加用户信息功能:键入代码3〕在网站的Admin\Department目录下添加名为“EmployeeView.aspx〞的Web窗体,界面如图10.33所示。其中SQLDataSource1控件的SQL语句为:SELECT[ID],[Name],[CardID],[DeptName],[parentname],[Position]FROM[V_EmployeeInfo],其对应于数据库Meeting中的视图V_EmployeeInfo。另外在DataGridView中利用“HyperLinkField〞控件,通过超链接的形式,将修改功能传递到了“EmployeeSet.aspx〞上。如图10.34所示:4〕职工管理界面对应的查询功能代码如下:

5〕在查询按钮的Click事件以及DataGridView控件的PageIndexChanged事件中添加对查询功能SearchEmployee〔〕的调用即可。6〕修改Admin\Department目录下的代码为如下所示:

10.6会议管理功能实现

10.6.1会议信息添加模块会议信息添加模块和职工信息设置子模块功能类似,实现步骤如下:1〕在网站工程下的Admin文件夹下添加Meeting子文件夹,和会议管理功能相关的Web文件将存储在这里。2〕在Meeting子文件夹下添加名为MeetingSet.aspx的web窗体文件,并将窗体布局设置为如图10.35所示。3〕添加会议信息核心代码:

4〕修改会议信息核心代码:

这里调用了设置当前会议信息的存储过程,数据库中的存储过程代码如下:

10.6.2会议信息浏览与编辑模块会议信息浏览与编辑模块实现过程如下:1〕在网站的Admin\Meeting目录下添加名为“MeetingView.aspx〞的Web窗体,界面如图10.36所示。注意刷卡要求列字段为自定义模板,其代码为:键入代码2〕会议信息修改功能通过HyperLinkField字段切换到MeetingSet.aspx页面完成,主要通过将该字段的DataNavigateUrlFormatString属性来实现,如图10.37所示。10.6.3参加会议人员设置参会人员设置从实现流程上可分为两个步骤:首先显示还未召开的会议,其次为相应的会议设置参会人员即可。具体实现步骤如下:1〕在网站Admin\Meeting显示未召开的会议会议信息浏览与编辑模块实现过程如下:1〕在网站的Admin\Meeting目录下添加名为“AttendShedule.aspx〞的Web窗体文件,添加DataGridView控件和SqlDataSource控件,页面布局类似会议信息浏览模块。2〕SqlDataSource的Select语句为:键入代码3〕在DataGridView控件上添加HyperLinkField字段,用于链接到会议参会人员具体设置界面,HyperLinkField字段对应的代码为:键入代码4〕在网站的Admin\Meeting目录下添加名为“AttendSet.aspx〞的Web窗体文件,其布局如图10.38所示。5〕在参会人员设置中,主要涉及到了参会人员批量设置功能,可在GridView控件的最后一列添加模板列,而后在GridView控件上选择编辑模板,再选择HeaderTemplate,从工具箱中选择checkbox控件放到模板列中,如图10.39所示。6〕选择ItemTemplate,再放入一个CheckBox后,添加如下代码:

7〕选中GridView控件,在其DataBound事件中添加如下代码:

8〕确定参会人员代码如下:键入代码10.6.4请假人员设置请假人员设置功能〔AskForLeaveSet.aspx〕与会议信息添加、浏览功能根本类似,其界面如图10.40所示。这里要注意的是会议主题中对应的SQLDataSource代码,注意已经召开完的会议是不允许请假的,对应SQL语句如下:

SELECTID,TitleFROMMeetingInfoWHERE(OpenDate>=DATEADD(dd,-1,GETDATE()))请假人员浏览功能(AskForLeaveView.aspx)主要是根据会议主题的不同,列出对应会议的请假人员,功能界面如图10.41所示:10.6.5当前考勤会议设置前会议召开功能通过在显示的未召开会议信息的列表上,通过单项选择框按钮选择某项会议,然后按“设为当前考勤会议〞按钮来实现该功能,其运行界面如图10.42所示:该功能的主要技术应用表达在GridView上单项选择按钮的设置,具体步骤如下:1〕在GridView空间上添加模板列,对应代码如下:

2〕在GridView的RowDataBound事件中添加如下代码:

3〕双击LinkButton控件,为其Click事件添加如下代码,从而完成设置当前考勤会议功能:

10.7会议出勤情况统计功能实现

会议出勤情况模块主要统计会议应到人数、实到人数、迟到人数、未到人数、请假人数等信息,并可以查询各种情况的详细人员名单,实现步骤如下:1〕在网站工程下的Admin文件夹下添加Query子文件夹,和回忆出勤情况统计功能相关的Web文件将存储在这里。2〕在Query子文件夹下添加名为MeetingStats.aspx的web窗体文件,并将窗体布局设置为如图10.43所示。3〕这里大量应用了自定义模板列,GridView控件代码如下所示:

4〕导出Excel功能主要通过生成HTML代码,将报表内容包含在<Table>…</Table>标签中,如下所示:键入代码5〕在GridView控件的RowCommand事件中添加如下代码,完成Excel导出功能:

6〕查看应到、实到、迟到、未到、请假明细功能界面和代码根本类似,主要通过访问数据库的不同视图来实现,以查看应到人数为例,对应的SQLDataSource控件代码为键入代码10.8用户登录功能实现

在完成了会议考勤后台管理的核心功能后,可以着手实现系统用户登录和权限控制等功能,将用户登录功能放在最后,是为了方便功能测试,提高开发效率。用户登录功能实现步骤如下:1〕在网站Admin文件夹下新建名为“Admin_Login.aspx〞的Web窗体文件,并将界面设计为如图10.44所示:2〕登录模块后台代码如下:键入代码10.9用户权限管理功能实现

10.9.1用户信息添加模块用户信息添加模块实现步骤如下:1〕在网站工程下的Admin文件夹下添加User子文件夹,并在User子文件夹下添加名为“UserAdd.aspx〞的Web窗体,该窗体控件布局如图10.45所示。2〕本模块仍然通过网页参数兼顾添加与修改功能,其中添加功能代码如下:

3〕UserIsExit方法用来查看是否新增加的用户已经存在于数据库之中:键入代码4〕GetRightsSelect方法用来检查CheckBox控件的选中状态,用来组合权限控制字符串,代码如下:

5〕修改用户功能代码如下:

10.9.2用户信息浏览模块用户信息浏览模块功能与会议信息浏览功能类似,其界面如图10.46所示,读者可自行查看案例代码,完成该功能。10.9.3修改密码模块修改密码功能实现步骤如下:1〕在网站工程下的Admin\User文件夹下添加名为“ChangePd.aspx〞的Web窗体,该窗体控件布局如图10.47所示。2〕后台代码如下:

10.9.4权限控制权限控制功能可通过如下核心代码:键入代码

将该段代码添加到各个页面的protectedvoidPage_Load(objectsender,EventArgse)下即可,读者可自行完成,类似例子可以参考例如源文件下的“admin\user\userview.aspx.cs〞。权限控制还可通过配置web.config、实现HttpModules接口等方式实现,读者可查阅相关资料。10.10会议考勤情况显示功能

考勤情况显示功能实现步骤如下所示:1〕翻开网站根目录下的Default.aspx文件,从工具箱选择“ScriptManager〞、“UpdatePanel〞和“Timer〞三个AJAX控件,拖动到窗体布局页面上。2〕放至Label、Literal和HyperLink等控件,整个界面布局如图10.48所示:其中会议标题为Label控件,时间为Literal控件,人数数字信息为HyperLink控件,整个页面代码为:键入代码4〕后台代码为:键入代码5〕在AttendDetails下通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论