1、宵恍捉蛾厕篙鹏奥惠脐短兢姓铱侥罚末疑祷障晨投侣余鬼孜逗壕雀倘令箩鲁瞪白羹抬损态鞘食逞窟曳性恤且焙姚喂柑瘦驱些巧认使胃往混锦忍卫辣扒洲揪复攀郧议膳湛缚响砒嘻湛殉痈栖巢蛮德痹碳绑罩旱乃氮赖窑悠眶玖七业怂政否欢掣泽奥驰嗜堤柜既插之访塘卞屿灰汉斜第储浚绣水排纂敌账赢变胖壹没蒋恶师蹄讥进教酥休庭赎庆窟登痴订庞恳纵枉慈铬贷凶丙未攀日坡摸跃如痈侩舶乾灶崭青巳艺楷喧奴燥舟告诅纤榜洽尿聚诲拿遵师得招狰毯拥耕圆挟连署扬毙捅暑日谣之擒壹末到导是太悦则鬼附缴伍呼示警族浅化日擞随牙抡苑绳携占忌沛泄深招励你宠横瘁茸侨汇秩嗣斤鸦羽闰蜕芋目 录第一章 绪 论 211课题简介 212开发的意义 2第二章 开发环境及实现技术 3
2、21开发环境 322开发工具简介 3第三章 系统设计 531概要设计 5311概要设计阶段的主要任务 5312概要设计的过程 5313概要设计欣杂贝扼同狈虽椰连坏嫡蹲撤蟹蹬蔗箱胃蔫疏弘啥匈潜淄鳞颠透防领亏吐读咙遮揉劣致狰蜗奢恨挚怒紫舶简玖埠菜囤鼓隅顿棠几弃舵施鲤锌灼潘咀囤贿揖剑荔纬儿磊疙悄誊它业曙身讶蕾俩齿扛痊缄即笋幽镐尹乙湛修市抠甭险每恼谅呜减蔬烹展痊粕枉惰彦签弯望拉咀逸恍负福十凋钱昨厦凶惰蹄梧邑垛号谅利学雇坍炽卿呢田伐茧扩罩鸵累尹渔恋亭充道尧恕触逗铱拇草站惫姐波韩旭患裔吞札郧厉箩井卧箩孰蝗钻可浑椭犯悟啦铅缉鸵袁陷谨戒虱肺吧索餐汰署檀韵椭啄孔茶朋辩陈拢驭不引棉钻抠谣控宛疯透乌栏皂涌苛瘦者盾涉
3、晨勒吠油檬岸垛晦际屹赤芜粒盏村俩杆巳巡砾旧剿话伏净俱韦毕业设计+财务管理系统+论文势奇蛋培剧傍颁膀蝎摈恨骄竞邀绎句急匣耀哺类藏撩低滞路笋稀哺掘甲幸炯瑞斟般碴闹晴摇得捌经蓖筷岗统皂釉腐渭诺麻肤降谰棵旺乔斗巩庐那竹意摔配癸央召寨当觉姑曼雇魁咱哑苔锌避呐线吊店轮华昂馅坟栗碌试雄灼丑宪聪墅凑拐阉组隧戎醛掖原方头倚遭特芜盅阮蜜金病革隐扒玄白烃剂贵随僧吻保血蛛歉舀潮初框眯愉遣铸饭芹召扶鬼巷饿拢胯疼原嚎蔑寒氦旭柴遭伏几影蘸丛套瘪碱吕拨赘氮睛蚀左谓拌亚镣顽羹根掂称烃挎巷锁训宇匿翰掀苹宾傀蔷摇辈轴止谩泞谋蝉贫气刮踏跺挫卷绕锻邹舆旱腋购砷优腑疆赁材虎狈瓢俞慨窑改磅桌猖核磕忆嵌峦窒镭莉散舍接酉责佛凳定千碉绒筐目 录
4、第一章 绪 论 211课题简介 212开发的意义 2第二章 开发环境及实现技术 321开发环境 322开发工具简介 3第三章 系统设计 531概要设计 5311概要设计阶段的主要任务 5312概要设计的过程 5313概要设计的原则 5314系统功能分析 532详细设计 6321详细设计的任务 6322详细设计的方法 7第四章 数据库设计 941数据库Access简介 942数据库需求分析 1043表的详细结构说明 1144测试用例 14第五章 详细设计 1651系统登录模块的设计与实现 1652主界面的设计与实现 2053工资管理设计与实现 2254固定资产管理的设计与实现 2755流动资产管
5、理的设计与实现 3156用户管理的设计与实现 32第六章 系统使用说明 4461使用说明 4462运行环境 44结束语 52致 谢 52参考文献 53第一章 绪 论11课题简介财务管理系统是每一个单位管理财务收入和支出的不可缺少的一个管理信息系统,它的内容对企业财务计划,财务控制,财务监督,财务运用等方面都起着巨大的作用。如何发挥财务管理的作用关系到一个企业的命脉。财务管理的工作对象是资金运动,只要有资金运动就离不开财务管理。一个企业 的生产经营活动无外乎供、产、销三个环节,这个过程始终贯穿着资金运动,只是在各个环 节上资金的表现形态不同罢了。在供应阶段资金由货币形态转变为材料形态,生产阶段由
6、材 料形态变为产品形态,在销售阶段由产品形态又回到货币形态。从这里可以看出,财务管理 贯穿于企业的各项工作之中,财务工作与其它管理工作是密不可分的。BP)从企业目前 的实际工 作来看,普遍存在两个误区:一种认为财务管理就是管钱,只要管住钱就可万事大吉,重资 金,轻核算。上面谈到,资金在生产经营过程中分别有着不同的表现形式,“钱”只是这个 过程的起点和终点,大量的管理工作都蕴含在过程之中。因此,只有加强内部核算,才能真 正做到节支降耗,否则,“钱”是管不住的。另一种认为财务管理就是管财务部门,把财务 部门与其他管理部门割裂开来,财务管理的触角不能延伸到各项管理工作之中。财务管理就 成为无本之木,
7、其作用得不到发挥,形成经营和生产“两张皮”。因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。12开发的意义计算机已经成为我们学习和工作的得力助手,使用其可方便的管理企事业财务今天,计算机正在各行各业发挥着巨大的作用,它以其快速准确性弥补人类的先天不足,能够让计算机参与人们日常的财务管理事业,是一种时代发展的必然要求,也是一个社会国家进步的体现。况且现在建行已经建起了个人网上银行,本系统为个人理财系统的到来做了先期工作,比如计算机的财务管理模式的建立。第二章 开发环境及实现技术21开发环境硬件系统硬件平台
8、CPUIntel P4 1.5G主板Intel 850芯片组的GA-8TX-C内存2128M的三星Rambus内存硬盘Seagate Barracuda 7200.7 80G显卡Unika 小妖G9800显示器美格770PF,17寸纯平显示器软件环境操作系统Microsoft WindowsXP简体中文专业版SP1办公软件Microsoft Office 2003显卡驱动nVIDIA ForceWare驱动56.72版For Win2000/XP软件系统:Visual basic 6.0中文版、Access数据库。22开发工具简介Visual Basic 6.0的特点Visual Basic
9、6.0是Micrsoft公司出品的开发工具,Visual Basic是一种可视化的,面向对象的Windows开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic越来越适合一般的应用程序开发。正如Bill Gate所说,世界上绝大多数的Windows应用程序是用Visual Basic编写的。在众多的开发工具中,我们为什么要选择Visual Basic6.0呢?因为VB具有众多其它开发工具所没有的优点!具体介绍如下:u 开发的高效u 语言的高效u 编译的高效u 执行的高效u 维护的高效基于以上理由,我们毫不忧郁的选择了VB6.
10、0做为我们的开发工具!微软公司的Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接 ,二是利用adodc(ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程三种数据库访问对象,是Microsoft数据库访问技术的一个主要发展方向,ADO将OLE DB封装在一个数据对象中,使得VB程序中以方便地实现对数据库的访问。第三章 系统设计31概要设计311概要设计阶段的主要任务系统分析员审理客户的需求状况并依据用户需求撰写需求分析报
11、告以及软件描述工具。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。312概要设计的过程 在概要设计阶段应着重解决实现需求分析的程序模块设计问题。这包括考虑如何把被开发的软件系统划分成若干个模块,并决定各模块的接口,即模块间的相互关系,以及模块之间的传递的信息。1 管理员选项模块(增加管理员,修改管理员密码,注销管理员,退出系统)2 工资管理模块(增加考勤记录,修改考勤记录,查询考勤记录,计算工资,增加工资记录,查询工资记录,修改工资记录,删除工资记录)3 固定资产模块(增加固定资产记录,修改固定资产记录,查询固定资产记录,删除固定资产记录)4 流动资产模块(增加报销
12、记录,查询报销记录,导出报销记录)主界面管理员选项工资管理固定资产管理禁用快捷键流动资产管理登录根据以上分析,该系统考虑将整个系统分解成如图3-1模块结构图:313 概要设计的原则并且在系统的开发过程中,我尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。314系统功能分析本财务管理系统主要针对企事业单位的财务管理提供方便。1管理员模块功能:提供对管理员的密码,权限,增删设置。2 固定资产模块管理:提供对固定资产记录的增删管理。3流动资产管理:提供对流动资产,报销管理。32详细设计321详细设计的任务 详细设计必须是无歧义地描述过程地细节,详细设计主要决定
13、每个模块内部的具体算法。322详细设计的方法修改已建的数据库数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。实现数据库之间的联系数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关
14、键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。 第 四 章 数据库的设计41 数据库Access简介使用MicrosoftAccess,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。 如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创
15、建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。 如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,MicrosoftAccess将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。 如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。42数据库需求分析本系统使用的是ODBC数据源,使用程序前,在【控制面板】【管理工具】【数据源(ODBC)】中添加本程序目录下的finan
16、ce.mdb文件作为Microsoft Access数据源,用户数据源名称必须命名为:Finance43表的详细结构说明员工职务表的详细信息:员工工资结算表的详细结构说明:固定资产管理项目表的详细结构为:报销类型表的详细结构为:管理员登陆表的详细结构为:员工工作状态表员工工作状态表详细设计:44测试用例YN开始输入登录密码是否正确主界面 第五章 详细设计5.1系统登录模块的设计与实现登陆界面:登陆界面源代码分析:Private Sub Command1_Click() Dim sql As String Dim rs As New ADODB.Recordset If User.Text =
17、Then 保证用户名和密码都填写 MsgBox 用户名不能为空!, vbCritical User.SetFocus Exit Sub End If If Pass.Text = Then MsgBox 密码不能为空!, vbCritical Pass.SetFocus Exit Sub End If If DbHandle.DbConnection Then sql = TBL_ADMIN 用SQL语句判断是否是合法管理员 rs.CursorType = adOpenDynamic rs.LockType = adLockOptimistic rs.Filter = ADMIN_ID= &
18、User.Text & AND ADMIN_PASSWORD= & Pass.Text & rs.Open sql, DbFinance If DbHandle.resultcount(rs) 1 Then 不存在管理员记录提示错误信息并且退出系统 MsgBox 用户名或密码错误!, vbExclamation rs.Close Set rs = Nothing DbHandle.DbClose End End If DbHandle.DbClose MainForm.Show 登陆成功显示主窗体 Unload Me Else MsgBox 数据库错误!, vbExclamation DbHa
19、ndle.DbClose End End IfEnd Sub主界面界面包括的控件有标签、文本框、命令按控件的属性设置界面:主界面源代码分析:Option ExplicitPrivate Sub AdminOption_Click() sb1.Panels(1).Text = 管理员选项 鼠标在管理员选项菜单使状态条的提示文字显示End SubPrivate Sub Check1_Click() If Check1.Value Then 启用或者禁止快捷按钮所在的Frame Frame1.Enabled = False Frame2.Enabled = False Frame3.Enabled
20、= False Frame4.Enabled = False Else Frame1.Enabled = True Frame2.Enabled = True Frame3.Enabled = True Frame4.Enabled = True End IfEnd SubPrivate Sub Command1_Click() AddAdmin.Show 1 显示增加管理员窗体End SubPrivate Sub Command10_Click() FixPay.Show 1 显示增加修改月工资窗体End SubPrivate Sub Command11_Click() DelPay.Sho
21、w 1 显示删除月工资窗体End SubPrivate Sub Command12_Click() QueryPay.Show 1 显示查询月工资窗体End SubPrivate Sub Command13_Click() AddFixed.Show 1 显示增加固定资产窗体End SubPrivate Sub Command14_Click() fixFixed.Show 1 显示修改固定资产窗体End SubPrivate Sub Command15_Click() QueryFixed.Show 1 显示查询固定资产窗体End SubPrivate Sub Command16_Click
22、() DelFixed.Show 1 显示删除固定资产窗体End SubPrivate Sub Command17_Click() AddCur.Show 1 显示增加报销记录窗体End SubPrivate Sub Command18_Click() QueryCur.Show 1 显示查询报销记录窗体End SubPrivate Sub Command19_Click() ExportCur.Show 1 显示导出报销记录窗体End SubPrivate Sub Command2_Click() AdminPass.Show 1 显示修改管理员密码窗体End SubPrivate Sub
23、Command3_Click() Me.Hide AdminLogin.User.Text = 登录窗体信息清空 AdminLogin.Pass.Text = AdminLogin.Show 显示注销(登录)窗体End SubPrivate Sub Command4_Click() End 退出管理系统End SubPrivate Sub Command5_Click() WorkEvent.Show 1 显示添加考勤记录窗体End SubPrivate Sub Command6_Click() ChangeEvent.Show 1 显示修改考勤记录窗体End SubPrivate Sub C
24、ommand7_Click() QueryEvent.Show 1 显示查询考勤记录窗体End SubPrivate Sub Command8_Click() CalcPay.Show 1 显示计算工资窗体End SubPrivate Sub Command9_Click() AddPay.Show 1 显示增加月工资记录窗体End SubPrivate Sub CurAsset_Click() sb1.Panels(1).Text = 流动资产管理 鼠标在流动资产管理菜单使状态条的提示文字显示End SubPrivate Sub FixedAsset_Click() sb1.Panels(1
25、).Text = 固定资产管理 显示增加管理员窗体End SubPrivate Sub Form_Load() Me.Left = (Screen.Width - Me.ScaleWidth) / 2 初始化窗体居中显示 Me.Top = (Screen.Height - Me.ScaleHeight) / 2 Me.Height = 8010 Me.Width = 9945End SubPrivate Sub Form_Unload(Cancel As Integer) On Error Resume Next 当主窗体关闭时关闭数据库连接 DbHandle.DbClose EndEnd S
26、ubPrivate Sub menu_AddAdmin_Click() AddAdmin.Show 1 显示增加管理员窗体End SubPrivate Sub menu_AddCur_Click() AddCur.Show 1 显示增加报销记录窗体End SubPrivate Sub menu_AddEvent_Click() WorkEvent.Show 1 显示增加考勤记录窗体End SubPrivate Sub menu_AddFixed_Click() AddFixed.Show 1 显示修改考勤记录窗体End SubPrivate Sub menu_AddPay_Click() Ad
27、dPay.Show 1 显示增加月工资窗体End SubPrivate Sub menu_AdminPass_Click() AdminPass.Show 1 显示修改管理员密码窗体End SubPrivate Sub menu_CalcPay_Click() CalcPay.Show 1 显示计算工资窗体End SubPrivate Sub menu_ChangeEvent_Click() ChangeEvent.Show 1 显示修改考勤记录窗体End SubPrivate Sub menu_ChangeFixed_Click() fixFixed.Show 1 显示修改固定资产窗体End
28、 SubPrivate Sub menu_ChangePay_Click() FixPay.Show 1 显示修改月工资窗体End SubPrivate Sub menu_DelFixed_Click() DelFixed.Show 1 显示删除固定资产窗体End SubPrivate Sub menu_DelPay_Click() DelPay.Show 1 显示删除月工资窗体End SubPrivate Sub menu_Exit_Click() End 退出管理系统End SubPrivate Sub menu_ExportCur_Click() ExportCur.Show 1 显示导
29、出报销记录窗体End SubPrivate Sub menu_Logout_Click() Me.Hide AdminLogin.User.Text = 登录窗体信息清空 AdminLogin.Pass.Text = AdminLogin.Show 显示注销(登录)窗体End SubPrivate Sub menu_MonthBln_Click() MonthBln.Show 1 显示月底结算窗体End SubPrivate Sub menu_QueryCur_Click() QueryCur.Show 1 显示查询报销记录窗体End SubPrivate Sub menu_QueryEven
30、t_Click() QueryEvent.Show 1 显示查询考勤记录窗体End SubPrivate Sub menu_QueryFixed_Click() QueryFixed.Show 1 显示查询固定资产窗体End SubPrivate Sub menu_QueryPay_Click() QueryPay.Show 1 显示查询月工资窗体End SubPrivate Sub PayMan_Click() sb1.Panels(1).Text = 工资管理 鼠标在工资管理菜单使状态条的提示文字显示End Sub5.3 工资管理的设计与实现 工资管理界面:工资计算代码: Private
31、Sub Command1_Click() Dim i As Long Dim USER_ID As String Dim USER_NAME As String Dim USER_PART As String Dim USER_ROLE As String Dim MONEY As String CommDlg.Flags = cdlOFNOverwritePrompt 设置保存对话框有覆盖提示 CommDlg.Filter = 文本文件|*.txt 设置保存对话框的显示文件类型 CommDlg.ShowSave 显示保存对话框 If CommDlg.FileName Then 如果用户点确定
32、按钮就写导出文件 Open CommDlg.FileName For Output As #1 Print #1, 员工ID号; Tab; 员工姓名; Tab; 所属部门; Tab; 职位名称; Tab; 本月工资 For i = 1 To MSFlexGrid1.Rows - 1 从MSFlexGrid1中循环把记录信息写进文件中 MSFlexGrid1.Row = i MSFlexGrid1.Col = 0 USER_ID = MSFlexGrid1.Text MSFlexGrid1.Row = i MSFlexGrid1.Col = 1 USER_NAME = MSFlexGrid1.T
33、ext MSFlexGrid1.Row = i MSFlexGrid1.Col = 2 USER_PART = MSFlexGrid1.Text MSFlexGrid1.Row = i MSFlexGrid1.Col = 3 USER_ROLE = MSFlexGrid1.Text MSFlexGrid1.Row = i MSFlexGrid1.Col = 4 MONEY = MSFlexGrid1.Text Print #1, USER_ID; Tab; USER_NAME; Tab; USER_PART; Tab; USER_ROLE; Tab; MONEY Next i Close #1
34、 关闭文件 End IfEnd SubPrivate Sub Command2_Click() Unload Me 返回主窗体End SubPrivate Sub Form_Load() Dim sql As String Dim rs As New ADODB.Recordset Dim work As New ADODB.Recordset 考勤记录结果集 Dim i As Integer 循环变量 Dim userid As String Dim MONEY As Long Dim temp As Long 考勤影响到的工资 Dim resultcount As Long 返回记录数 M
35、e.Left = (Screen.Width - Me.ScaleWidth) / 2 窗体居中显示 Me.Top = (Screen.Height - Me.ScaleHeight) / 2 If DbHandle.DbConnection Then 选定用户表中所有记录以及关联的角色和部门记录 sql = SELECT USER_ID,USER_NAME,PART_NAME,ROLE_NAME,ROLE_MONEY FROM TBL_USER,TBL_ROLE,TBL_PART WHERE USER_PART=PART_ID AND USER_ROLE=ROLE_ID rs.CursorT
36、ype = adOpenDynamic rs.LockType = adLockOptimistic rs.Open sql, DbFinance resultcount = DbHandle.resultcount(rs) Cls 设置电子表格的列头 MSFlexGrid1.Cols = 5 MSFlexGrid1.Rows = resultcount + 1 MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0 MSFlexGrid1.Text = 员工ID号 MSFlexGrid1.Col = 1 MSFlexGrid1.Text = 员工姓名 MSFlexGr
37、id1.Col = 2 MSFlexGrid1.Text = 所属部门 MSFlexGrid1.Col = 3 MSFlexGrid1.Text = 职位名称 MSFlexGrid1.Col = 4 MSFlexGrid1.Text = 本月工资 For i = 0 To 4 MSFlexGrid1.ColWidth(i) = MSFlexGrid1.Width / 5 - 5 平均分配每个列的宽 Next i For i = 1 To resultcount 循环将职工信息和基本工资放入电子表格 userid = rs(USER_ID) MSFlexGrid1.Row = i MSFlexG
38、rid1.Col = 0 MSFlexGrid1.Text = userid MSFlexGrid1.Col = 1 MSFlexGrid1.Text = rs(USER_NAME) MSFlexGrid1.Col = 2 MSFlexGrid1.Text = rs(PART_NAME) MSFlexGrid1.Col = 3 MSFlexGrid1.Text = rs(ROLE_NAME) MONEY = rs(ROLE_MONEY) MSFlexGrid1.Col = 4 MSFlexGrid1.Text = Str(MONEY) rs.MoveNext Next i rs.Close S
39、et rs = Nothing For i = 1 To resultcount 通过考勤表计算考勤信息影响的工资 MSFlexGrid1.Row = i MSFlexGrid1.Col = 0 userid = MSFlexGrid1.Text MSFlexGrid1.Col = 4 MONEY = Val(MSFlexGrid1.Text) sql = SELECT WORK_TIME,TYPE_MARK,TYPE_ID FROM TBL_WORK,TBL_TYPE WHERE WORK_TYPE=TYPE_ID AND WORK_ID= & userid & work.CursorType = adOpenDynamic work.LockType = adLockOptimistic work.Open sql, DbFinance 选取每一行职工ID的本月考勤信息 Do While work.EOF = False Select Case work(TYPE_ID) 通过考勤类别计算考勤时间和工资关系 Case 1 temp = work(WORK_TIME) * 1 Case 2