2024年3月14日发(作者:)
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
摘 要
随着社会的进步与发展,人工管理社保基金的方式已不能满足现实的需求,如果
采用传统的人工方式管理社保基金不仅效率低,而且成本高。为了弥补传统人工管理
方式的不足,我在本次毕业设计中开发了铜陵市社保基金管理系统。
本系统使用的前台开发工具为VISUAL BASIC 6.0,后台数据库为MS ACCESS 2000,
开发环境为WINDOWS XP。本系统界面友好,操作简单,可以实现社保基金及有关人
员、单位的的有效管理。系统管理人员可以方便的对社会保险基金的相关信息进行添
加、查询、修改、删除、信息打印等操作。
本文主要介绍了社保基金管理系统的数据库设计、各个功能模块的实现方法以及
系统测试的过程。
关键词: VB 6.0;ACCESS 2000;ADO
第 I 页 共Ⅳ页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Abstract
With the progressing and developing of the society, the way of managing
social insurance fund artificially can never satisfy the requirements of
reality for its low efficiency and high cost. In order to compensate for the
insufficiency of traditional way, I have developed a new management system
of social insurance fund for the city of Tong Ling
Of the system, the fore-ground development tool is Visual Basic 6.0, while
the back-end database is Microsoft Access 2000,and the development
environment is Windows XP. For its friendly interface and simple operation,
the system can convert the effective management of social insurance fund, the
correlated staff and company into reality, managers of the system can
conveniently perform some operation on the correlated information of social
insurance fund, such as adding, inquiring, modifying, deleting and printing,
and so on!
To conclude, in my paper I have elaborated following things that are about
the management system of social insurance fund of the city :the designing
of the database, the way of converting the function into reality and the
testing process of this system!
Keywords: VisualBaisc 6.0; Access 2000; ADO (Active Data Objects)
第 II 页 共Ⅳ页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
目录
前言 .......................................................................... 1
1 课题背景 ................................................................... 2
1.1 选题背景 ............................................................................................................................... 2
1.2 选题目的 ............................................................................................................................... 2
2 基础理论 ................................................................... 3
2.1 Visual Basic简介 .............................................................................................................. 3
2.2 Microsoft Access 2000概述 ........................................................................................ 10
3 系统需求分析和总体设计 ................................................... 12
3.1 系统可行性分析 ............................................................................................................... 12
3.1.1 技术可行性 ........................................................................................................... 12
3.1.2 经济可行性 ........................................................................................................... 12
3.1.3 操作可行性 ........................................................................................................... 12
3.1.4 法律可行性 ........................................................................................................... 12
3.2 系统需求分析 ................................................................................................................... 12
3.2.1 功能需求说明: ................................................................................................... 12
3.2.2 环境需求说明 ....................................................................................................... 13
3.2.3 系统功能分析 ....................................................................................................... 13
3.2.4 系统功能模块设计 ............................................................................................... 14
3.3 数据库设计 ....................................................................................................................... 15
3.3.1 数据库需求分析 ..................................................................................................... 15
3.3.2 数据库设计 ........................................................................................................... 17
4 系统详细设计 ............................................................. 23
4.1 社保基金管理系统主窗体的创建 ................................................................................... 23
4.1.1 创建工程项目 ....................................................................................................... 23
4.1.2 社保基金管理系统的主窗体 ............................................................................... 23
4.1.3 创建主窗体的菜单 ............................................................................................... 24
4.2 用户登录模块的创建 ....................................................................................................... 24
4.2.1 登录界面设计 ....................................................................................................... 24
4.2.2 登录功能的实现 ................................................................................................... 25
4.3 养老保险基金管理模块的创建 ....................................................................................... 25
4.3.1 养老保险基金缴纳管理模块的创建 ................................................................... 26
4.3.2 养老保险基金发放管理模块的创建 ................................................................... 28
4.4 医疗保险基金管理模块的创建 ....................................................................................... 30
4.4.1 医疗保险基金缴纳管理模块的创建 ................................................................... 30
4.4.2 医疗保险基金发放管理模块的创建 ................................................................... 32
4.5 失业保险基金管理模块的创建 ....................................................................................... 34
4.5.1 失业保险基金缴纳管理模块的创建 ................................................................... 34
4.5.2 失业保险基金发放管理模块的创建 ................................................................... 36
4.6 工伤保险基金管理模块的创建 ....................................................................................... 39
4.6.1 工伤保险基金缴纳管理模块的创建 ................................................................... 39
4.6.2 工伤保险基金发放管理模块的创建 ................................................................... 41
4.7 生育保险基金管理模块的创建 ....................................................................................... 43
4.7.1 生育保险基金缴纳管理模块的创建 ................................................................... 43
4.7.2 生育保险基金发放管理模块的创建 ................................................................... 45
4.8 个人参保信息管理模块的创建 ....................................................................................... 48
4.9 单位参保信息管理模块的创建 ....................................................................................... 49
4.10 低保人员信息管理模块的创建 ....................................................................................... 50
第 III 页 共Ⅳ页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.11 信息打印管理模块的创建 ............................................................................................... 51
5 系统测试及维护 .......................................................... 52
5.1 测试环境 ........................................................................................................................... 52
5.2 软件测试的意义 ............................................................................................................... 52
5.3 软件详细调试 ................................................................................................................... 52
5.4 测试结果 ........................................................................................................................... 52
结论 ........................................................................ 53
致谢 ........................................................................ 54
参考文献 .................................................................... 55
附 录 一 .................................................................... 56
附 录 二 .................................................................... 66
第 IV 页 共Ⅳ页
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
前言
科学技术的进步极大的促进了整个社会的信息交流和人员往来, 经济的快速发
展导致城市化进程加快,城市规模迅速扩大。社会保障问题日显突出,大中小城市
中的数十万乃至百万人口每天都和社保基金产生关系,社保基金服务对象众多、业
务量十分庞大,管理人员的工作量大。如果采用传统的人工管理,不但成本居高不
下,其效率也难以适应实际工作的需要,同时也容易出现各种差错,如果采用管理
软件来管理社保基金的日常业务工作,不仅管理效率可以大大提高,管理成本也可
以大大降低。
本次毕业设计就是为了解决社保基金在传统的人工管理方式中所出现的种种问
题,利用现代化计算机技术开发出一套可靠、高效、低成本的社保基金管理系统。
社保基金管理是一项繁琐、细致、准确度要求很高的工作,实现社保基金管理的便
捷性、安全性、高效性是社保基金管理工作发展的必然趋势。随着经济的发展和社
会的进步,社会保险基金管理涉及的范围将更加广泛,对其管理工具的功能要求也
必将越来越高。社保基金管理是社会保障建设的重要组成部分,是保障社会稳定,
经济发展的重要环节,是社会主义现代化建设的一部分,所以开发满足现实要求的
社保基金管理系统意义重大。
社保基金管理工作是社会保障管理中一个极为重要的环节,是整个社会保障管
理的核心和基础,其中涉及到社保基金缴的缴纳管理、发放管理、修改管理、删除
管理、及相关人员信息管理等诸多模块,各个模块之间相互合作,共同完成整个社
保基金管理系统的工作。
本系统采用VISUAL BASIC 6.0 作为前台开发工具,ACCESS 2000 作为后台数据库,
在Windows XP操作系统下开发、运行。可以方便管理人员对社保基金相关信息进行
处理,提高管理效率,降低管理成本。
1
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
1 课题背景
1.1 选题背景
随着社会主义现代化建设的进行,社会经济迅速发展,城市化进程不断加快,城
镇化水平不断提高。社会保障问题日显突出,社保基金管理是社会保障建设的重要组
成部分,是保障社会稳定,经济发展的重要环节,是社会主义现代化建设的一部分。
经过相关调研之后,我发现社保基金管理信息系统所涉及到的信息资料数量大、
类型多,传统的手工操作存在许多弊端,如重复劳动严重、效率低下、不能及时地提
供所需的各种信息等,同时由于城市规模的不断扩大和城镇人口数量的逐年攀升导致
传统的社保基金管理手段已无法满足现代化管理的要求。所以开发设计满足社保基金
管理要求的社保基金管理信息系统显得十分必要,而且强大的社保基金管理系统可以
使社保基金各项管理工作快速、方便、准确、安全地得以实施。
1.2 选题目的
结合过去所学的有关程序设计以及软件工程方面的知识,为了加深对开发方式
的理解和对软件测试理论方法的认识,通过测试来发现软件存在的各种问题。在我即
将走上工作岗位之前,学校安排的毕业设计给了我将理论应用于实践的机会,所以我
选择了该课题。在下面的章节里我将系统地介绍铜陵市社保基金管理系统的开发过程
和可以实现的各项功能。
2
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
2 基础理论
2.1 Visual Basic简介
众所周知Visual Basic是Windows环境下的应用程序开发工具,其最突出的两
个特点是:可视化编程和事件驱动。它是美国微软公司的第一用于系统编程开发的产
品。多年来,Visual Basic经历过初级产品试验、16位开发平台和目前的32位新产
品的多次的升级换代,已成为了一个全新的成熟的高端产品。它以优良的性能、完善
的系统开发功能、完美的视觉界面和简单易学的特点,赢得了全世界广大用户的好感。
1. Visual Basic概述
Visual Basic中的“Visual”是指开发图形用户界面(GUI,Graphical User
Interface)的方法。Visual的意思是“可视的”,也就是直观的编程方法。在VB中
引入了控件的概念,各种各样的按钮、文本框、选择框等。VB把这些控件模式化,
并且每个控件都由若干属性来控制其外观、工作方法。这样,采用Visual方法无需
编写大量代码去描述界面元素的外观和位置,而只要把预先建立的控件加到屏幕上即
可。就像使用画图之类的绘图程序,通过选择画图工具来画图一样。
“Basic“是指BASIC(Beginners All-purpose Symbolic Instruction Code)
语言,一种在计算机技术发展史上应用得最为广泛的语言。Visual Basic在原有BASIC
语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和
Windows GUI有直接关系。专业人员可以用VB实现其他任何Windows编程语言功能,
而初学者只要掌握几个关键词就可以建立实用的应用程序。
2. Visual Basic的特点
Visual Basic是从BASIC发展而来的,对于开发Windows应用程序而言,VB是
目前所有开发语言中最简单、最容易使用的语言。总的来说,Visual Basic有以下
主要特点。
1)可视化编程
传统的编程方法使用的是面向过程、按顺序进行的机制,其缺点是程序员始终要
关心什么时候发生什么事情,应用程序的界面都需要程序员编写语句来实现,对于图
形界面的应用程序,只有在程序运行时才能看到效果,一旦不满意,还需要返回到程
序中修改程序,这一过程常常需要反复多次,大大影响了软件开发效率,因而使得开
发工作非常烦琐。用VB进行应用程序开发主要有两部分工作:即设计界面和编写代
码。在开发过程中所看到的界面,与程序运行时的界面基本相同,同时VB还向程序
员提供了若干界面设计所需要的对象(称为控件),在设计界面时,Visual Basic提
供的可视化设计平台,把Windows界面设计的复杂性“封装“起来,开发人员不必为
3
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
界面的设计而编写大量程序代码,只需按照设计的要求,用系统提供的工具在屏
幕上画出各种对象即可。Visual Basic自动产生界面设计代码,程序员只需要编写
实现程序功能的那部分代码,只需将所需要的控件放到窗口的指定位置即可,整个界
面设计过程基本不需要编写代码,从而大大提高了程序设计的效率。概括地说可视化
编程就是程序员在开发过程中能看到界面的实际效果。
2)
事件驱动的编程机制
用VB开发的应用程序,代码不是按照预定的路径执行,而是在响应不同的事件
时执行不同的代码片段。在用Visual Basic设计应用程序时,不必建立具有明显开
始和结束的程序。事件可以由用户操作触发,如单击鼠标、键盘输入等事件。也可以
由来自操作系统或其它应用程序的消息触发。这些事件的顺序决定了代码执行的顺
序。概括地说事件驱动是指应用程序没有预定的执行路径,而是由程序运行过程中的
事件决定。
3)面向对象的设计方法
面向对象的设计方法(OOP, Object Oriented Programming)从应用领域内的问题
着手,以直观自然的方式描述客观世界的实体。Visual Basic作为一种面向对象的
编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性.在设
计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由
Visual Basic自动生成对象的程序代码并封装起来.
4)开放的数据库功能与网络支持
Visual Basic具有很强的数据库管理功能,不仅可以管理MS Access格式的数
据库,还能访问其他如FoxPro等格式的数据库。同时VB还提供了开放式数据库连接
(ODBC,Open DataBase Connectivity)功能,可以通过直接访问或建立连接的方式
使用并操作后台大型网络数据库,如SQL Server等。在应用程序中,可以使用结构
化查询语言(SQL,Structured Query Language)直接访问Server上的数据库,并
提供简单的面向对象的库操作命令、多用户数据库的加锁机制和网络数据库的编程技
术,为单机上运行的数据库提供SQL网络接口,以便在分布式环境中快速而有效地实
现客户/服务器(Client/Server)方案。
5)结构化的设计语言
Visual Basic是在BASIC语言基础上发展起来的,具有高级程序设计语言的语
句结构,接近与自然语言和人类的逻辑思维方式,其语句简单易懂。其编辑器支持彩
色代码,可自动进行语法错误检查,具有功能强且使用灵活的调试器和编译器。在设
计Visual Basic程序的过程中,随时可以运行程序,而在整个应用程序设计好之后,
可以编译生成.exe可执行文件,.exe文件可脱离Visual Basic环境直接在Windows
环境下运行。
4
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
6)充分利用Windows资源
Visual Basic提供的动态数据交换(DDE,Dynamic Data Exchange)编程技术,
可以在应用程序中实现与其他Windows应用程序建立动态数据交换、在不同的应用程
序之间进行通信。对象链接与嵌入(OLE,Object Linking and Embedding)技术将
程序都看作一个对象,把不同的对象链接起来,嵌入到某应用程序中,从而可以得到
具有声音、影像、图像、动画。文字各种信息的集合式文件。动态链接库(DLL,Dynamic
Link Libraries)将C/C++或汇编语言编写的程序加入到Visual Basic 的应用程序
中,或是调用Windows应用程序接口(API,Application Programming Interface)
函数,实现SDK(Software Development Kit)所具有的功能。
7)交互式
VB的另一个显著特点是交互式,所谓交互式是指在编写代码过程中出现语法错
误时系统会立即获得通知,并在开发过程中可运行程序进
3. Visual Basic开发步骤
1)设计并建立用户界面。
2)编写响应事件的代码。
3)创建过程所需并调用其他过程。
4)测试和调试
5)转换为运行时版本。
6)准备可发布的文件
4. Visual Basic中的常用控件
1) 标签(Label)控件
标签(Label)用于显示用户不能编辑、修改的文本。主要用来显示提示信息,可以
用作标题、栏目或输入输出区域的标识,也可作为结果信息输出区域,常与Text控
件一起使用。其主要属性为:
表2.1标签控件的属性
属性
Name
说明
用于标识窗体、控件的名称。每一个控件均有该属
性,以后不再重复。
标签的标题,缺省情况下标签控件中唯一可见的部
分。
用于设置标签的加框形式,0-标签不带边框,1-带一个
立体边框。
5
Caption
BorderStyle
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
BackColor
BackStyle
ForeColor
Font
Alignment
AutoSize
WordWrap
设置标签的背景色。
设置标签的背景模式,1-标签不透明,0-标签透明。
设置Caption的颜色。
设置Caption的字体。
设置Caption的排列方式,0-左对齐,1-居中对齐,2-右对
齐。
用于是否自动改变标签的尺寸以适应其内容,若该属性设为
True,标签就会根据Caption属性的内容进行水平变化。
为了使Caption属性的内容自动换行并垂直扩充,应将该属
性设为True。此时AutoSize也应为True。
2) 文本框(TextBox)控件
文本框(TextBox)通常用来显示用户输入的信息,常作为接收用户输入的接口。或
在设计及运行时为其Text属性赋值,起信息输出的作用。TextBox控件显示的文本
一般是可以被用户编辑、修改的。其主要属性为:
表2.2文本框控件的属性
属 性
Text
MultiLine
ScrollBars
PassWordChar
MaxLength
Locked
说 明
文本框中包含的文本内容。
该属性值为True时可以接收多行文本。此时,
PassWordChar属性将不起作用。
0-没有滚动条,1-水平,2-垂直,3-同时具有水平及垂直。
指定显示在文本框中的替代符,如一串“*”号等,主要
用于口令输入。
指定显示在文本框中的字符数,超出部分不接收。
决定控件是否可编辑。
3) 命令按钮(CommandButton)控件
命令按钮常常用接收用户的操作信息,激发相应的事件过程。它是用户与程
6
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
序交互的最简便的方法。
表2.3命令按纽控件的属性
属 性
Caption
Font
efault
Cancel
说 明
按纽的标题,即显示在按纽的文本
设置Caption字体、字体样式及大小等
该属性为True时,指定它为窗体的缺省按纽
该属性为Ture时,指定它为窗体的缺省取消按
纽
0-按纽的外观是标准Windows风格,1-允许带有
自定义图片
Style为1时,指定粘贴到按纽上的图形文件
Style为1时,指定按纽按下时显示的图形文件
Style
Picture
DownPicture
DisabledPicture Style为1时,指定按纽无效时显示的图形文件
Eabled 该属性设为False时,表示控件不可用,呈暗色
显示
该属性设为False时,表示控件不可见 Visible
4) 单选按纽(OptionButton)控件
OptionButton用于提供一个可以打开或者关闭的选项。在使用时,一般将几个选
项按纽组成一组,在同一组中,用户只能选择其中的一项。
表2.4 OptionButton控件的常用属性
属 性
Value
说 明
表示按纽的状态。Value属性为True时,表示选择了该
按纽,为False时,表示没有选择该按纽。Value属性的缺
省值为False。
决定按纽中文本的对齐方式。0-Left Justify时表示左对
齐,1-Right Justify时表示右对齐。
用于控制选项按纽的外观
Alignment
Style
7
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
5)复选框(CheckBox)控件
CheckBox 与 OptionButton的作用差不多,只是CheckBox允许用户从程序提供
的多个选项中选中一个或多个选择。CheckBox组中某个选项被选中时,其它选项不
会失败。
6. 列表框(ListBox)控件
该控件用于显示项目列表,从列表中可以选择一项或多项。如果项目总数超过了可显
示的项目数,Visual Basic会自动给列表框加上滚动条。
表2.5列表框控件的属性
属 性
Style
List
Columns
说 明
设置列表框的外形
设置添加到列表框中的选项内容
指定列表框中的列数。0-垂直滚动单列,1-水平滚动单列,
大于1-水平滚动多列。滚动条在列表框容纳不下项目时
会自动出现。
它是一个只读属性,用于设置或返回当前选定项目的索
引值。
它是一个只读属性,用于返回列框中项目的数量
该属性为True时,可以将列表项目按字母顺序排列。
在程序运行时选中列表框中的选项。
listIndex
ListCount
Sorted
Selected
7)组合框(ComboBox)控件
组合框(ComboBox)与列表框(ListBox)的功能基本相同,只是组合框允许用户输
入未出现在指定项目中的项目,并可以将选项折叠起来,以节省控件占用空间。
8) 滚动条(Hscrollbar和VScrollbor)控件
水平滚动条(HScrollbar)和垂直滚动条(VScrollbor)通常被用作独立的输入控件,
连续地调整数据。
8
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
表2.6滚动条控件的属性
属 性
LargeChange
SmallChange
Value
Max 、Min
说 明
该属性值决定当用户单击滚动条时,定位纽几个单位
该属性的值决定当前用户单击滚动条两端的箭头时,定
位纽几个单位
该属性值决定滚动条的当前值(是一个整数)
这两个属性决定Value的最大值和最小值
9) 框架(Frame)控件
Frame控件的主要作用是作为容器安放其它控件对象,将这些控件对象分成可标识的
控件组。
表2.7框架控件的属性
属 性
Caption
Font
ForeColor
Enabled
说 明
设置框架的标题,通常用来说明组名称
设置框架标题的字体
设置标题文字的颜色
设置框架是否可用。若设为False,框架的标题将灰色显
示,且框架中其它控件同时被禁用。
10) 图片框(PictureBox)控件
表2.8图片框控件的主要属性
属 性
AutoSize
Align
AutoRedraw
说 明
该属性设为Ture时,图片框能自动调整大小与显示的图
片匹配。
该属性设为1、2、3、4 时作为容器的图片框将粘贴到
窗体的四周。
该属性设为Ture后可以将图形方法的输出显示到控件
上,并在调整图片框大小或移去遮挡图片框的对象时,
自动重绘输出的图片。
9
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
11) 图像框(Image)控件
表2.9图像框控件的属性
属 性
Stretch
说 明
该属性设为Ture时可以使图片自动扩展以适应控件的尺
寸,该属性为False时控件自动调整大小。
PictureBox和Image控件均可以用来显示图像,支持的图像文件格式有:位图、图
标、图元文件、增强型图元文件、JPEG和GIF文件。
PictureBox和Image控件的主要区别为:
PictureBox除了可以显示图形以外,还可以作为其它控件的容器。用户可以通
过剪贴板给PictureBox添加图形。它不能延伸图形以适应控件的大小,但可以自动
调整控件的大小以显示完整的图形。
Image控件只能用于显示图片,可以延伸图片的大小以适应控件的大小。但支持
的属性、事件、和方法较PictureBox少一些。
12) 计时器(Timer)控件
计时器(Timer)控件可用于实现每隔一定的时间间隔执行指定的操作,运行时不可
见,所以在设计时可以将其画在窗体的任何位置上。
表2.10计时器控件的属性
属 性
Enanled
Interval
说 明
该属性为True时,计时器开始工作,为False时暂停。
该属性用来设置计时器触发的周期,以毫秒计,取值范
围为0~64767。
2.2 Microsoft Access 2000概述
1. Microsoft Access 2000 简介
Access 2000是Microsoft公司推出的Office 2000 办公软件中的组件,是数据
库程序。利用它可以实现:
·存储几乎无限多的信息;
·按照用户的工作方式组织信息;
·根据指定的选择标准检索信息;
·创建窗体,使用户输入信息更方便;
·生成可以合并数据、文本、图片和其他对象的实用直观的报告;
10
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
·方便地通过Web共享信息。
如果将地址信息保存在Access数据库中,可以给每条信息分配一个唯一的标识
号,以便在每次需要使用或更改该信息时,只引用该标识号即可,这样就做到了每条
信息只需输入一次。Access数据库中最基本的组件是“表”,在表中信息排成若干记
录(行),每条记录包括多个字段(列)。除了表之外,Access数据库中还包括查询、
窗体、报表、数据访问页和模块等组件,功能强大而且使用方便。
2. Microsoft Access 特点
Access是一个基于关系型数据库的中小型数据库应用系统,虽然它的“出道”
时间比较晚,但由于它的强大的功能和出众的易用性,很快得到了广大数据库应用程
序员们的青睐,从而成为当今最通用的数据库软件。
作为一种出色的数据库软件,Access可以实现以下的功能:
·数据库中包含多个表,每个表可以分别表示和存储不同类型的信息。
·通过建立各个表之间的关联,从而将存储在不同表中的相关数据有
机的结合起来。
·通过创建查询,用户可以在一个或多个数据表中检索、更新和删除记录,并且可以
对数据库中的数据执行各种计算。
·通过创建联机窗体,用户可以直接对数据库中的记录执行查看和编辑操作。
·通过创建报表,用户可以将数据以特定的方式加以组织,以达到分析和打印的目的
·利用宏或Visual Basic for Application 语言将各种数据库对象组织起来,形成
一个数据库应用系统。
3. Microsoft Access的优点
Microsoft Access 2000 主要有以下优点:
·完善地管理各种数据库对象,提供了很高的系统安全性。
·通过向导提供的一系列的可视化过程,用户可以方便地生成和操作数据库对象。
·通过导入和导出操作,用户可以和不同类型的数据库实现数据共享,简便而且快捷。
·实现与Internet的连接,通过Web检索和发布数据。
·可以与Office套件中的其他组件,例如Word、Excel等集成。
·利用OLE特性,在窗体和报表中插入对象。
·通过宏指令或VBA语句,可以将窗体和报表连接起来,快速地编制数据库应用程序。
·可以根据个人的要求来定制Access数据库环境。
11
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
3 系统需求分析和总体设计
3.1 系统可行性分析
3.1.1 技术可行性
硬件要求:主要配置为CPU(PII300以上)、内存(64M以上)、显卡(4M以上)
以及大容量硬盘(10G以上)等。
软件要求:系统采用Visual Basic 6.0和Access2000开发,用VB制作系统的用
户界面,Access2000制作后台数据库,两者结合完成系统功能,可运行在Windows
系列操作系统上。
3.1.2 经济可行性
由于本系统开发的费用比较低,能够实现社保基金管理过程中要求的基本功能,
运行状态良好,系统维护费用低,可大幅度降低社保基金管理过程中的费用,提高管
理效率。
3.1.3 操作可行性
本系统运行在通用的Windows操作系统上,具有Windows相似的操作界面。具
有简单易学,使用方便等特点,只需在计算机上进行相关的简单的设置即可,懂得计
算机基本操作的人员经过短期培训培训即可熟练操作,熟悉计算机操作的人员不需要
再经过专门的培训即可熟练操作。
3.1.4 法律可行性
本系统是完全由本人独开发完成的软件,使用的是VB和Access 2000等授权软
件,它不是模仿他人已有的软件,在软件中没有设置各种逻辑陷阱、特洛伊木马以及
其它非法程序,也不会借此发布非法事件,故在法律上、专利问题上不会存在违反法
律的行为。
3.2 系统需求分析
3.2.1 功能需求说明:
本系统能够实现社保基金信息管理所需功能,包括用户创建,用户个人密码的修
改,相关信息录入、删除、修改、查询以及报表打印等功能。
12
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
3.2.2 环境需求说明
1. 软件运行硬件环境:
PII或更高档的微机,笔记本电脑;运行内存要求:≥32MB;安装所需硬盘:≥20MB;
2.软件要求:中文Windows95/98/2000/Me/XP; 英文 Windows
95/98/2000/Me/XP;Microsoft
Access 2000或更高版本
3. 软件开发环境:Visual Basic 6.0 、 Access 2000、Windwos XP
3.2.3 系统功能分析
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析
是在系统开发的总体任务的基础上完成。本例子中的铜陵市社保基金管理系统需要完
成的主要功能有:
养老保险基金缴纳信息的输入、查询、删除和修改,包括基金缴纳编号、缴
纳金额、缴纳单位、联系电话、联系邮箱、联系地址等。
养老保险基金发放信息的输入、查询、删除和修改,包括基金发放编号、发
放金额、领取单位、联系电话、联系邮箱、联系地址等。
医疗保险基金缴纳信息的输入、查询、删除和修改,包括基金缴纳编号、缴
纳金额、缴纳单位、联系电话、联系邮箱、联系地址等。
医疗保险基金发放信息的输入、查询、删除和修改,包括基金发放编号、发
放金额、领取单位、联系电话、联系邮箱、联系地址等。
失业保险基金缴纳信息的输入、查询、删除和修改,包括基金缴纳编号、缴
纳金额、缴纳单位、联系电话、联系邮箱、联系地址等。
失业保险基金发放信息的输入、查询、删除和修改,包括基金发放编号、发
放金额、领取单位、联系电话、联系邮箱、联系地址等。
工伤保险基金缴纳信息的输入、查询、删除和修改,包括基金缴纳编号、缴
纳金额、缴纳单位、联系电话、联系邮箱、联系地址等。
工伤保险基金发放信息的输入、查询、删除和修改,包括基金发放编号、发
放金额、领取单位、联系电话、联系邮箱、联系地址等。
生育保险基金缴纳信息的输入、查询、删除和修改,包括基金缴纳编号、缴
纳金额、缴纳单位、联系电话、联系邮箱、联系地址等。
生育保险基金发放信息的输入、查询、删除和修改,包括基金发放编号、发
放金额、领取单位、联系电话、联系邮箱、联系地址等。
个人参保信息的输入、查询、删除和修改,包括参保编号、参保金额、参保
项目、姓名、联系电话、联系地址等。
单位参保信息的输入、查询、删除和修改,包括参保编号、参保金额、参保
项目、姓名、联系电话、联系地址等。
13
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
低保人员信息的输入、查询、删除和修改,包括编号、姓名、性别、政治面
貌、联系电话
个人参保信息打印
单位参保信息打印
低保人员信息打印
3.2.4 系统功能模块设计
对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图3-1
所示的系统功能模块图:
铜陵市社保基金管理
养医失工生个信低单
系
老疗业伤育人息保位
统
基基保保保参打人参
维
金金险险险保印 员保
护
管管基基基基信信
理 理 金金金金息息
管管管管管管
理 理 理 理 理 理
基基个个个单低单单
金金人人人位保位位
缴发参参信信人参参
纳放保保息息员保保
管管信信打打信信信
理 理 息息印 印 息息息
添查打查添
加 询 印 询 加
添查修删
加询改除
基基基基
金金金金
信信信信
息 息 息 息
图3.1 系统结构功能图
14
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
3.3 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直
接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据
存储的效率,保证数据的完整和一致。设计数据库系统时应该首先充分了解用户各个
方面的需求,包括现有的以及将来可能增加的需求。
3.3.1 数据库需求分析
用户的需求具体体现在各种信息的添加、保存、修改和查询,这就要求数据库结
构能充分满足各种信息的输出和输入。收集基本数据、数据结构为后面的具体设计打
下基础。仔细分析调查有关社保基金管理信息需求的基础上,将得到如图3.2至图3.7
所示的本系统各个实体的属性图。
参保编
号
联系地
单位名
址
称
参保单位
参保项
联系电
目
参保金
话
额
图3.2 参保单位实体属性图
姓名
性别
编号
低保个人
联系电政治面
话 貌
联系地
址
图3.3 低保个人实体属性图
15
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
发放编
号
联系地
址
发放的工伤基金
发放金
额
联系电
话
电子邮
箱
领取单
位
图3.4发放工伤基金实体属性图
参保编
号
联系地
址
参保个人
姓名
联系电
话
参保金
额
图3.5 参保个人实体属性图
参保项
目
16
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
缴纳编
号
联系地
址
缴纳的工伤基金
缴纳金
额
联系电
话
缴纳单
位
电子邮
箱
图3.6 缴纳的工伤基金实体属性图
用户名 用户密
码
用户
图3.7 用户实体属性图
3.3.2 数据库设计
根据以上的需求分析和业务流程,本系统数据库可以由以下的表来实现。本系统
采用Microsoft Access数据库。从上面的功能分析和程序浏览不难看出本系统需要
建立以下几个数据表:用户信息表、养老保险基金缴纳管理表、养老保险基金发放管
理表、医疗保险基金缴纳管理表、医疗保险基金发放管理表、失业保险基金缴纳管理
表、失业保险基金发放管理表、工伤保险基金缴纳管理表、工伤保险基金发放管理表、
生育保险基金缴纳管理表、生育保险基金发放管理表、个人参保信息管理表、单位参
保信息管理表、低保人员信息表。
17
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
具体数据库表结构设计如下所示:
1. 用户信息表结构设计:
在该表中共定义了三个字段user字段表示用户名称;password字段表示用
户密码,level字段表示用户权限,三个字段的数据类型均为文本,具体设计如
表3.1所示:
表3.1 用户信息表结构设计
2. 养老保险基金缴纳管理表结构设计:
在该表中一共定义了六个字段,其中缴纳编号为主键,缴纳编号、缴纳单位、
联系电话、电子邮箱、联系地址等字段的数据类型均为文本类型,缴纳金额的数
据类型为货币。具体设计如表3.2所示:
表3.2 养老保险基金缴纳管理表结构设计
3. 养老保险基金发放管理表结构设计:
该表中一共定义了六个字段,其中发放编号为主键,发放编号、领取单位、
联系电话、电子邮箱、联系地址等字段的数据类型为文本类型,发放金额的数据
类型为货币。具体设计如表3.3所示:
18
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
表3.3 养老保险基金发放管理表结构设计
4.医疗保险基金缴纳管理表结构设计:
该表中一共定义了六个字段,其中缴纳编号为主键,交纳编号、缴纳单位、
联系电话、电子邮箱、联系地址等字段的数据类型文文本类型,缴纳金额字段的
数据类型为货币类型。具体设计如3.4所示:
表3.4 医疗保险基金缴纳管理表结构设计
5. 医疗保险基金发放管理表结构设计:
该表中一共定义了六个字段,其中发放编号为主键,发放编号、领取单位、
联系电话、电子邮箱、联系地址等字段类型文文本类型,发放金额的数据类型为
货币类型。具体设计如表3.5所示:
表3-5 医疗保险基金发放管理表结构设计
6. 失业保险基金缴纳管理表结构设计:
19
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
该表中一共定义了六个字段,其中缴纳编号为主键,缴纳编号、缴纳单位、
联系电话、电子邮箱、联系地址的数据类型为文本类型,缴纳金额的数据类型为
货币类型。具体的设计如表3.6所示:
表3.6 失业保险基金缴纳管理表结构设计
7. 失业保险基金发放管理表结构设计:
在该表中一共定义了六个字段,其中发放编号为主键,发放编号、领取单位、
联系电话、电子邮箱、联系地址等字段的数据类型为文本型。发放金额的数据类
型为货币类型。具体设计如表3.7所示:
表3.7 失业保险基金发放管理表结构设计
8. 工伤保险基金缴纳管理表结构设计:
在该表中一共定义了六个字段,其中缴纳编号为主键,缴纳编号、缴纳
单位、联系电话、电子邮箱、联系地址等字段类型为文本型,缴纳金额的数
据类型为货币类型。具体的设计如表3.8所示:
表3.8 工伤保险基金缴纳管理表结构设计
20
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
9. 生育保险基金缴纳管理表结构设计:
在该表中一共定义了六个字段,其中缴纳编号为主键,缴纳编号、缴纳
单位、联系电话、电子邮箱、联系地址等字段类型为文本型,缴纳金额的数
据类型为货币类型。具体的设计如表3.9所示:
表3.9 生育保险基金缴纳管理表结构设计
10. 生育保险基金缴发放管理表结构设计:
在该表中一共定义了六个字段,其中发放编号为主键,发放编号、发放
单位、联系电话、电子邮箱、联系地址等字段类型为文本型,缴纳金额的数
据类型为货币类型。具体的设计如表3.10所示:
表3.10 生育保险基金缴发放管理表结构设计
11. 个人参保信息管理表结构设计:
该表中一共定义了六个字段,其中定义参保编号为主键,参保编号、参
保金额、参保项目、联系电话、联系地址的数据类型为文本类型,参保金额
的数据类型为货币类型,具体设计如表3.11所示:
21
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
表3.11 个人参保信息管理表结构设计
12. 单位参保信息管理表结构设计:
该表中一共定义了六个字段,其中参保编号为主键,参保编号、单位名称、
参保项目、联系电话、联系地址等字段的数据类型为文本型,参保金额的数据类
型为货币类型,具体设计如表3.12所示:
表3.12 单位参保信息管理表结构设计
13. 低保人员信息管理表结构设计:
该表中一共定义了六个字段,其中编号为主键,编号、姓名、性别、政治面
貌、联系电话、联系地址等字段的数据类型均为文本型,具体设计如表3.13所
示:
表3.13 低保人员信息管理表结构设计
22
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4 系统详细设计
4.1 社保基金管理系统主窗体的创建
有关数据库结构的所有后台工作已经完成。现在将通过社保基金管理系统中各个
功能模块的实现,讲解如何使用Visual Basic来编写数据库系统的客户端程序。
4.1.1 创建工程项目
启动Visual Basic后,单击File|New Project菜单,在工程模板中选择Standard
EXE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置,这里我们删除
这个窗体。
4.1.2 社保基金管理系统的主窗体
这个项目我们使用多文档界面,单击工具栏中的ADD MDI Form按钮,产生一个
窗体。在这个窗体上添加所需的控件,窗体和控件的属性设置见图4.2所示。创建好
的窗体如图4.1所示
图4.1 社保基金管理系统的主窗
图
4.2
窗
控
属性设置图
主
体
件
23
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.1.3 创建主窗体的菜单
在如图4.1所示的主窗体中,单击鼠标右键,选择弹出式菜单中的Menu Editor,
创建如图4.3所示的菜单结构:
系统管理
„„添加用户
„„修改密码
„„退出系统
养老保险基金管理
„„基本信息添加
„„„„养老保险基金缴纳
„„„„养老保险基金发放
„„基本信息查询
„„„„养老保险基金缴纳查询
图4.3 主窗体中的菜单结构(部分显示)
4.2 用户登录模块的创建
4.2.1 登录界面设计
在该窗体中选择用户名,然后输入密码,如果密码正确则可以进入管理系统。如果不
正确则进行提示:“密码不正确,请重新输入密码”,如果三次密码输入错误则自动退出系
统。该过程主要是对数据库中user表进行相关操作,以实现对系统的安全管理。
窗体设计及所添加控件如图4.4所示:
图4.4 登录界面图
24
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
登录按钮控件属性如下图4.5所示:
图4.5 登录按钮控件属性
4.2.2 登录功能的实现
该窗体主要实现用户登录、进入系统的功能,考虑系统安全,登录管理系统需要
选择用户名并输入密码,管理员密码不正确不能登录该系统, 若密码输入正确,用户
则直接进系统。如果输入的密码错误,则弹出错误提示框,并提示该密码不正确,要
求重新输入密码,同时提示“还有N次输入机会”。如果连续三次密码输入错误,则
自动关闭系统。登录流程如图4.6所示:
开 始
选择用户并输入密码
不
正
确
核对密码
登录系统
图 4.6 登录流程图
4.3 养老保险基金管理模块的创建
25
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.3.1 养老保险基金缴纳管理模块的创建
养老保险基金缴纳管理模块主要实现如下功能:
添加基金缴纳信息
查询基金缴纳信息
修改基金缴纳信息
删除基金缴纳信息
1. 养老保险基金缴纳信息添加模块设计
点击养老保险基金管理>信息添加>养老保险基金缴纳管理,出现养老保险基
金缴纳管理界面。可以单击添加按钮添加相关信息,再保存即可实现养老保险基
金交纳信息的添加。该界面主要实现管理员对养老保险基金缴纳信息的添加管
理,主要是对数据库中yanglao_jngl表进行相关操作。
窗体设计如图4.7所示:
图4.7 养老保险基金缴纳信息添加界面图
功能实现主要代码参见附录二
2. 养老保险基金缴纳信息查询模块设计
点击养老保险基金管理>信息查询>养老保险基金缴纳查询,出现养老保险基
金缴纳查询界面。可以输入缴纳编号单击查询按钮查询相关信息,即可实现养老
保险基金交纳信息的查询。该界面的设计主要是实现管理员对养老保险基金缴纳
信息的查询。通过输入查询编号可以实现查询功能,操作的结果是对yanglao_jnglb
表中缴纳信息的显示。
窗体设计如图4.8所示:
26
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.8 养老保险基金缴纳信息查询界面图
功能实现主要代码参见附录二
3. 养老保险基金缴纳信息修改模块设计
点击养老保险基金管理>信息修改>养老保险基金缴纳信息修改,出现养老保
险基金缴纳信息修改界面。可以单击查询按钮查询特定记录信息,修改记录后按
下修改按钮即可实现养老保险基金交纳信息的修改。该界面的功能主要是对
yanglao_jnglb表中的相关字段内容进行修改。
窗体设计如图4.9所示:
图4.9 养老保险基金缴纳信息修改界面图
主要功能实现代码参见附录二
4. 养老保险基金缴纳信息删除模块设计
点击养老保险基金管理>信息删除>养老保险基金缴纳信息删除,出现养老保
险基金缴纳信息删除界面。可以单击查询按钮查询相关记录,再点击删除按钮即
可实现养老保险基金交纳信息的删除。该界面主要是实现管理员对养老保险基金
缴纳信息的删除,操作主要是对yanglao_jngl表进行。
27
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
窗体设计如图4.10所示
:
图4.10 养老保险基金缴纳信息删除界面图
功能实现主要代码参见附录二
4.3.2 养老保险基金发放管理模块的创建
养老保险基金发放管理模块主要实现如下功能:
添加基金发放信息
查询基金发放信息
修改基金发放信息
删除基金发放信息
1. 养老保险基金发放信息添加模块设计
点击养老保险基金管理>信息添加>养老保险基金发放管理,出现养老保险基
金发放管理界面。可以单击添加按钮添加相关信息,再保存即可实现养老保险基
金发放信息的添加。
窗体设计如图4.11所示
图4.11 养老保险基金发放信息添加界面图
功能实现主要代码参见附录二
2. 养老保险基金发放信息查询模块设计
28
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
点击养老保险基金管理>信息查询>养老保险基金发放查询,出现养老保险基
金发放查询界面。可以输入发放编号单击查询按钮查询相关信息,即可实现养老
保险基金发放信息的查询。
窗体设计如图4.12所示
图4.12 养老保险基金发放信息查询界面图
功能实现主要代码参见附录二
3. 养老保险基金发放信息修改模块设计
点击养老保险基金管理>信息修改>养老保险基金发放信息修改,出现养老保
险基金发放信息修改界面。可以单击查询按钮查询特定记录信息,修改记录后按
下修改按钮即可实现养老保险基金发放信息的修改。
窗体设计如图4.13所示
图4.13 养老保险基金发放信息修改界面图
功能实现主要代码参见附录二
4. 养老保险基金发放信息删除模块设计
点击养老保险基金管理>信息删除>养老保险基金发放信息删除,出现养老保
险基金发放信息删除界面。可以单击查询按钮查询相关记录,再点击删除按钮
即可实现养老保险基金交纳信息的删除。
窗体设计如图4.14所示
29
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.14 养老保险基金发放信息删除界面图
功能实现主要代码参见附录二
4.4 医疗保险基金管理模块的创建
4.4.1 医疗保险基金缴纳管理模块的创建
养老保险基金缴纳管理模块主要实现如下功能:
添加基金缴纳信息
查询基金缴纳信息
修改基金缴纳信息
删除基金缴纳信息
1. 医疗保险基金缴纳信息添加模块设计
点击医疗保险基金管理>信息添加>医疗保险基金缴纳管理,出现医疗保险基
金缴纳管理界面。可以单击添加按钮添加相关信息,再保存即可实现医疗保险基
金交纳信息的添加。该界面主要是方便管理员对医疗保险基金缴纳信息的管理
,所有的操作都对yiliao_jnglb表进行的。
窗体设计如图4.15所示:
图4.15 医疗保险基金缴纳信息添加界面图
功能实现主要代码与养老保险基金缴纳管理模块类似,具体见附录二
。
30
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
2. 医疗保险基金缴纳信息查询模块设计
点击医疗保险基金管理>信息查询>医疗保险基金缴纳查询,出现医疗保险基
金缴纳查询界面。可以输入缴纳编号单击查询按钮查询相关信息,即可实现医疗
保险基金交纳信息的查询。该界面的设计主要是方便管理员查询所有医疗保险基
金缴纳情况,以方便管理。
窗体设计如图4.16所示:
图4.16 医疗保险基金缴纳信息查询界面图
具体功能实现主要代码与养老保险基金缴纳查询模块类似,具体见附录二。
3. 医疗保险基金缴纳信息修改模块设计
点击医疗保险基金管理>信息修改>医疗保险基金缴纳信息修改,出现医疗保
险基金缴纳信息修改界面。可以单击查询按钮查询特定记录信息,修改记录后按
下修改按钮即可实现医疗保险基金交纳信息的修改。该界面的设计主要是方便管
理员通过查询具体缴纳编号,来对特定的纪录进行修改,该操作主要是对
yiliao_jngl 表进行。
窗体设计如图4.17所示:
具体功能实现代码与养老保险基金缴纳信息修改模块类似,具体见附录二
图4.17
31
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4. 医疗保险基金缴纳信息删除模块设计
点击医疗保险基金管理>信息删除>医疗保险基金缴纳信息删除,出现医疗保
险基金缴纳信息删除界面。可以单击查询按钮查询特定记录信息,然后按下删除
按钮即可实现医疗保险基金交纳信息的删除。该界面的设计主要是实现管理员先
通过查询缴纳编号找到具体纪录,再对对其进行删除。
窗体设计如图4.18所示:
图4.18 医疗保险基金缴纳信息删除界面图
具体功能实现代码与养老保险基金缴纳删除模块类似,具体见附录。
4.4.2 医疗保险基金发放管理模块的创建
医疗保险基金发放管理模块主要实现如下功能:
添加基金发放信息
查询基金发放信息
修改基金发放信息
删除基金发放信息
1. 医疗保险基金发放信息添加模块设计
点击医疗保险基金管理>信息添加>医疗保险基金发放信息添加,出现医疗
保险基金发放信息添加界面。可以单击添加按钮添加特定记录信息,添加记录后
按下保存按钮即可实现医疗保险基金发放信息的添加 。管理员通过该界面实现
对医疗保险基金发放信息的管理,操作的过程主要是对yiliao_ffglb表进行。
窗体设计如图4.19所示:
32
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.19 医疗保险基金发放信息添加界面图
具体功能实现代码与养老保险基金发放管理模块类似,具体见附录二
2. 医疗保险基金发放信息查询模块设计
点击医疗保险基金管理>信息查询>医疗保险基金发放查询,出现医疗保险基
金发放查询界面。可以输入发放编号单击查询按钮查询相关信息,即可实现医疗
保险基金发放信息的查询。该界面主要通过查询具体的发放编号实现管理员对所
有医疗保险基金发放信息的查询,以实现管理员对医疗保险基金发放信息的全面
了解。
窗体设计如图4.20所示:
4.20 医疗保险基金发放信息查询界面图
功能实现主要代码与养老保险基金发放查询模块类似,具体见附录二
3. 医疗保险基金发放信息修改模块设计
点击医疗保险基金管理>信息修改>医疗保险基金发放修改,出现医疗保险基
金发放修改界面。可以输入发放编号单击查询按钮查询相关信息,完成修改后单
击修改按钮即可实现医疗保险基金发放信息的修改。通过输入的发放编号,查询
到该记录后,可以实现具体记录的修改,该操作主要是对yiliao_ffglb 表进行。
窗体设计如图4.21所示:
33
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.21 医疗保险基金发放信息修改界面图
具体功能实现主要代码养老保险基金发放信息修改模块类似,具体见附录二
4. 医疗保险基金发放信息删除模块设计
点击医疗保险基金管理>信息删除>医疗保险基金发放信息删除,出现医疗
保险基金发放信息删除界面。可以单击查询按钮查询相关记录,再点击删除按
钮即可实现医疗保险基金交纳信息的删除。管理员可以在该界面上对具体记录
进行修改。
窗体设计如图4.22所示:
图4.22 医疗保险基金发放信息删除界面图
具体功能实现代码与养老保险基金发放删除模块类似,具体见附录二
4.5 失业保险基金管理模块的创建
4.5.1 失业保险基金缴纳管理模块的创建
失业保险基金缴纳管理模块主要实现如下功能:
添加基金缴纳信息
查询基金缴纳信息
修改基金缴纳信息
删除基金缴纳信息
1. 失业保险基金缴纳信息添加模块设计
点击失业保险基金管理>信息添加>失业保险基金缴纳管理,出现失业保险基
金缴纳管理界面。可以单击添加按钮添加相关信息,再保存即可实现失业保险基
金交纳信息的添加。该界面可以实现对失业保险基金缴纳信息的添加管理,主要
是对shiye_jnglb 表进行操作。
窗体设计如图4.23所示:
34
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.23 失业保险基金缴纳信息添加界面图
具体功能实现代码与养老保险基金缴纳管理模块类似,具体见附录二
2.失业保险基金缴纳信息查询模块设计
点击失业保险基金管理>信息查询>失业保险基金缴纳查询,出现失业保险基
金缴纳查询界面。可以输入缴纳编号单击查询按钮查询相关信息,即可实现失业
保险基金交纳信息的查询。
窗体设计如图4.24所示:
图4.24失业保险基金缴纳信息查询界面图
具体功能实现代码与养老保险基金缴纳查询模块类似,具体见附录二
3.失业保险基金缴纳信息修改模块设计
点击失业保险基金管理>信息修改>失业保险基金缴纳信息修改,出现失业保
险基金缴纳信息修改界面。可以单击查询按钮查询特定记录信息,修改记录后按
下修改按钮即可实现失业保险基金交纳信息的修改,管理员可以通过具体的缴纳
编号查询到某一条具体的记录信息,再对其进行修改。
窗体设计如图4.25所示:
35
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.25 失业保险基金缴纳信息修改界面图
具体功能实现代码与养老保险基金缴纳信息修改模块类似,具体见附录二
5. 失业保险基金缴纳信息删除模块设计
点击医疗保险基金管理>信息删除>医疗保险基金缴纳信息删除,出现医疗保
险基金缴纳信息删除界面。可以单击查询按钮查询特定记录信息,然后按下删除
按钮即可实现医疗保险基金交纳信息的删除。由于该界面中有查询的功能,管理
员可以通过查询功能实现对具体记录的删除,操作的过程主要是对shiye_jnglb
表进行。
窗体设计如图4.26所示:
图4.26 失业保险基金缴纳信息删除界面图
具体功能实现主要代码医疗保险基金缴纳删除模块类似,详见附录二
4.5.2 失业保险基金发放管理模块的创建
失业保险基金发放管理模块主要实现如下功能:
添加基金发放信息
查询基金发放信息
修改基金发放信息
36
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
删除基金发放信息
1. 失业保险基金发放信息添加模块设计
点击失业保险基金管理>信息添加>失业保险基金发放信息添加,出现失业
保险基金发放信息添加界面。可以单击添加按钮添加特定记录信息,添加记录后
按下保存按钮即可实现失业保险基金发放信息的添加
窗体设计如图4.27所示:
4.27 失业保险基金发放信息添加界面图
具体功能实现主要代码与养老保险基金发放管理模块类似,详见附录二
2. 失业保险基金发放信息查询模块设计
点击失业保险基金管理>信息查询>失业保险基金发放信息查询,出现失业保
险基金发放信息查询界面。可以输入发放编号查询特定记录信息。
窗体设计如图4.28所示:
图4.28 失业保险基金发放信息查询界面图
具体功能实现代主要代码与养老保险基金发放查询模块类似,详见附录。
37
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
3. 失业保险基金发放信息修改模块设计
点击医疗保险基金管理〉信息修改〉医疗保险基金发放修改,出现医疗保险
基金发放修改界面。可以输入发放编号单击查询按钮查询相关信息,完成修改后
单击修改按钮即可实现医疗保险基金发放信息的修改
窗体设计如图4.29所示:
图4.29 失业保险基金发放信息修改界面图
功能实现代码养老基金发放信息修改模块类似,详见附录二
4. 失业保险基金发放信息删除模块设计
点击失业保险基金管理>信息删除>失业保险基金发放信息删除,出现失业保
险基金发放信息删除界面。可以单击查询按钮查询相关记录,再点击删除按钮即
可实现失业保险基金交纳信息的删除。
窗体设计如图4.30所示:
4.30 失业保险基金发放信息删除界面图
具体功能实现代码与养老保险基金发放信息删除模块类似,详见附录二
38
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.6 工伤保险基金管理模块的创建
4.6.1 工伤保险基金缴纳管理模块的创建
工伤保险基金缴纳管理模块主要实现如下功能:
添加基金缴纳信息
查询基金缴纳信息
修改基金缴纳信息
删除基金缴纳信息
1. 工伤保险基金缴纳信息添加模块设计
点击工伤保险基金管理>信息添加>工伤保险基金缴纳管理,出现工伤保险基
金缴纳管理界面。可以单击添加按钮添加相关信息,再保存即可实现工伤保险基
金交纳信息的添加。
窗体设计如图4.31所示:
图4.31 工伤保险基金缴纳信息添加界面图
功能实现代码与养老保险基金交纳管理模块类似,具体见附录二
2. 工伤保险基金缴纳信息查询模块设计
点击工伤保险基金管理>信息查询>工伤保险基金缴纳查询,出现工伤保险基
金缴纳查询界面。可以输入缴纳编号单击查询按钮查询相关信息,即可实现工伤
保险基金交纳信息的查询。
窗体设计如图4-32所示:
39
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.32 工伤保险基金缴纳信息查询界面图
功能实现代码与养老保险基金交纳查询模块类似,具体见附录二
4. 工伤保险基金缴纳信息修改模块设计
点击工伤保险基金管理>信息添加>工伤保险基金缴纳修改,出现工伤保险基
金缴纳修改界面。可以单击修改按钮修改相关信息,再保存即可实现工伤保险
基金交纳信息的修改。
窗体设计如图4.33所示:
图4.33 工伤保险基金缴纳信息修改界面图
功能实现代码与养老保险基金交纳信息修改模块类似,具体见附录二
5. 工伤保险基金缴纳信息删除模块设计
点击工伤保险基金管理>信息删除>工伤保险基金缴纳信息删除,出现工伤保
险基金缴纳信息删除界面。可以单击查询按钮查询特定记录信息,然后按下删除
按钮即可实现工伤保险基金交纳信息的删除。
窗体设计如图4.34所示:
40
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.34 工伤保险基金缴纳信息删除界面图
具体功能实现代码与养老保险基金缴纳删除模块类似,具体见附录二
4.6.2 工伤保险基金发放管理模块的创建
工伤保险基金发放管理模块主要实现如下功能:
添加基金发放信息
查询基金发放信息
修改基金发放信息
删除基金发放信息
1. 工伤保险基金发放信息添加模块设计
点击工伤保险基金管理>信息添加>工伤保险基金发放信息添加,出现工伤
保险基金发放信息添加界面。可以单击添加按钮添加特定记录信息,添加记录后
按下保存按钮即可实现工伤保险基金发放信息的添加
窗体设计如图4.35所示:
图
4.35工伤保险基金发放信息添加界面图
功能实现主要代码与养老保险基金发放管理模块类似,具体见附录二
2. 工伤保险基金发放信息查询模块设计
41
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
点击工伤保险基金管理>信息查询>工伤保险基金发放信息查询,出现工伤保
险基金发放信息查询界面,可以输入发放编号查询特定记录信息。
窗体设计如图4.36所示:
4.36 工伤保险基金发放信息查询界面图
功能实现主要代码类似养老保险基金发放信息查询模块,具体见附录二
3. 工伤保险基金发放信息修改模块设计
点击医疗保险基金管理>信息修改>医疗保险基金发放修改,出现医疗保险基
金发放修改界面。可以输入发放编号单击查询按钮查询相关信息,完成修改后单
击修改按钮即可实现医疗保险基金发放信息的修改
窗体设计如图4.37所示:
图4.37 工伤保险基金发放信息修改界面图
功能实现代码与养老保险基金发放信息修改类似,具体见附录二
4. 工伤保险基金发放信息删除模块设计
点击工伤保险基金管理>信息删除>工伤保险基金发放信息删除,出现工伤
42
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
保险基金发放信息删除界面。可以单击查询按钮查询相关记录,再点击删除按钮
即可实现工伤保险基金交纳信息的删除。
窗体设计如图4.38所示:
图4.38 工伤保险基金发放信息删除界面图
具体功能实现代码与养老保险基金发放信息删除模块类似,具体见附录二
4.7 生育保险基金管理模块的创建
4.7.1 生育保险基金缴纳管理模块的创建
生育保险基金缴纳管理模块主要实现如下功能:
添加基金缴纳信息
查询基金缴纳信息
修改基金缴纳信息
删除基金缴纳信息
1. 生育保险基金缴纳信息添加模块设计
点击生育保险基金管理>信息添加>生育保险基金缴纳管理,出现生育保险基
金缴纳管理界面。可以单击添加按钮添加相关信息,再保存即可实现生育保险基
金交纳信息的添加。
窗体设计如图4.39所示:
图4.39 生育保险基金缴纳信息添加界面图
具体功能实现代码与养老保险基金缴纳管理模块类似,具体见附录二
43
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
2. 生育保险基金缴纳信息查询模块设计
点击生育保险基金管理>信息查询>生育保险基金缴纳查询,出现生育保险
基金缴纳查询界面。可以输入缴纳编号单击查询按钮查询相关信息,即可实现生
育保险基金交纳信息的查询。
窗体设计如图4.40所示:
图4.40 生育保险基金缴纳信息查询界面图
具体功能实现代码与养老保险基金缴纳管理模块类似,具体见附录二
3. 生育保险基金缴纳信息修改模块设计
点击工伤保险基金管理>信息添加>工伤保险基金缴纳修改,出现工伤保险基
金缴纳修改界面。可以单击修改按钮修改相关信息,再保存即可实现工伤保险基
金交纳信息的修改。
窗体设计如图4.41所示:
4.41 生育保险基金缴纳信息修改界面图
具体功能实现代码与养老保险基金缴纳信息修改类似,具体见附录二
44
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4. 生育保险基金缴纳信息删除模块设计
点击生育保险基金管理>信息删除>生育保险基金缴纳信息删除,出现生育保
险基金缴纳信息删除界面。可以单击查询按钮查询特定记录信息,然后按下删除
按钮即可实现生育保险基金交纳信息的删除。
窗体设计如图4.42所示:
图4.42 生育保险基金缴纳信息删除界面图
具体功能实现代码与养老保险基金缴纳删除模块类似,具体见附录二
4.7.2 生育保险基金发放管理模块的创建
养老保险基金发放管理模块主要实现如下功能:
添加基金发放信息
查询基金发放信息
修改基金发放信息
删除基金发放信息
1. 生育保险基金发放信息添加模块设计
点击生育保险基金管理>信息添加>生育保险基金发放信息添加,出现生育
保险基金发放信息添加界面。可以单击添加按钮添加特定记录信息,添加记录后
按下保存按钮即可实现生育保险基金发放信息的添加
窗体设计如图4.43所示:
45
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
图4.43 生育保险基金发放信息添加界面图
具体功能实现代码与养老保险基金发放管理模块类似,具体见附录二
2. 生育保险基金发放信息查询模块设计
点击生育保险基金管理>信息查询>生育保险基金发放信息查询,出现生育保
险基金发放信息查询界面。可以输入发放编号查询特定记录信息
窗体设计如图4.44所示:
图4.44 生育保险基金发放信息查询界面图
具体功能实现代码与养老保险基金发放查询模块类似,具体见附录二
3. 生育保险基金发放信息修改模块设计
点击生育保险基金管理〉信息修改〉生育保险基金发放修改,出现生育保险
基金发放修改界面。可以输入发放编号单击查询按钮查询相关信息,完成修改后
单击修改按钮即可实现生育保险基金发放信息的修改
46
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
窗体设计如图4.45所示:
图4.45 生育保险基金发放信息修改界面图
具体功能实现代码与养老保险基金发放信息修改模块类似,具体见附录二
4. 生育保险基金发放信息删除模块设计
点击生育保险基金管理>信息删除>生育保险基金发放信息删除,出现生育保
险基金发放信息删除界面。可以单击查询按钮查询相关记录,再点击删除按钮即
可实现生育保险基金交纳信息的删除。
窗体设计如图4.46所示:
图4.46 生育保险基金发放信息删除界面图
具体功能实现代码与养老保险基金发放信息删除模块类似,具体见附录二
47
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.8 个人参保信息管理模块的创建
个人参保信息管理模块主要实现如下功能:
添加个人参保信息
查询个人参保信息
1. 个人参保信息添加模块设计
点击个人参保信息管理〉信息添加,进入信息添加界面,添加完相关信息后
点击保存按钮,即可完成个人参保信息的添加。
窗体设计如图4.47所示:
图4.47 个人参保信息添加界面图
具体功能实现主要代码与养老保险基金缴纳管理模块类似,具体见附录二
2. 个人参保信息查询模块设计
点击个人参保信息管理〉信息查询,进入信息查询界面,输入参保编号,点
击查询按钮,即可实现查询功能。
窗体设计如图4.48所示:
图4.48 个人参保信息查询界面图
具体功能实现代码与养老保险基金缴纳信息查询模块
48
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
类似,具体见附录二
4.9 单位参保信息管理模块的创建
单位参保信息管理模块主要实现如下功能:
添加单位参保信息
查询单位参保信息
1. 单位参保信息添加模块设计
点击单位参保信息管理〉信息添加,进入信息添加界面,添加完相关信息后
点击保存按钮,即可完成单位参保信息的添加。
窗体设计如图4.49所示:
图4-49 单位参保信息添加界面图
具体功能实现代码与养老保险基金缴纳信息添加模块类似,具体见附录二
2. 单位参保信息查询模块设计
点击个人参保信息管理〉信息查询,进入信息查询界面,输入参保编号,点击查
询按钮,即可实现查询功能。窗体设计如图4.50所示
图4.50 单位参保信息查询界面图
具体功能实现代码与养老保险基金缴纳信息查询模块类似,具体见附录二
49
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.10 低保人员信息管理模块的创建
低保人员信息管理模块主要实现如下功能:
添加低保人员信息
查询低保人员信息
1. 低保人员信息添加模块设计
点击低保人员信息管理〉信息添加,进入信息添加界面,添加完相关信息
后点击保存按钮,即可完成低保人员信息的添加。
窗体设计如图4.51所示:
图4-51 低保人员信息添加界面图
具体功能实现代码与养老保险基金缴纳信息添加模块类似,具体见附录二
2. 低保人员信息查询模块设计
点击个人参保信息管理〉信息查询,进入信息查询界面,输入编号,点击查
询按钮,即可实现查询功能。
窗体设计如图4.52所示:
图4.52 低保人员信息查询界面图
具体功能实现代码与养老保险基金缴纳信息查询模块类似,具体见附录二
50
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
4.11 信息打印管理模块的创建
信息打印管理模块主要实现如下功能:
打印个人参保信息
打印单位参保信息
打印低保人员信息
1. 打印个人参保信息
打印效果如图4.53所示:
图4.53
2. 打印单位参保信息
打印效果如图4.54所示:
图4.54
3.打印低保人员信息
打印效果如图4.55所示:
图4.55
51
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
5 系统测试及维护
5.1 测试环境
操作系统:Window XP Professional
数据环境:Access 2000
开发平台:Microsoft Visual Basic 6.0
5.2 软件测试的意义
软件测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错
误,完善系统。目前,软件测试仍然是保证软件质量的关键步骤。
测试的目标:
1.测试是为了发现程序的错误而执行程序的过程;
2.好的测试方案实际可能发现迄今为止尚未发现的错误的测试方案;
3.成功的测试是发现了至今为止尚未发现的错误的测试。
该软件经过了先期的模块测试和后期的综合测试,一切正常,达到了预期的要求。
5.3 软件详细调试
程序设计编码工作完成之后,为了确保系统的正确性和严密性,系统在交给用户
使用之前必须进行一系列的调试与维护测试。我在测试、调试过程中确实发现了一些
问题,尽快一一修改完成。经过一段时间的调试,修改,程序终于达到了总体设计的
要求。具体测试大致可分为以下几个方面。
①数据的合法性。如:判断数据值可不可以为空,数据类型是否符合定义。
②程序的容错性。输入非法的数值时,程序是否能根据各表中的关键字判断输入
值合法与否,同时有没有相应的提示或出错警告。
③运行极限性。模拟一些边界极限性数据输入测试,看程序是否有良好的运行状
态。
5.4 测试结果
经过以上测试 我认识到:代码编写的过程是不断调试的过程,通过不断的调试
才能使系统的功能逐步的完善。十分感谢陈师在各个方面给予我的指导,让我能尽量
全面地考虑到各种不同情况。具体写代码时我也深深地体会到软件测试在编程中的占
有的重要性,而且在本软件的测试中,让我确实的增长了不少知识,受益匪浅!
52
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
结论
通过这几个月对毕业设计任务的不断更新和完善,我所做的铜陵市管理系统已经
基本完成,能够完成大部分信息管理系统所需求的功能。当然由于时间仓促,加之本
人水平有限,系统中难免存在着许多疏漏和不足之处,这就要求我在日后的工作中更
加努力的学习和提高。
几个月的时间不知不觉地过去了, 在这次的毕业设计中,我体会最深的是理论
知识和实践相结合的问题,理论知识与实践工作有很大的差距,它要求我们不畏困难、
迎难而上、发现问题、解决问题。毕业设计培养了我综合运用所学的基础理论,基本
知识和基本技能,分析解决实际问题的能力,它在某种程度上是前面各个学习环节的
继续、深化和检验。
毕业设计任务的完成仅仅是一个新的开始,毕业以后会有更多的挑战等着我去面
对。毕业设计的过程给我留下了深刻的印象,其中遇到问题的忧愁,解决问题的愉悦
都给我留下了难忘的回忆。毕业设计是对大学四年学习成果的检验,是理论与实践相
结合的锻炼机会。通过毕业设计的锻炼,我们巩固了知识、增进了交流、提高了自身
的综合素质。
53
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
致谢
首先,我要感谢张彦航老师。在这次毕业设计中,张老师给予了我极大的帮
助。他治学严谨、要求严格,从最初的课题分析到后来的问题解答,他一直都耐
心细致,在每周一次的例会上,张老师都会仔细地听取大家的工作进展情况、设
计过程中遇到的疑惑和困难,并针对这些给予认真的解答并提出宝贵的建议,使
我的设计在有条不紊的进行,我从开始的毫无头绪到顺利完成,整个毕业设计过
程中,张老师的悉心指导令我受益匪浅。张老师治学严谨、要求严格的作风给我
留下了深刻的印象,为我们树立了良好的榜样,对我们以后的工作必将产生深远
的影响。在此,向张老师表示深深地感谢和敬意!
在毕业设计过程中同组的同学和其他的一些老师和同学也给予我很大的帮
助,解决了我软件开发中不少的难题,同时也给我提出了许多合理化的建议。在
此,向所有帮助过我的同学表示最衷心的感谢!
最后衷心感谢四年来母校对我们的培养、各位老师对我们的悉心辅导和耐心
教育、同学们对我的帮助!
54
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
参考文献
[1]张海藩 .软件工程导论 [M] 北京 . 清华大学出版社 1998.1
[2]萨师煊 ,王珊.数据库系统概论 [M] 北京. 高等教育出版社 2002.2
[3]刘韬,骆娟,何旭洪.Visual Basic 6.0 数据库开发实例导航 [M] 北京.人民邮
电出版社 2002.4
[4]伍俊良.Visual Basic 6.0课程设计与系统开发案例 [M] 北京.清华大学出版社
[5]刘萌,周学明,郭安源.Visual Basic 6.0 企业办公系统开发实例导航[M] 北京.
人民邮电出版社 2003.4
[6]林陈雷,郭安源,葛晓.Visual Basic 6.0 教育信息化系统开发实例导航[M]
北京.人民邮电出版社 2003.5
[7]陈华生,牛又奇,孙建国.VB实用教程 [M] 苏州大学出版社 2003.6
[8] 张宏林,孔艳,王哲.Visual Basic 6.0开发数据库[M] 人民邮电出版社 2002
[9] Korth, Silberschatz, Abraha,Database System Concepts New
York :McGraw-Hill, Inc. 1999.3
[10]Ian Graham.著 Object Oriented Methods, Second Edition. Addison_Wesley
Publishing company
55
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
附 录 一
英文文献
While you’re going through the development process, the most important issue is this: Don’t get
lost. It’s easy to do. Most of the analysis and design methods are intended to solve the largest of
problems. Remember that most projects don’t fit into that category, so you can usually have successful
analysis and design with a relatively small subset of what a method recommends. But some sort of
process, no matter how limited, will generally get you on your way in a much better fashion than simply
beginning to code.
It’s also easy to get stuck, to fall into “analysis paralysis,” where you feel like you can’t move
forward because you haven’t nailed down every little detail at the current stage. Remember, no matter
how much analysis you do, there are some things about a system that won’t reveal themselves until
design time, and more things that won’t reveal themselves until you’re coding, or not even until a
program is up and running. Because of this, it’s crucial to move fairly quickly through analysis and
design, and to implement a test of the proposed system.
This point is worth emphasizing. Because of the history we’ve had with procedural languages, it is
commendable that a team will want to proceed carefully and understand every minute detail before
moving design and implementation. Certainly, when creating a DBMS, it pays to understand a
customer’s needs thoroughly. But a DBMS is in a class of problems that is very well-posed and
well-understood; in many such programs, the database structure is the problem to be tackled. The class
of programming problem discussed in this chapter is of the “wild-card” (my term) variety, in which the
solution isn’t simply re-forming a well-known solution, but instead involves one or more “wild-card
factors”-elements for which there is no well-understood previous solution, and for which research is
necessary. Attempting to thoroughly analyze a wildcard problem before moving into design and
implementation results in analysis paralysis because you don’t have enough information to solve
this kind of problem during the analysis phase. Solving such a problem requires iteration through the
whole cycle, and that requires risk-taking behavior (which makes sense, because you’re trying to do
something new and the potential rewards are higher). It may seem like the risk is compounded by
“rushing” into a preliminary implementation, but it can instead reduce the risk in a wild-card project
because you’re finding out early whether a particular approach to the problem is viable. Product
development is risk management.
It’s often proposed that you “build one to throw away.” With OOP, you may still throw part of it
away, but because code is encapsulated into classes, during the first iteration you will inevitably produce
some useful class designs and develop some worthwhile ideas about the system design that do not need
to be thrown away. Thus, the first rapid pass at a problem not only produces critical information for the
next analysis, design, and implementation iteration, it also creates a code foundation for that iteration.
That said, if you’re looking at a methodology that contains tremendous detail and suggests many
steps and documents, it’s still difficult to know when to stop. Keep in mind what you’re trying to
discover:
What are the objects? (How do you partition your project into its component parts?)
What are their interfaces? (What messages do you need to be able to send to each object?)
If you come up with nothing more than the objects and their interfaces, then you can write a
program. For various reasons you might need more descriptions and documents than this, but you can’t
get away with any less.
The process can be undertaken in five phases, and a phase 0 that is just the initial commitment to
using some kind of structure.
Phase 0: Make a plan
You must first decide what steps you’re going to have in your process. It sounds simple (in fact, all
of this sounds simple) and yet people often don’t make this decision before they start coding. If your
56
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
plan is “let’s jump in and start coding,” fine. (Sometimes that’s appropriate when you have
well-understood
problem.) At least agree that this is the plan.
You might also decide at this phase that some additional process structure is necessary, but not the
whole nine yards. Understandably enough, some programmers like to work in “vacation mode” in
which no structure is imposed on the process of developing their word; “It will be done when it’s done.”
This can be appealing for awhile, but I’ve found that having a few milestones along the way helps to
focus and galvanize your efforts around those milestones instead of being stuck with the single goal of
“finish the project.” In addition, it divides the project into more bite-sized pieces and makes it seem less
threatening (plus the milestones offer more opportunities for celebration).
When I began to study story structure (so that I will someday write a novel) I was initially resistant
to the idea of structure, feeling that when I wrote I simply let it flow onto the page. But I later realized
that when I write about computers the structure is clear enough so that I don’t think much about it. But I
still structure my work, albeit only semi-consciously in my head. So even if you think that your plan is
to just start coding, you still somehow go through the subsequent phases while asking and answering
certain questions.
The mission statement
Any system you build, no matter how complicated, has a fundamental purpose, the business that
it’s in, and the basic need that it satisfies. If you can look past the user interface, the hardware- or
system-specific details, the coding algorithms and the efficiency problems, you will eventually find the
core of its being, simple and straightforward. Like the so-called high concept from a Hollywood movie,
you can describe it in one ore two sentences. This pure description is the starting point.
The high concept is quite important because it sets the tone for your project; it’s a mission
statement. You won’t necessarily get it right the first time (you may be in a later phase of the project
before it becomes completely clear), but keep trying until it feels right. For example, in an air-traffic
control system to a very small airfield; perhaps there’s only a human controller or none at all. A more
useful model won’t concern the solution you’re creating as much as it describes the problem: “Aircraft
arrive, unload, service and reload, and depart.”
Phase 1: What are we making?
It’s necessary to stay focused on the heart of what you’re trying to accomplish in this phase:
determine what the system is supposed to do. The most valuable tool for this is a collection of what are
called “use cases.” Use cases identify key features in the system that will reveal some of the
fundamental classes you’ll be using. These are essentially descriptive answers to questions like:
“Who will use this system?”
“What can those actors do with the system?”
“How does this actor do that with this system?”
“How else might this work if someone else were doing this, or if the same actor had a different
objective?”(to reveal variations)
“What problems might happen while doing this with the system?”(to reveal exceptions)
If you are designing an auto-teller, for example, the use case for a particular aspect of the
functionality of the system is able to describe what the auto-teller does in every possible situation. Each
of these “situations” is referred to as a scenario, and a use case can be considered a collection of
scenarios. You can think of a scenario as a question that starts with: “What does the system do if…?”
For example, “What does the auto-teller do if a customer has just deposited a check within 24 hours and
there’s not enough in the account without the check to provide the desired withdrawal?”
Use case diagrams are intentionally simple to prevent you from getting bogged down in system
implementation details prematurely:
The use cases produce the requirements specifications by determining all the interactions that the
user may have with the system. You try to discover a full set of use cases for your systems, and once
you’ve done that you have the core of what the system is supposed to do. The nice thing about focusing
on use cases is that they always bring you back to the essentials and keep you from drifting off into
issues that aren’t critical for getting the job done. That is, if you have a full set of use cases you can
describe your system and move onto the next phase. You probably won’t get it all figured out perfectly
57
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
on the first try, but that’s OK. Everything will reveal itself in time, and if you demand a perfect system
specification
58
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
at this point you’ll get stuck.
Phase 2: How will we build it?
In this phase you must come up with a design that describes what the classes look like and how
they will interact. An excellent technique in determining classes and interactions is the
Class-Responsibility-Collaboration (CRC) card. Part of the value of this tool is that it’s so low-tech: you
start out with a set of blank 3” by 5” cards, and you write on them. Each card represents a single class,
and on the card you write:
The name of the class. It’s important that this name capture the essence of what the class does, so
that it makes sense at a glance.
The “responsibilities” of the class: what it should do. This can typically be summarized by just
stating the names of the member functions (since those names should be descriptive in a good design),
but it does not preclude other notes. If you need to seed the process, look at the problem from a lazy
programmer’s standpoint: What objects would you like to magically appear to solve your problem?
The “collaborations” of the class: what other classes does it interact with? “Interact” is an
intentionally broad term; it could mean aggregation or simply that some other object exists that will
perform services for an object of the class. Collaborations should also consider the audience for this
class. For example, if you create a class Firecracker, who is going to observe it, a Chemist or a Spectator?
The former will want to know what chemicals go into the construction, and the latter will respond to the
colors and shapes released when it explodes.
You may feel like the cards should be bigger because of all the information you’d like to get on
them, but they are intentionally small, not only to keep your classes small but also to keep you from
getting into too much detail too early. If you can’t fit all you need to know about a class on a small card,
the class is too complex (either you’re getting too detailed, or you should create more than one class).
The ideal class should be understood at a glance. The idea of CRC cards is to assist you in coming up
with a first cut of the design so that you can get the big picture and then refine your design.
One of the great benefits of CRC cards is in communication. It’s best done real-time, in a group,
without computers. Each person takes responsibility for several classes (which at first have no names or
other information). You run a live simulation by solving one scenario at a time, deciding which
messages are sent to the various objects to satisfy each scenario. As you go through this process, you
discover the classes that you need along with their responsibilities and collaborations, and you fill out
the cards as you do this. When you’ve moved through all the use cases, you should have a fairly
complete first cut of your design.
Before I began using CRC cards, the most successful consulting experiences I had when coming
up with an initial design involved standing in front of a team, who hadn’t built an OOP project before,
and drawing objects on a whiteboard. We talked about how the objects should communicate with each
other, and erased some of them and replaced them with other objects. Effectively, I was managing all the
“CRC cards” on the whiteboard. The team (who knew what the project was supposed to do) actually
created the design; they “owned” the design rather than having it giving it given to them.
All I was doing was guiding the process by asking the right questions, trying out the assumptions,
and taking the feedback from the team to modify those assumptions. The turn beauty of the process was
that the team learned how to do object-oriented design not by reviewing abstract examples, but by
working on the one design that was most interesting to them at that moment: theirs.
Once you’ve come up with a set of CRC cards, you may want to create a more formal description
of your design using UML. You don’t need to use UML .but it can be helpful, especially if you want to
put up a diagram on the wall for everyone to ponder, which is a good idea. An alternative to UML is a
textual description of the objects and their interfaces, or, depending on your programming languages,
the code itself.
UML also provides an additional diagramming notation for describing the dynamic model of your
system. This is helpful in situations in which the state transitions of a system or subsystem are dominant
enough that they need their own diagrams (such as in a control system). You may also need to describe
the data structures, for systems or subsystems in which data is a dominant factor (such as a database),
You’ll know you’re done with phase 2 when you have described the objects and their interfaces.
59
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Well, most of them – there are usually a few that slip through the cracks and don’t make
themselves known until phase 3. But that’s OK. All you are concerned with is that you eventually
discover all of your objects. It’s nice to discover them early in the process but OOP provides enough
structure so that it’s not so bad if you discover them later. In fact, the design of an object tends to
happen in five stages, throughout the process of program development.
Phase 3: Build the core
This is the initial conversion from the rough design into a compiling and executing body of code
that can be tested, and especially that will prove or disprove your architecture. This is not a one-pass
process, but rather the beginning of a series of steps that will iteratively build the system, as you’ll see in
phase4.
Your goal is to find the core of your system architecture that needs to be implemented in order
generate a running system, no matter how incomplete that system is in this initial pass. You’re creating a
framework that you can build upon with further iterations. You’re also performing the first of many
system integrations and tests, and giving the stakeholders feedback about what their system will look
like and how it is progressing. Ideally, you are also exposing some of the critical risks. You’ll probably
also discover changes and improvements that can be made to your original architecture – things you
would not have learned without implementing the system.
Part of building the system is the reality check that you get from testing against your requirements
analysis and system specification (in whatever form they exist). Make sure that your tests verify the
requirements and use cases. When the core of the system is stable, you’re ready to move on and add
more functionality.
Phase 4: Iterate the use cases
Once the core framework is running, each feature set you add is a small project in itself. You add a
feature set during an iteration, a reasonably short period of development.
How big is an iteration? Ideally, each iteration lasts one to three weeks (this can vary based on the
implementation language). At the end of that period, you have an integrated, tested system with more
functionality than it had before. But what’s particularly interesting is the basis for the iteration: a single
use case. Each use case is a package of related functionality that you build into the system all at once,
during one iteration. Not only does this give you a better idea of what the scope of a use case should be,
but it also gives more validation to the idea of a use case, since the concept isn’t discarded after analysis
and design, but instead it is a fundamental until of development throughout the software-building
process.
You stop iterating when you achieve target functionality or an external deadline arrives and the
customer can be satisfied with the current version. (Remember, software is a subscription business.)
Because the process is iterative, you have many opportunities to ship a product instead of a single
endpoint; open-source projects work exclusively in an iterative, high-feedback environment, which is
precisely what makes them successful.
An iterative development process is valuable for many reasons. You can reveal and resolve critical
risks early, the customers have ample opportunity to change their minds, programmer satisfaction is
higher, and the project can be steered with more precision. But an additional important benefit is the
feedback to the stakeholders, who can see by the current state of the product exactly where everything
lies. This may reduce or eliminate the need for mind-numbing status meetings and increase the
confidence and support from the stakeholders.
Phase 5: Evolution
This is the point in the development cycle that has traditionally been called “maintenance,” a
catch-all term that can mean everything from “getting it to work the way it was really supposed to in the
first place” to “adding features that the customer forgot to mention” to the more traditional “fixing the
bugs that show up” and “adding new features as the need arises.” So many misconceptions have been
applied to the term “maintenance” that it has taken on a slightly deceiving quality, partly because it
suggests that you’ve actually build a pristine program and all you need to do is change parts, oil it, and
keep it from rusting. Perhaps there’s a better term to describe what’s going on.
I’ll use the term evolution. That is, “You won’t get it right the first time, so give yourself the
latitude to learn and to go back and make changes.” You might need to make a lot of changes as you
60
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
learn and understand the problem more deeply. The elegance you’ll produce if you evolve until you get
it right will
pay off, both in the short and the long term. Evolution is where your program goes from good to great,
and where those issues that you didn’t really understand in the first pass become clear. It’s also where
your classes can evolve from single-project usage to reusable resources.
What is it means to “get it right” isn’t just that the program works according to the requirements
and the use cases. It also means that the internal structure of the code makes sense to you, and feels like
it fits together well, with no awkward syntax, oversized objects, or ungainly exposed bits of code. In
addition, you must have some sense that the program structure will survive the changes that it will
inevitably go through during its lifetime, and that those changes can be made easily and cleanly. This is
no small feat. You must not only understand what you’re building, but also how the program will evolve
(what I call the vector of change). Fortunately, object-oriented programming languages are particularly
adapt at supporting this kind of continuing modification – the boundaries created by the objects are
what tend to keep the structure from breaking down. They also allow you to make changes – ones that
would seem drastic in a procedural program – without causing earthquakes throughout your code. In
fact, support for evolution might be the most important benefit of OOP.
英文文献译文
整个开发过程时,最重要的问题是:不要迷路。这是很容易做到的。大部分的分析和设计方
法都是为了解决最大的一些问题。记住,大多数的项目都不适合这一点,因此我们通常可以用一
个相对较小的子集成功地进行分析和设计。但是采用某种过程,不论它怎么有局限,总比一开始
就直接编码好得多。
在开发过程中很容易受阻,陷入到“分析瘫痪状态”,这种状态往往是由没有弄清当前阶段
的所有细节而感到不能继续了。记住,不论做了多少分析,总有系统的一些问题直到设计时才暴
露出来,并且更多的问题是到编程或是直到程序完成运行适才出现。因此,迅速进行分析和设计
并对提出的系统进行测试是很重要的。
这个问题值得强调。因为我们在面向过程型语言上的历史经验,一个项目组希望进入和实现
之前认真处理和理解每个细节,这是值得赞赏的。的确,在构造DBMS时,需要彻底理解用户的
需要。但是DBMS属于能很好表达和充分理解的一类问题。在许多这种程序中,数据库结构就是
主要问题之所在。本章讨论的编程问题属于所谓的“不定(will card)”(本人的术语)类型,
这种问题的解决方法不是将众所周知的解决方案简单地重组,而是包含一个或多个“不定因素”
—先前没有较了解的解决方案的要素,为此,需要研究。由于在分析阶段没有充分的信息去解决
这一类问题,所以在设计和执行之前试图彻底地分析“不定型”问题会造成分析瘫痪。解决“不
定型”问题需要在整个循环中反复,且需要冒风险(这是很有意义的,由于是在试图完成一些新
颖的且潜在回报很高的事情)。看来似乎有风险是由于“匆忙”进入初步实现而引起的,但是这
样反而可以降低风险,因为我们正在较早地确定一个特定的方法对这个问题是不是可行的。产品
开发也是一种风险管理。
经常有人提到“建立一个然后丢掉”。在OOP中,我们仍然可以把一部分丢掉,然而由于代
码被封装成类,在第一次的迭代中我们必将生成一些有用的类设计,并且一些不必抛弃的关于系
统设计的有价值的思想。因此,在问题的第一次快速遍历中不仅要为下一遍分析、设计及实现产
生关键的信息,还为下一遍建立代码基础。
也就是说,如果我们正在考虑的是一个包含丰富细节且需要许多步骤和文档的方法学,将很
难判断什么时候停止。应当牢记我们正努力寻找的是什么:
1. 什么是对象?(如何将项目分成多个组成部分?)
2. 它们的接口是什么?(需要向每个对象发送什么信息?)
只要我们知道了对象和接口,就可以编写程序了。由于各种的原因我们可能需要比这些更多
的描述和文档,但我们需要的信息不能比这些更少。
整个过程可以分5个阶段完成,阶段0只是使用一些结构的初始约定。
61
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
阶段0:制定计划
62
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
我们必须首先决定在此过程中应有那些步骤。这听起来很简单(事实上,所有听起来都是挺
简单的),但是人们常常在开始编码之前没有考虑这一问题。如果计划是“让我们一开始就编码”,
那很好(有时,当我们对问题充分理解时,这是合适的)。至少,我们承认这是一个计划。
在这个阶段,我们可能还要决定一些另外的过程结构,但不是全部。可以理解,有些程序员
喜欢用“休假方式”工作,也就是在开展他们的工作过程中,没有强制性的结构。“想做的时候
就做”。这也许在短时间内是吸引人的,但是我发现,在进程中设立一些里程碑可以帮助集中我
们的注意力,激发我们的热情,而不是只注意“完成项目”这个单一的目标。另外,里程碑将项
目分成更细的阶段使得风险更小(此外里程碑还提供更多庆祝的机会)。
当我开始研究小说结构时(有一天我也要写小说),我最初是反对结构思想的,我觉得自己
在写作时,直接下笔千言就行了,但是,稍后我认识到,在涉及计算机的文字时,本身结构足够
清晰,所以不需要多想。但是我仍然要组织文字结构,虽然这在我头脑中是半意识的。即便我们
认为自己的计划只是一上来就开始编码,在后续阶段仍然需要不断地询问和回答一些问题。
任务陈述
无论构建什么系统,不管如何复杂,都有其基本目的的,有其要处理的业务,有其所要满足
的基本需要。通过依次审视用户界面、硬件或系统的特殊细节、算法编码和效率问题,我们将最
终找出它的核心。通常简单又直接。就像来自好莱坞电影的所谓的高层概念,我们能用一句或两
句话表述。这种纯粹的表述是起点。
高层概念很重要,因为它设定了项目的基调,这是一种任务陈述。我们不必一开始就让它正
确(我们也许正处于在项目变得完全清晰之前的最后阶段),但是要不停地努力直到它越来越正
确。例如:在一个空中交通指挥系统中,我们可以从关于正在建立的系统的一个高层概念入手:
“塔楼程序跟踪飞机”。但是当我们将这一系统收缩以适用于一个非常小的机场时,它考虑将发
生什么情况:可能只有一个控制人员甚至什么都没有。一个更有用的模型不应当它描述问题那样
多地关注正在创建的解决方案,例如“飞机到达、卸货、维修、重新装货和离开等”。
第一阶段:我们在做什么?
这一阶段中我们有必要把注意力始终放在核心问题上:确定这个系统要做什么。为此,最有
价值的工具是一组所谓的“用例”。用例指明了系统中的关键特性,它们将战线我们使用的一些
基本的类。它们实际上是对类似下述这些问题的描述性回答:
“谁将使用这个系统?”
“执行者用这个系统做什么?
“执行者如何使用这个系统工作?”
“如果其他人也做这件事,或者同一个执行者有不同的目标,该怎么办?(揭示变化)
“当使用这个系统时,回发生什么问题?(揭示异常)
通过确定用户在系统中可能有的所有的交互行为,用例就生成了需求规范说明。我们试图找
到系统的完整用例,完成之后,我们就得到了系统任务的核心内容。将注意力集中在用例上的好
处是,它们总是带回到要点部分而不留心那些对完成任务无关紧要的问题。也就是说,如果得到
了全部用例就可以描述系统并进入到下一个阶段。在最初的尝试中我们很难完全得到特征,但这
已经很好了。任何事物随着时间的推移都会自己暴露出来,如果在这一点上就要求系统规范说明
完美将会永远止步不前。
阶段2:我们将如何建立对象?
在这一阶段,我们必须做出设计,描述这些类和他们如何交互。确定类和交互的出色技术是
类职责协同(Class-Responsibility-Collaboration, CRC)卡片。此技术的部分价值是它非常简
单:只有一组3到5英寸的空白卡片,在上面书写。每张卡片描述一个类,在卡片上写的内容是:
1. 类的名字。这是很重要的,因为名字体现了类行为的本质,所以有一目了然的作
用。
2. 类的职责:它应当做什么。通常,它可以仅由成员函数的名字陈述(因为在好的
设计中,这些名字应当是描述性的),但并不产生其他的注记。如果需要开始这个
过程,请从一个懒程序员的立场来看这个问题:你希望有什么样的对象魔术般地
63
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
表现,把你的问题全部解决?
3. 类的协同:它与其他类有哪些交互?“交互”是非常宽泛的术语。它可以是一些
已经存在的其他对象对这个类的对象提供的服务。协同还应当考虑这个类的观众。
例如如果创建了鞭炮,那么谁将观察它,是药剂师,还是观众?前者希望知道鞭
炮由什么化学成分组成,后者对鞭炮爆炸后的颜色和形状有反应。
我们可能想让卡片更大一些,因为我们希望从中得到全部信息,但是他们是非常小的,这
不仅能保持我们的类小,而且能防止过早地陷入许多的细节。如果一张小卡片上放不下类所需要
的信息,那么这个类就太复杂了(或者是考虑过细了,或者应当创建多个类)。理想的类应当一
目了然。CRC卡片的思想是帮助我们找到设计的第一印象,是的我们能得到总体概念,然后精炼
我们的设计。
在我们开始用CRC卡片之前,当提出最初的设计时,我最成功的咨询经验就是站在一个没
有OOP经验的项目组前,在白板上描述对象。我们讨论对象应当如何互相通信,擦除其中的一些,
用其他的对象代替它们。实际上我是在白板上管理所有的“CRC卡片”。项目组(他们知道项目
的目标)真正地在做这个设计,他们“拥有”这个设计,而不是获得即成的设计。我所做的所有
事情就是通过提问正确的问题,提炼这些假设,并且从项目组得到反馈,修改这些假设来指导这
个过程。这个过程的真正好处是项目组学习了如何做面向对象的设计,不是通过复审抽象的例子,
而是通过在一个设计上工作,这对于他们是最有兴趣的。
制作了一组CRC卡片之后,我们可能希望用UML创建这个设计的更形式化的描述。我们并
不非要用UML,但它可能有所帮助,特别是如果我们要将一个图表挂在墙上,让大家一起思考时,
这是一个很好的想法。除了UML之外的另一个选择是对象机器接口的文字描述,这或许依赖于我
们的程序设计语言,也就是代码本身。
UML还提供了另外一种图形符号来描述系统的动态模型。在一个系统或子系统的状态转换占
主导地位,以至于它们需要自己的图表的情况下,这是有帮助的(例如在控制系统中)。我们可
能还需要描述数据结构,因为系统或子系统中数据结构是重要因素(例如数据库)。
当已经描述了对象及其接口后,阶段2也就要完成了。这时已经知道了对象中的大多数,
通常会有对象漏掉,知道阶段3才被发现。这没问题。我们关心的是最终能够找到所有的对象。
在这个阶段较早地发现它们是好的。因为OOP提供了充分的结构,所以如果我们稍迟发现它们也
可以。事实上,对象设计可能在程序设计全过程的五个阶段中都会发生。
对象设计的五个阶段
阶段3:创建核心
这是从粗线条设计向编译和执行可执行代码体的最初转换阶段,特别是,它将证明或否定我
们的体系结构。这不是一遍的过程,而是反复地建立系统的一系列步骤的开始,我们将在阶段4
中看到这一点。
我们的目标是寻找实现系统体系结构的核心,尽管这个系统在第一遍不太完整。我们正在创
建一个框架,在将来的反复中可以完善它。我们正在完成第一遍多系统集成和测试,向风险承担
者提出反馈意见,关于他们的系统看上去如何以及如何发展等等。理想情况下,我们还可以暴露
一些严重的问题。我们大概还可以发现对最初的体系结构能做那些改变和改进----本来在没有实
现这个系统之前,可能是无法了解这些内容的。
建立这个系统的一部分工作是实际检查,就是对照需求分析和系统规范说明与测试结果(无
论需求分析和规范说明以何种形式存在)。确保我们的测试结果与需求和用例符合。当系统核心
稳定后,我们就可以向下进行和增加更多的功能了。
阶段4:迭代用例
一旦代码框架运行起来,我们增加的每一组特征本身就是一个小项目。在一次迭代期间,我
们增加一组特征,一次迭代是一个相当短的开发时期。
一次迭代有多长时间?理想情况下,每次迭代为一到三个星期(具体岁实现语言而异)。在
这个 期间的最后,我们得到一个集成的、测试过的、比前一周期有更多功能的系统。特别有
趣的是迭代的基础:一个用例。每个用例是一组相关功能,在一次迭代中加入系统。这不仅为我
64
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
们更好地提供了“用例应当处于什么范围内”的概念,而且还对用例概念进行了巩固,在分析和
设计之后这个概念并为丢弃,它是整个软件建造过程中开发的基础单元。
当我们达到目标功能或外部最终期限到了,并且客户对当前版本满意时,我们就停止迭代,
(记住,软件行业是建立在双方约定的基础上的。)因为这个过程是迭代的,所以我们有许多机会
交货,而不是只有一个终点;开放源代码项目是在一次迭代的和高反馈的环境中开发,而这正是
它成功的原因。
有许多理由说明迭代开发过程是有价值的。我们可以更早地揭露和解决严重问题,客户有足
够的机会改变它们的意见,程序员会更满意,能更精确地掌握项目。而另一个重要的好处是对风
险承担者意见的反馈,他们能从项目当前状态准确地看到各方面因素。这可以减少或消除令人头
脑昏昏然的会议,增强风险承担者的信心和支持。
阶段5:进化
这是开发周期中,传统上称为“维护”的一个阶段,是一个含义广泛的术语,包含了从“让
软件真正按最初提出的方式运行”到“添加用户忘记说明的性能”,到更传统的“排除暴露的错
误”和“在出现新的需求时添加性能”。所以,对术语“维护”有许多误解,它已经有点虚假的
成分,部分因为它假设我们已经实际上建立了原始的程序,且所有的需要就是改变其中一些部分,
加加油,防止生锈。也许,有更好的术语来描述所进行的工作。
此处将使用术语“进化”。这就是说,“我们不可能第一次就使软件正确,所以应该为学习、
返工和修改留有余地”。当我们对问题有了深入学习和领会之后,可能需要做大量的修改。如果
我们使软件不断进化,直到使软件正确,无论在短期内还是在长期内,将产生极为优雅的程序。
进化是使程序从好到优秀,是使第一遍不理解的问题变清楚的过程。它也是我们的类能从只为一
个项目使用进化为可重用资源的过程。
“使软件正确”的意思不只是使程序按照要求和用例工作,还意味着我们理解代码的内部
结构,并且认识到它能很好地协同工作,没有笨拙的语法和过大的对象,也没有难看的暴露的代
码。另外,必须认识到,程序结构将经历各种修改而保全下来,这些修改贯穿整个生命期,也要
认识到,这些修改可以是很容易进行和很简洁的。这可不是小成就。我们不仅必须懂得我们正在
建造的程序,而且必须懂得这个程序将进化[我称之为改变矢量(vector of change)]。幸运的
是,面向对象程序设计语言特别适合支持这样连续的修改,由对象创建的边界是防止结构被破坏
的保障。面向对象程序设计语言还允许我们做大幅度改变而不引起代码的全面动荡,这在面向过
程型程序中似乎太剧烈了。事实上,支持进化可能是OOP的最重要的好处。
65
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
附 录 二
登录模块主要代码如下
Option Explicit
Private Declare Function GetUserName Lib "" Alias "GetUserNameA" (ByVal lpbuffer As
String, nSize As Long) As Long
Public OK As Boolean
Dim txtSQL As String
Dim mrc As set
Dim MsgText As String
Dim miCount As Integer
Public UserName As String
Private Sub Form_Load()
Dim i As Integer
i = 0
txtSQL = "select * from user_Form"
Set mrc = ExecuteSQL(txtSQL, MsgText)
With txtUserName
Do While Not
i = i + 1
.AddItem Trim(mrc!user)
xt
Loop
.ListIndex = i - 1
End With
OK = False
miCount = 0
End Sub
Private Sub cmdCancel_Click()
OK = False
End Sub
Private Sub cmdOK_Click()
txtSQL = "select * from user_Form where user = '" & & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
us
Else
If Trim((1)) = Trim() Then
OK = True
UserName = Trim()
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
66
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
us
= ""
End If
End If
miCount = miCount + 1
If miCount = 3 Then
End If
Exit Sub
End Sub
Private Sub txtPassword_KeyDown(KeyCode As Integer, Shift As Integer)
EnterToTab KeyCode
End Sub
Private Sub txtPassword_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Call cmdOK_Click
End If
End Sub
Private Sub txtUserName_Click()
= ""
End Sub
Private Sub txtUserName_KeyDown(KeyCode As Integer, Shift As Integer)
EnterToTab KeyCode
End Sub
主窗体主要代码如下:
Private Sub boutsystem_Click()
系统说明.show
End Sub
Private Sub danweicanbaochx_Click()
单位参保信息查询.show
End Sub
Private Sub danweicanbaogl_Click()
单位参保信息管理.show
End Sub
Private Sub daweishow_Click()
End Sub
Private Sub dibao_Click()
End Sub
Private Sub dibaorenyuanchx_Click()
低保人员信息查询.show
End Sub
Private Sub dibaorenyuangl_Click(Index As Integer)
低保人员信息管理.show
End Sub
Private Sub gerencanbaochx_Click()
个人参保信息查询.show
End Sub
67
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Private Sub gerencanbaogl_Click()
个人参保信息管理.show
End Sub
Private Sub gongshang_ffchx_Click()
工伤保险基金发放查询.show
End Sub
Private Sub gongshang_ffgl_Click()
工伤保险基金发放管理.show
End Sub
Private Sub gongshang_ffshch_Click()
工伤保险基金发放删除.show
End Sub
Private Sub gongshang_ffxg_Click()
工伤保险基金发放信息修改.show
End Sub
Private Sub gongshang_jnchx_Click()
工伤保险基金缴纳查询.show
End Sub
Private Sub gongshang_jngl_Click()
工伤保险基金缴纳管理.show
End Sub
Private Sub gongshang_jnshch_Click()
工伤保险基金缴纳删除.show
End Sub
Private Sub gongshang_jnxg_Click()
工伤保险基金缴纳信息修改.show
End Sub
Private Sub shiye_ffchx_Click()
失业保险基金发放查询.show
End Sub
Private Sub shiye_ffgl_Click()
失业保险基金发放管理.show
End Sub
Private Sub shiye_ffshch_Click()
失业保险基金发放删除.show
End Sub
Private Sub shiye_ffxg_Click()
失业保险基金发放信息修改.show
End Sub
Private Sub shiye_jnchx_Click()
失业保险基金缴纳查询.show
End Sub
Private Sub shiye_jngl_Click()
失业保险基金缴纳管理.show
End Sub
Private Sub shiye_jnshch_Click()
失业保险基金缴纳删除.show
End Sub
Private Sub shiye_jnxg_Click()
68
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
失业保险基金缴纳信息修改.show
End Sub
Private Sub show_Click()
End Sub
Private Sub system_Click()
End
End Sub
Private Sub yanglao_ffchx_Click()
养老保险基金发放查询.show
End Sub
Private Sub yanglao_ffgl_Click()
养老保险基金发放管理.show
End Sub
Private Sub yanglao_ffshch_Click()
养老保险基金发放删除.show
End Sub
Private Sub yanglao_ffxg_Click()
养老保险基金发放信息修改.show
End Sub
Private Sub yanglao_jnchx_Click()
养老保险基金缴纳查询.show
End Sub
Private Sub yanglao_jngl_Click()
养老保险基金缴纳管理.show
End Sub
Private Sub yanglao_jnshch_Click()
养老保险基金缴纳删除.show
End Sub
Private Sub yanglao_jnxg_Click()
养老保险基金缴纳信息修改.show
End Sub
Private Sub yiliao_ffchx_Click()
医疗保险基金发放查询.show
End Sub
Private Sub yiliao_ffgl_Click()
医疗保险基金发放管理.show
End Sub
Private Sub yiliao_ffshch_Click()
医疗保险基金发放删除.show
End Sub
Private Sub yiliao_ffxg_Click()
医疗保险基金发放信息修改.show
End Sub
Private Sub yiliao_jnchx_Click()
医疗保险基金缴纳查询.show
End Sub
Private Sub yiliao_jngl_Click()
69
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
医疗保险基金缴纳管理.show
End Sub
Private Sub yiliao_jnshch_Click()
医疗保险基金缴纳删除.show
End Sub
Private Sub yiliao_jnxg_Click()
医疗保险基金缴纳信息修改.show
End Sub
养老保险基金缴纳管理模块主要代码如下:
Private Sub add_Click(Index As Integer)
On Error GoTo adderr
Exit Sub
adderr:
MsgBox ption
End Sub
Private Sub cancel_Click(Index As Integer)
On Error GoTo cancelerr
Batch adAffectAllChapters
MsgBox "取消成功", vbExclamation + vbOKOnly, "产品添加"
Exit Sub
cancelerr:
MsgBox ption
End Sub
Private Sub end_Click(Index As Integer)
Unload Me
End Sub
Private Sub update_Click(Index As Integer)
On Error GoTo updateerr
If Trim(txtfield(0).Text) = "" Then
MsgBox "名称不能为空", vbExclamation + vbOKOnly, "警告!"
txtfield(0).SetFocus
Exit Sub
End If
If Trim(txtfield(1).Text) = "" Then
MsgBox "缴纳编号不能为空", vbExclamation + vbOKOnly, "警告!"
txtfield(1).SetFocus
Exit Sub
End If
Batch adAffectAllChapters
MsgBox "保存成功", vbExclamation + vbOKOnly, "产品添加"
Exit Sub
updateerr:
MsgBox ption
End Sub
养老保险基金缴纳查询模块主要代码如下:
Private Sub Command1_Click(Index As Integer)
If Trim() = "" Then
MsgBox "查询编号不能为空", vbOKOnly + vbExclamation, "警告!"
us
70
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Exit Sub
End If
tionString = ConnectString
dType = adCmdText
Source = "select * from yanglao_jnglb where 缴纳编号 ='" + + "'"
h
End Sub
Private Sub Command2_Click(Index As Integer)
= ""
us
End Sub
Private Sub Command3_Click(Index As Integer)
Unload Me
End Sub
养老保险基金缴纳修改模块主要代码如下:
Private Sub Command1_Click()
If Trim() = "" Then
MsgBox "查询编号不能为空", vbOKOnly + vbExclamation, "警告!"
us
Exit Sub
End If
tionString = ConnectString
dType = adCmdText
Source = "select * from yanglao_jnglb where 缴纳编号 ='" + + "'"
h
End Sub
Private Sub Command2_Click()
= ""
us
End Sub
Private Sub command4_Click(Index As Integer)
On Error GoTo command4err
If Trim(txtfield(0).Text) = "" Then
MsgBox "名称不能为空", vbExclamation + vbOKOnly, "警告!"
txtfield(0).SetFocus
Exit Sub
End If
If Trim(txtfield(1).Text) = "" Then
MsgBox "名称不能为空", vbExclamation + vbOKOnly, "警告!"
txtfield(1).SetFocus
Exit Sub
End If
Batch adAffectAllChapters
MsgBox "修改成功", vbExclamation + vbOKOnly, "信息修改"
Exit Sub
command4err:
MsgBox ption
End Sub
Private Sub command5_Click(Index As Integer)
On Error GoTo cancelerr
71
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Batch adAffectAllChapters
MsgBox "取消成功", vbExclamation + vbOKOnly, "信息修改"
Exit Sub
cancelerr:
MsgBox ption
End Sub
Private Sub command6_Click(Index As Integer)
Unload Me
End Sub
养老保险基金缴纳删除模块主要代码如下:
Private Sub Command1_Click()
If Trim() = "" Then
MsgBox "查询编号不能为空", vbOKOnly + vbExclamation, "警告!"
us
Exit Sub
End If
tionString = ConnectString
dType = adCmdText
Source = "select * from yanglao_jnglb where 缴纳编号 ='" + + "'"
h
End Sub
Private Sub Command2_Click()
= ""
us
End Sub
Private Sub Command3_Click()
With set
If Not .EOF Then
If MsgBox("将删除当前基金缴纳表数据,是否继续?", vbCritical + vbYesNo, "基金缴纳") = vbYes
Then
.Delete
.MoveNext
If .EOF And .RecordCount > 0 Then .MoveLast
End If
End If
End With
End Sub
Private Sub command4_Click()
Unload Me
End Sub
公共模块代码如下:
Public Function ConnectString() As String
ConnectString = "Provider=.4.0;Data Source=" + _
+ ";Persist Security Info=False"
End Function
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As set
sTokens = Split(SQL)
Set cnn = New tion
ConnectString
Set rst = New set
72
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
装
┊
┊
┊
┊
┊
订
┊
┊
┊
┊
┊
线
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
XXX大学
毕业设计(论文)说明书
Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & Count & " 条记录 "
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & ption
Resume ExecuteSQL_Exit
End Function
Public Sub EnterToTab(Keyasc As Integer)
If Keyasc = 13 Then
SendKeys "{TAB}"
End If
End Sub
其他功能模块实现代码与养老保险基金缴纳管理模块类似,在此不一一附录了
73
发布者:admin,转转请注明出处:http://www.yc00.com/news/1710355015a1742846.html
评论列表(0条)