行政管理系统毕业设计范例_第1页
行政管理系统毕业设计范例_第2页
行政管理系统毕业设计范例_第3页
行政管理系统毕业设计范例_第4页
行政管理系统毕业设计范例_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

行政管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日摘要【摘要】当今社会飞速发展,行政管理在社会关系中显得非常的重要,然而,在很多的行政系统中,忽略了利用计算机软件来进行日常办公管理的这一关键环节,因此,造成管理上的混乱、工作效率低下等事件的发生,随着IT产业的发展,利用计算机软件代替手工办公的方式已经当今社会发展的必然趋势,因此,行政管理系统软件应运而生。【关键词】 企事业机关 行政管理 行政管理系统目录摘要1目录1引言11 系统分析21.1 需求分析21.2 可行性分析22 总体设计22.1 项目规划22.2 系统功能结构图33 详细设计33.1 数据模块设计33.2 主窗体设计43.3 会议记录93.4 一周工作安排123.5 报销费用管理153.6 编码查询19附录A 参考文献23附录B 数据表结构24附录C 文件架构图32引言行政管理系统涵盖会议、办公、机关事务处理、车辆、费用等行政管理内容以及人机结合的监督考评;建立事前预防(提示),事中监控,事后考评的机制,对行政管理权实施过程进行监控,全面推进行政管理工作的规范化、标准化、法制化和信息化。行政管理包括对企业内部会议的管理、办公管理、车辆信息及用车信息管理、企业消费费用、信息发布及通知、辅助功能等方面的全方位的管理。其中会议管理包括对会议室管理、会议通知和会议查询几部分;办公管理主要是对工作计划、工作日志和周工作安排进行系统的管理;车辆管理是对企业内部人员包括企业领导用车信息进行详细的记录;费用管理是对企业日常的消费费用进行管理,包括电话费用、报销费用和车辆费用支出管理。通过信息发布和辅助功能为企业员工在日常工作中提供便利,如发布会议通知、航班查询和编码查询等等。1 系统分析1.1 需求分析通过市场调查,要求本系统具有以下的功能:q 统一友好的操作界面,能保证系统的易用性。q 规范、完善的基础信息设置。q 灵活的报表打印功能。q 能够完成对企业会议、企业办公、企业车辆和费用信息的有效管理。q 全国各地的编码及航班查询。q 提供常用网址和手机归属地信息查询q 通过系统日志,详细记录修改记录的操作,提供追查的有力依据。q 完善的权限管理,增强系统的安全性。q 强大的数据备份及恢复功能,保证系统数据的安全性。q 可在不退出系统的同时更换操作员。1.2 可行性分析传统的行政管理工作可以说是千头万绪,纷繁复杂,工作人员面临着大量琐碎繁重的工作,行政管理系统从企业的实际需求出发,简单易用,系统界面友好美观,自定义功能强,权限管理可根据用户的角色来设置,实施简单快速,操作简单明了。基本适用于中小型企业的行政办公管理。2 总体设计2.1 项目规划行政管理系统规划系统功能模块如下:q 会议管理模块会议管理模块主要包括维护会议室信息、发送会议通知信息、记录会议内容、查询会议室信息和会议记录信息5个方面的内容。q 办公管理模块该模块主要由工作日志、记事本、工作计划和一周工作安排4部分组成。q 车辆管理模块车辆管理模块主要包括车辆登记、用车管理、驾驶人员登记、车辆信息查询、用车信息查询和车辆投保管理6部分。q 费用管理包括电话费用管理、报销费用管理和车辆费用支出管理3部分。q 辅助信息包括常用网址、航班查询、编码大全、国际电话代码和手机归属地查询5部分。q 系统管理包括查看日志、删除日志、用户管理、数据备份、数据恢复和系统数据清理6部分。2.2 系统功能结构图行政管理系统的功能结构图如图1所示。图1 行政管理系统功能结构图3 详细设计3.1 数据模块设计模块的作用是减少程序的代码量,提高应用程序代码的重用性和程序编码的可读性。在本系统中,将连接数据库的程序代码都集中放置在一个数据模块Mdl_Data中,在应用程序需要连接数据库时调用该模块,从而完成相应的数据操作、实现操纵数据的功能。在数据模块Mdl_Data中定义了连接字符串变量PublicStr、记录集对象、数据连接函数Cnn和1个全局函数main。在函数main中,提供了连接数据库的字符串,并将其赋值给全局变量PublicStr,提供数据连接。数据模块Mdl_Data中的事件代码如下:数据连接模块Public PublicStr As StringPublic AdoRs As New ADODB.Recordset 后添加一个记录集对象Public AdoRs1 As New ADODB.Recordset 后添加一个记录集对象Public AdoRs2 As New ADODB.Recordset 后添加一个记录集对象Public Function Cnn() As ADODB.Connection 定义连接字符串函数 Set Cnn = New ADODB.Connection Cnn.Open Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_ServiceEnd FunctionPublic Sub main() PublicStr = Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_Service frm_xtdl.Show 显示系统登录窗体End Sub3.2 主窗体设计主窗体界面是显示系统主要操作功能的面板,对于主窗体设计的基本要求是:窗体上的控件布局合理、界面美观大方,并且易于操作系统其他功能模块。在主窗体的菜单栏或者窗体中的树状列表中,可以控制其他功能模块的运行,并且根据登录操作员赋予相应的操作权限;在状态栏中,可以显示当前登录操作员、当前系统的日期时间、公司网址等信息。系统主窗体的运行结果如图2所示。图2 系统主窗体运行结果1窗体设计(1)在工程中新建1个窗体,将窗体的名称设置为“frm_Main”,BorderStyle属性设置为“0-None”,MaxButton的属性设置为“False”,并且通过窗体的Picture属性为窗体添加图片。(2)在菜单编辑器中为主窗体设置菜单,设置完成的菜单如图2所示。(3)在窗体上添加TreeView控件,由于该控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls6.0”列表项,单击【确定】按钮之后即可将TreeView控件添加到工具箱当中。(4)在窗体的TreeView控件上单击鼠标右键,在弹出的快捷菜单中选择“属性”项,然后在弹出的“属性页”对话框中设置TreeView控件的显示样式,如图3所示。图3 设置控件的显示样式(5)在窗体中添加1个StatusBar控件,由于StatusBar控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls6.0”列表项,单击【确定】按钮之后即可将StatusBar控件添加到工具箱当中。(6)利用StatusBar控件可以为主窗体设置状态栏。在StatusBar控件上单击鼠标右键选择“属性”项,在弹出的对话框中选择“窗格”选项卡,如图4所示,在图中单击【插入窗格】按钮,可以在StatusBar控件中添加窗格,同时可以设置添加后窗格的文本内容、工具栏提示文本内容和宽度等信息。如果想删除窗格,则通过“索引”旁边的箭头,选择要删除的窗格,然后单击【删除窗格】按钮即可删除。图4 设置状态栏中的窗格系统主窗体界面设计结果如图5所示。图5 系统主窗体的设计界面2代码设计通过单击系统主窗体当中的菜单项,可以控制系统中各个子窗体的运行。单击某个功能菜单项调用系统子窗体的代码如下:Private Sub BMDQ_Click() frm_bmcx.Show 1 编码大全End SubPrivate Sub BXFYGL_Click() frm_bxfy.Show 1 报销费用管理End SubPrivate Sub CKRZ_Click() frm_rz.Show 1 查看日志End SubPrivate Sub CLDJ_Click() frm_cldj.Show 1 车辆登记End SubPrivate Sub CLFYZC_Click() frm_clfyzc.Show 1 车辆费用支出管理End SubPrivate Sub CLTBXXGL_Click() frm_cltb.Show 1 车辆投保管理End SubPrivate Sub CLXXCX_Click() StrCx = 3 如果执行的是车辆信息查询,则标识变量的数值取值为3 Frm_Cx.Show 1End SubPrivate Sub CXDL_Click() Unload Me frm_xtdl.Show 重新登录End SubPrivate Sub CYWZ_Click() frm_wzcx.Show 1 常用网址End SubPrivate Sub DHFYGL_Click() frm_dhfy.Show 1 电话费用管理End SubPrivate Sub DJCX_Click() StrCx = 1 如果执行的是会议记录信息查询,则标识变量的数值取值为1 Frm_Cx.Show 1 会议记录信息查询End SubPrivate Sub GJDHDM_Click() frm_dhhmcx.Show 1 国际电话代码End SubPrivate Sub GYSGL_Click() frm_hysgl.Show 1 会议室管理End SubPrivate Sub GZJH_Click() frm_Gzjh.Show 1 工作计划End SubPrivate Sub GZRZ_Click() frm_Gzrz.Show 1 工作日志End SubPrivate Sub HBCX_Click() frm_hbcx.Show 1 航班查询End SubPrivate Sub HYDJ_Click() frm_hyjl.Show 1 会议记录End SubPrivate Sub HYSCX_Click() StrCx = 2 如果执行的是会议室信息查询,则标识变量的数值取值为2 Frm_Cx.Show 1 会议室信息查询End SubPrivate Sub HYTZ_Click() frm_hytz.Show 1 会议通知End SubPrivate Sub JSB_Click() frm_Jsb.Show 1 记事本End SubPrivate Sub JSHF_Click() 数据恢复Dim iTask As LongMsgBox 请您注意,为了确保数据安全,在进行数据恢复的同时需要关闭应用程序,请您在恢复数据完成之后重新运行应用程序, 64, 提示信息调用数据恢复可执行文件iTask = Shell(App.Path & Restore.exe, vbNormalFocus)End End SubPrivate Sub JSRYDJ_Click() frm_jsrydj.Show 1 驾驶人员登记End SubPrivate Sub MMXG_Click() frm_EditPas.Show 1End SubPrivate Sub SCRQ_Click() 删除日志Dim delDim Temp1 As StringOn Error Resume Next 错误处理语句del = MsgBox(确认要清除系统的日志信息吗?, 17, 提示信息) If del = vbOK Then Kill (App.Path & 系统日志.ini) Open (App.Path & 系统日志.ini) For Output As #1 Temp1 = 操作员姓名 日期时间 操作类型 Print #1, Temp1 Print #1, Close #1 MsgBox 日志清理成功完成!, , 提示信息 Else End IfEnd SubPrivate Sub SJBF_Click() frm_backup.Show 1 数据备份End SubPrivate Sub SJGSDCX_Click() frm_Sjgsd.Show 1 手机归属地查询End SubPrivate Sub TCXT_Click() End 退出系统End SubPrivate Sub UCXXCX_Click() StrCx = 4 用车信息查询 Frm_Cx.Show 1End SubPrivate Sub XTSJQL_Click() frm_sfyz.Show 1 数据清理End SubPrivate Sub YCGL_Click() frm_ycgl.Show 1 用车管理End SubPrivate Sub YGGL_Click() frm_systemer.Show 1 用户管理End SubPrivate Sub YZGZAP_Click() frm_gzap.Show 1 一周工作安排End Sub在窗体启动时,通过用户自定义一个函数Tree_change,在窗体的TreeView控件中显示数据。在Tree_change函数中通过Ado对象读取数据表中的数据,然后再利用TreeView控件Nodes集合中的Add方法将数据添加到TreeView控件当中,在添加数据时同时也用到了Do While语句。Tree_change函数的代码如下:Public Sub Tree_change() Dim Key, Text, BH, StrTemp As String Dim Nod As Node 定义一个节点变量 AdoRs.Open select * from tb_zcd, Cnn, adOpenKeyset If AdoRs.RecordCount 0 Then AdoRs.MoveFirst Do While AdoRs.EOF = False 循环读取第1层节点中的数据信息 Key = Trim(AdoRs.Fields(主菜单名称) Text = AdoRs.Fields(主菜单名称) StrTemp = AdoRs.Fields(主菜单名称) 给第1层节点赋与数值 Set Node1 = TreeView1.Nodes.Add(, tvwChild, Key, Text, 0) AdoRs1.Open select * from tb_zcd_zcd where 主菜单名称= + StrTemp + , Cnn,adOpenKeyset If AdoRs1.RecordCount 0 Then AdoRs1.MoveFirst Do While AdoRs1.EOF = False 循环读取第2层节点中的数据信息 Key = Trim(AdoRs1.Fields(子菜单名称) Text = AdoRs1.Fields(子菜单名称) Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, Key, Text, 0) 给第2层节点赋与数值 AdoRs1.MoveNext Loop End If AdoRs1.Close AdoRs.MoveNext 将数据记录移向下一条 Loop End If AdoRs.Close 关闭记录集对象End Sub3.3 会议记录会议记录主要是记录公司举行重大会议的内容、时间等信息。在会议记录窗体中可以通过工具栏中的【添加】、【删除】、【修改】和【保存】按钮维护会议记录信息,还可以通过单击数据网格中的数据记录,在窗体上浏览已经记录过的会议记录信息,如果会议记录被修改过,则在浏览数据记录信息时,在窗体的下面还将显示记录修改的日期和修改人姓名。会议记录模块的运行结果如图6所示。图6 会议记录模块运行结果1窗体设计(1)在工程中新建1个窗体,将窗体的名称设置为“frm_hyjl”,BorderStyle属性设置为“0-None”,MaxButton的属性设置为“False”。(2)在窗体上添加1个Toolbar控件和1个ImageList控件。(3)为窗体制作如图7所示的工具栏。(4)在窗体上添加1个文本框控件数组,数组中包含有8个文本框控件。(5)在窗体上添加1个DTPicker控件,名称命名为DT1,用于输入或显示会议进行的时间。由于DTPicker控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls2.6”列表项,单击【确定】按钮之后即可将DTPicker控件添加到工具箱当中。(6)在窗体上添加1个CommandButton控件,并将其名称修改为“Cmd_Select”,Caption属性修改为“”,如图7所示。(7)在窗体上添加1个Ado控件和1个DataGrid控件,将DataGrid控件的BackColor属性值设置为“&H&”,DataSource属性设置为“Adodc1”,AllowUpdate属性设置为“False”。(8)在窗体上添加2个Line控件,并将其BorderColor属性值设置为“&H&”,同时将这2个控件按照如图11所示的样式放置。(9)在窗体上添加2个文本框控件,分别命名为“Txt_Date”和“Txt_xgr”,用于显示修改记录的时间和记录修改人的姓名。会议记录窗体的设计结果如图7所示。图7 会议记录窗体设计结果2代码设计当窗体启动时,如果数据库中存在记录信息,则在窗体的文本框中显示数据库中的第一条记录,同时锁定文本框,禁止输入数据信息。通过Ado控件的ConnectionString属性连接到数据库,然后再调用DBGCon函数,重新给DataGrid控件的列标题赋值。窗体启动时的事件代码如下:Private Sub Form_Load() DT1.Value = Date 使日期控件中显示当前系统的日期时间 Call LoadFile 调用过程,在窗体文本框中显示数据 For i = 1 To 7 Text1(i).Locked = True Next i Adodc2.ConnectionString = PublicStr 连接数据库 Adodc2.RecordSource = select * from 会议记录 order by 编号 Adodc2.Refresh Call DBGCon Call Tbr_cortrol(Tbr_xxcz, True)End Sub在窗体的文本框中按下键盘上的Enter键或、方向箭头键时,光标将按照文本框的次序依次移动。在文本框控件的键盘按下事件(KeyDown)中通过限制索引Index值和键盘代码值能够控制光标移动的顺序,实现的代码如下:Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) On Error Resume Next 执行错误处理 If KeyCode = 13 Then If Index = 1 Then 如果在索引值为1的文本框中按下回车键,光标将落在日期控件当中 DT1.SetFocus Exit Sub 退出当前过程 ElseIf Index = 2 Then Call Cmd_Select_Click Exit Sub End If End If If Index = 0 And KeyCode = 40 Then Text1(Index + 1).SetFocus If Index = 0 And KeyCode = 13 Then Text1(Index + 1).SetFocus If Index = 7 And KeyCode = 13 Then Call Saves 调用保存按钮事件 End IfEnd Sub单击选中数据网格中的记录,可以使所选中的记录显示在窗体的文本框当中。设计思路为:将Ado数据集结果反绑定到文本框,名称为Dgr_Sjll的DataGrid控件代码如下:Private Sub Dgr_Sjll_Click() On Error Resume Next 执行错误处理 If Adodc2.Recordset.RecordCount 0 Then 判断该记录是否存在 Text1(0).Text = Adodc2.Recordset.Fields(0) Text1(1).Text = Adodc2.Recordset.Fields(1) Text1(2).Text = Adodc2.Recordset.Fields(3) Text1(3).Text = Adodc2.Recordset.Fields(4) DT1.Value = Adodc2.Recordset.Fields(2) Text1(4).Text = Adodc2.Recordset.Fields(5) Text1(5).Text = Adodc2.Recordset.Fields(6) Text1(6).Text = Adodc2.Recordset.Fields(7) Text1(7).Text = Adodc2.Recordset.Fields(8) Txt_Date.Text = Adodc2.Recordset.Fields(9) Txt_lxr.Text = Adodc2.Recordset.Fields(10) End If For i = 0 To 7 重新锁定文本框,禁止输入数据信息 Text1(i).Locked = False Next iEnd Sub3.4 一周工作安排一年共有52周,那么在周工作安排中通过选择年和年的第几周(052周),可以维护或查看所选择年中的所选择周的工作安排信息。利用MSHFlexGrid控件和文本框控件相结合的方法可以实现该项功能。一周工作安排模块的运行结果如图8所示。图8 一周工作安排模块的运行结果1窗体设计(1)在工程中添加1个窗体,将该窗体命名为“frm_gzap”,BorderStyle属性设置为“0-None”,MaxButton的属性设置为“False”。(2)在窗体上添加2个ComboBox控件,如图9所示。(3)在窗体上添加1个MSHFlexGrid控件,将其名称命名为“MSH1”。(4)在窗体上添加3个CommandButton控件,分别将其名称命名为“Cmd_Save”、“Cmd_Add”、“Cmd_exit”,Caption属性设置为“保存”、“添加”和“退出”。(5)在窗体上添加1个标签控件,用于显示当前所选择的年及周的日期段信息。一周工作安排窗体的设计结果如图9所示。图9 一周工作安排窗体的设计结果2代码设计在窗体启动时,设置MSHFlexGrid控件在窗体上显示的行数和列数,同时设置在控件中显示的行标题和列标题,窗体启动时的事件代码如下:Private Sub Form_Load() Dim StrWeek As String For i = 1 To 52 StrWeek = 第 & i & 周 Combo1.AddItem (StrWeek) Next i MSH1.Rows = 3 MSH1.Cols = 6 MSH1.ColHeaderCaption(0, 0) = 星期一 MSH1.ColWidth(0) = 500 For i = 1 To 5 MSH1.ColWidth(i) = 1850 MSH1.ColAlignment(i) = 4 居中对齐 Next i MSH1.RowHeight(0) = 500 限定控件第1行的高度 MSH1.RowHeight(1) = 1800 限定控件第2行的高度 MSH1.RowHeight(2) = 1800 限定控件第3行的高度 MSH1.TextMatrix(0, 1) = 星期一 MSH1.TextMatrix(0, 2) = 星期二 MSH1.TextMatrix(0, 3) = 星期三 MSH1.TextMatrix(0, 4) = 星期四 MSH1.TextMatrix(0, 5) = 星期五 MSH1.TextMatrix(1, 0) = 上午 MSH1.TextMatrix(2, 0) = 下午 Text1.Width = MSH1.CellWidth - 50 Text1.Height = MSH1.CellHeight - 50 Text1.Left = MSH1.Left + MSH1.CellLeft Text1.Top = MSH1.Top + MSH1.CellTopEnd Sub单击MSHFlexGrid控件中的单元格,可以限定辅助文本框的大小及显示位置,使文本框高度、宽度及位置与选中MSHFlexGrid控件单元格的大小及位置相同,实现的代码如下:Private Sub MSH1_Click() Text1.Width = MSH1.CellWidth 50 限定文本框的宽度 Text1.Height = MSH1.CellHeight 50 限定文本框的高度 Text1.Left = MSH1.Left + MSH1.CellLeft 限定文本框距窗体左端的距离 Text1.Top = MSH1.Top + MSH1.CellTop 限定文本框距窗体顶端的距离 Text1.Visible = True Text1.SetFocusEnd Sub在选择第几周(一年共有52周)时,如果已经维护了工作安排,则在MSHFlexGrid控件中的单元格中将显示已经维护的工作安排的内容,同时将文本框的Visible属性设置为False,使文本框不可见,代码如下:Private Sub Combo1_Change() AdoRs.Open select * from 一周工作安排 where 第几周= + Combo1.Text + and 年份= + Combo2.Text + , Cnn, adOpenKeyset If AdoRs.RecordCount 0 Then MSH1.TextMatrix(1, 1) = AdoRs.Fields(周一上午) MSH1.TextMatrix(2, 1) = AdoRs.Fields(周一下午) MSH1.TextMatrix(1, 2) = AdoRs.Fields(周二上午) MSH1.TextMatrix(2, 2) = AdoRs.Fields(周二下午) MSH1.TextMatrix(1, 3) = AdoRs.Fields(周三上午) MSH1.TextMatrix(2, 3) = AdoRs.Fields(周三下午) MSH1.TextMatrix(1, 4) = AdoRs.Fields(周四上午) MSH1.TextMatrix(2, 4) = AdoRs.Fields(周四下午) MSH1.TextMatrix(1, 5) = AdoRs.Fields(周五上午) MSH1.TextMatrix(2, 5) = AdoRs.Fields(周五下午) Label1.Caption = AdoRs.Fields(时间段) Text1.Visible = False 将文本框设置为不可见状态 End If AdoRs.Close 关闭记录集对象End Sub单击【保存】按钮将通过SQL语句保存维护的工作安排信息,实现的代码如下:Private Sub Cmd_Save_Click() MSH1.TextMatrix(2, 5) = Text1.Text If Combo1.Text = Then MsgBox 请选择录入工作安排的周数, 48, 提示信息 Else c = MsgBox(确认保存信息吗, 33, 提示信息) If c = vbOK Then 如果选择的是“确定”按钮,则保存信息 Set AdoRs = Cnn.Execute(UPDATE 一周工作安排 SET 周一上午 = & MSH1.TextMatrix(1, 1) & ,周一下午=& MSH1.TextMatrix(2, 1) & ,周二上午= & MSH1.TextMatrix(1, 2) &,周二下午= & MSH1.TextMatrix(2, 2)& ,周三上午= & MSH1.TextMatrix(1, 3) & ,周三下午= & MSH1.TextMatrix(2, 3) & ,周四上午=& MSH1.TextMatrix(1, 4) & ,周四下午= & MSH1.TextMatrix(2, 4) & ,周五上午= & MSH1.TextMatrix(1, 5)& ,周五下午= & MSH1.TextMatrix(2, 5) & where 第几周= + Combo1.Text + ) MsgBox 数据保存成功, 64, 提示信息 End If End IfEnd Sub3.5 报销费用管理费用报销是企业运营过程中必不可少的一个环节。在填写完报销单的时候,要经过审核该报销单据才有效。审核的操作过程为:在窗体左侧的部门列表中选择某一部门之后,然后在右侧的数据控件中选择该部门中具体报销的单据,此时在窗体的文本框中即可显示该报销单据的信息,在审核人旁边的文本框中输入审核人姓名之后,单击【审核】按钮审核信息。除了审核信息之外,在窗体中还可以按照部门打印出每个部门的报销费用信息,在部门列表中选择某一个部门之后,此时工具栏中的【打印】按钮变为可用状态,单击【打印】按钮即可打印出该部门的报销单据信息。报销费用管理模块的运行结果如图10所示。图10 报销费用管理模块运行结果打印部门报销费用信息的报表界面运行结果如图11所示。图11 打印部门报销费用信息的报表界面运行结果1窗体设计(1)在工程中新建1个窗体,将窗体的名称设置为“frm_bxfy”,BorderStyle属性设置为“0-None”,MaxButton的属性设置为“False”。(2)在窗体上添加1个Toolbar控件及1个ImageList控件。(3)为窗体制作如图12所示的工具栏。(4)在窗体上添加2个ComboBox控件,分别命名为“Cbx_lx”和“Cbx_bm”,用于记录费用类型和部门信息,同时将这2个控件的Style属性都设置为“0”。(5)窗体上添加1个DTPicker控件,命名为DT,用于显示和输入报销费用的时间。(6)在窗体上添加1个文本框控件数组,数组中包含有5个文本框控件。(7)在窗体上添加1个Ado控件和1个DataGrid控件,将DataSource属性设置为“Adodc1”,AllowUpdate属性设置为“False”。(8)在窗体上添加1个Line控件,并将其BorderColor属性值设置为“&H&”。(9)在窗体上添加1个ListView控件,ListView控件属于ActiveX控件,在使用之前必须从“部件”对话框中添加到工具箱。添加方法如下:在“工程”/“部件”对话框中勾选“Microsoft Windows Common Controls6.0”列表项,单击【确定】按钮之后即可将ListView控件添加到工具箱当中。(10)在窗体上添加1个标签控件默认为Label9,用于显示统计出来的报销费用的金额。报销费用管理窗体的设计结果如图12所示。图12 报销费用管理窗体的设计结果2代码设计ADO对象和控件连接到数据库,同时调用Tj过程统计报销费用的金额,调用RefreshData事件,来实现刷新ListView控件中数据内容。窗体启动时的代码如下:Private Sub Form_Load() Call LoadFile DT1.Value = Date 将报销费用的时间设置为当前系统的日期时间 Adodc1.ConnectionString = PublicStr Adodc1.RecordSource = select * from 报销费用管理 order by ID Adodc1.Refresh Call Tj 统计费用金额 Call RefreshData Call Tbr_cortrol(Tbr_xxcz, True) Tbr_xxcz.Buttons(12).Enabled = False Tbr_xxcz.Buttons(9).Enabled = FalseEnd Sub在Tj过程当中,通过sum函数统计报销费用的总金额。用户自定义Tj事件的过程代码如下:Private Sub Tj() AdoRs.Open select sum(金额) from 报销费用管理 , Cnn, adOpenKeyset If AdoRs.RecordCount 0 Then Label9.Left = 5300 Label9.Caption = 报销费用总计金额为 & AdoRs.Fields(0) & 元 End If AdoRs.Close End Sub在RefreshData过程当中,首先将ListView控件中的内容清空,然后在通过Do While循环将部门名称信息添加到ListView控件当中。用户自定义RefreshData过程代码如下:Private Sub RefreshData() AdoRs.Open select distinct 部门 from 报销费用管理, Cnn, adOpenKeyset If AdoRs.RecordCount 0 Then AdoRs.MoveFirst ListView1.ListItems.Clear ListView1.Enabled = True AdoRs.MoveFirst Do While AdoRs.EOF = False Key = AdoRs.Fields(部门) Set itmX = ListView1.ListItems.Add(, , Key, 1) AdoRs.MoveNext Loop Else ListView1.Enabled = False 如果当前数据表中没有部门信息,则将ListView设置为不可用的状态 End If AdoRs.CloseEnd Sub单击ListView控件列表中的部门信息,在数据网格和窗体中的文本框控件中将显示该部门中的数据信息,实现的代码如下:Private Sub L

温馨提示

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

评论

0/150

提交评论