工资管理系统数据库
数据库课程设计报告
题 目 工资管理系统 专业班级 计算机科学与技术 学 号 姓 名合 作 者 指导教师
(2008年12月)
目 录
数据库课程设计报告 .............................................................................................................................. 1 1. 开发环境和相关技术介绍 .................................................................................................................. 5 1.1开发环境 . ...................................................................................................................................... 5 1.2相关技术介绍 . .............................................................................................................................. 5 2. 需求分析 . ............................................................................................................................................. 5 2.1系统需求和功能 ........................................................................................................................... 5 2.1.2功能需求描述 . ...................................................................................................................... 6 2.1.2.1员工基本信息模块 . .......................................................................................................... 6 2.1.2.2工资结构设置模块 . .......................................................................................................... 6 2.1.2.3工资汇总模块 . .................................................................................................................. 6 2.2数据字典 . ...................................................................................................................................... 6 2.2.1数据结构 . .............................................................................................................................. 7 2.2.2数据项 . .................................................................................................................................. 7 2.2.3数据流 . .................................................................................................................................. 8 2.4安全性要求 . .................................................................................................................................. 8 2.5一致性要求 . .................................................................................................................................. 9 2.6完整性要求 . .................................................................................................................................. 9 3 概念结构设计 ...................................................................................................................................... 9 3.1设计方法和步骤 ........................................................................................................................... 9 3.2概念结构E-R 图 ........................................................................................................................... 9 4. 逻辑结构设计 ...................................................................................................................................... 9 4.1具体RDBMS 数据模型转换 ........................................................................................................... 9 4.2系统结构图 . ................................................................................................................................ 10 5. 数据库物理设计 ................................................................................................................................ 10 5.1索引的选择建立 ......................................................................................................................... 10 5.2数据存放位置 . ............................................................................................................................ 10 5.3确定系统配置 . ............................................................................................................................ 10 6. 数据库实施 ........................................................................................................................................ 10 6.1数据库创建 . ................................................................................................................................ 10 6.1.1各数据表说明 . .................................................................................................................... 10 6.1.2数据库创建 . ........................................................................................................................ 11 6.2数据库备份和恢复方案 ............................................................................................................. 13 6.2.1应用辅助工具进行备份和恢复 ......................................................................................... 13 6.2.2分离数据库法 . .................................................................................................................... 13 6.3用户界面设计和应用程序编码 ................................................................................................. 13 6.3.1用户界面设计 . .................................................................................................................... 13 6.3.2类文件功能描述 . ................................................................................................................ 14 6.3.3主要代码分析 . .................................................................................................................... 14 }7.系统测试方案和测试报告 .............................................................................................................. 21 7.1测试方案 . .................................................................................................................................... 21 7.2测试过程 . .................................................................................................................................... 21 7.2.1登陆测试 . ............................................................................................................................ 21 8. 安装和使用说明 ................................................................................................................................ 25 8.1安装说明 . .................................................................................................................................... 25
8.1.1安装VB6.0E . ....................................................................................................................... 25 8.1.2安装Microsoft SQL Server 2000 ODBC驱动程序 ....................................................... 25 8.1.3升级Microsoft SQL Server 2000数据库管理系统 ..................................................... 25 8.1.4附加数据库 . ........................................................................................................................ 25 8.1.5可能出现情况 . .................................................................................................................... 25
9. 完成情况和总结 ................................................................................................................................ 25 9.1总结 . ............................................................................................................................................ 25
1. 开发环境和相关技术介绍
1.1开发环境
项目名称: 工资管理系统
开发软件:vb6.0与Access 2000 运行环境:2000/XP/2003
1.2相关技术介绍
Microsoft SQL Server 2000数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系统支持并扩展了SQL 语言标准,可以运用标准SQL 语句对数据进行操作,也可以使用功能强大的GUI 工具进行灵活的数据管理。同时,系统还提供功能完善的API ,可以在应用程序中调用这些API 来实现与数据库系统的连接以及相关数据的操作。sp3是该系统的一个版本号,只有sp4以上的SQL 2000系统才能够支持纯ODBC 连接方式。
Vb6.0功能强大的应用程序开发工具,主要支持基于面向对像化的语言的各种开发项目。
2. 需求分析
2.1系统需求和功能
工资管理信息系统对企业加强工资管理有着重要的作用,就一般的大型企业
来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等。
由于本软件主要是为作者工作的一家科技公司定制开发的。该公司是一家刚刚成立的公司,总体人员比较少,有正式员工20人,人员结构比较简单,学历比较高,基本拥有大专以上学历,部门划分也很清晰,而且人员的流动性不高,所以公司目前对工资管理的要求不高。因此,针对该公司而言,我们经过反复论证,最终确定了工资管理系统的设计方案,该工资管理系统的主要功能如图3.1所示:
2.1.2功能需求描述 2.1.2.1员工基本信息模块
员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工可以通过员工号或员工姓名对员工信息进行查询。 2.1.2.2工资结构设置模块
根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资、工龄工资三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。 2.1.2.3工资汇总模块
用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。
2.2数据字典
该软件的数据库由下述四张数据表组成:
员工信息表、基础工资设置表、岗位工资设置表
2.2.1数据结构 工资总=(ID,编号) 管理=(用户名)
员工信息=(ID,编号) 2.2.2数据项
2.2.3数据流
2.4安全性要求
访问数据库时需要输入登陆帐号和密码。在数据库内设有管理员表,登陆系统时会要求输入管理员帐号和密码。登陆模块根据输入帐号和密码查管理员表,查到匹配记录则允许其登陆系统。管理员帐号和密码可以在系统中添加和修改。
2.5一致性要求
在管理系统相关的表之间,有较强的关联性。为了实现一致性的需求,各个表之间均建立起了相应的一致性约束。 2.6完整性要求
根据工资管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。
3 概念结构设计
3.1设计方法和步骤
采用自底而上的设计方法。先自顶向下地进行需求分析,对工资管理系统的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。 3.2概念结构E-R 图
通过对局部应用的选择,逐一设计出分E-R 图,并对各个分E-R 图进行合并,生成初步E-R 图,消除不必要的系统冗余,可以得出以下工资管理系统E-R 图。
图3.1 工资管理系统E-R 图
4. 逻辑结构设计
4.1具体RDBMS 数据模型转换
由于Microsoft SQL Server 2000系统支持上述数据模型,所以不用进行特定的转换。
4.2系统结构图
图4.1 系统结构图
5. 数据库物理设计
5.1索引的选择建立
由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必需。本系统采用B+树索引方法,分别在各Customer,Diretory,Order 和OrderDetail 各个表的主键上建立索引。 5.2数据存放位置
本系统数据和索引存放在磁盘中。 5.3确定系统配置
根据具体需要配置。
6. 数据库实施
6.1数据库创建 6.1.1各数据表说明
表6.1 数据表描述表
6.1.2数据库创建
在Microsoft SQL Server 2000的企业管理器中完成数据库和数据表的创建,具体SQL 脚本请参见附录gz.sql
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[wage]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [wage](
[name] [char](10) NOT NULL,
[wage] [money] NULL,
CONSTRAINT [PK_wage] PRIMARY KEY CLUSTERED
(
[name] ASC
) WITH (IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[部门]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [部门](
[部门编码] [char](10) NOT NULL,
[部门名称] [char](10) NULL,
CONSTRAINT [PK_部门] PRIMARY KEY CLUSTERED
(
[部门编码] ASC
) WITH (IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[员工信息]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [员工信息](
[工号] [char](10) NOT NULL,
[姓名] [char](10) NULL,
[部门编号] [char](10) NULL,
[性别] [char](10) NULL,
[身份证] [char](10) NULL,
[帐号] [char](10) NULL,
[家庭地址] [char](10) NULL
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[工资]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [工资](
[工号] [char](10) NOT NULL,
[姓名] [char](10) NULL,
[部门编码] [char](10) NULL,
[性别] [char](10) NULL,
[身份证号码] [char](10) NULL,
[银行帐号] [char](10) NULL,
[基本工资] [money] NULL,
[奖金] [money] NULL,
[应扣] [money] NULL,
[应扣] [money] NULL,
[保险] [money] NULL,
[应发工资] [money] NULL,
[实发工资] [money] NULL,
[发放时间] [smalldatetime] NULL,
CONSTRAINT [PK_工资] PRIMARY KEY CLUSTERED
(
[工号] ASC
) WITH (IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[测试]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [测试](
[gz] [money] NULL,
[dd] [datetime] NULL,
[ss] [money] NULL,
[aa] [char](10) NULL
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[汇总]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [汇总](
[部门编码] [char](10) NOT NULL,
[基本工资] [money] NULL,
[奖金] [money] NULL,
[应扣工资] [money] NULL,
[应发工资] [money] NULL,
[保险] [money] NULL,
[应发工资] [money] NULL,
[实发工资] [money] NULL,
CONSTRAINT [PK_汇总] PRIMARY KEY CLUSTERED
(
[部门编码] ASC
) WITH (IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N '[dbo].[用户信息]') AND type in (N 'U' ))
BEGIN
CREATE TABLE [dbo]. [用户信息](
[用户名] [char](10) NOT NULL,
[密码] [char](10) NULL,
CONSTRAINT [PK_用户信息] PRIMARY KEY CLUSTERED
(
[用户名] ASC
) WITH (IGNORE_DUP_KEY = OFF ) ON [PRIMARY]
) ON [PRIMARY]
END
6.2数据库备份和恢复方案
6.2.1应用辅助工具进行备份和恢复
应用数据库辅助工具(如sqlbackuptools„)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。
6.2.2分离数据库法
在企业管理器中右击需要备份的数据库,选择“所有任务”,“分离数据库”,执行分析操作,拷贝数据库MDF 文件和LDF 文件。
恢复方案:在企业管理器的控制台树中选择“数据库”节点,右击,“所有任务”,“附加数据库”,找到待恢复数据库的MDF 文件,确定。
6.3用户界面设计和应用程序编码
6.3.1用户界面设计
本系统的用户界面用vb 编写,主要由1个主界面和10个辅助对话框组成。主界面集合系统主要基本功能按键,辅助对话框负责采集用户输入信息和做基本的信息处理。
图10 用户界面
6.3.2类文件功能描述
6.3.3主要代码分析
==============================================================================
Dim rs As ADODB.Recordset
Dim con As New ADODB.Connection
Dim mysql As String
Dim gzxx, jj, kk, bf, hz As Node '声明TreeView1节点
Dim i, s As Integer 's用来记录数据库的字段数,I 用来作为循环变量
Private Sub Command1_Click()
prtfg1. 打印 DataGrid1
End Sub
Private Sub Command2_Click()
Me.Hide
Command1.Enabled = False
End Sub
Private Sub Form_Load()
Set con = New ADODB.Connection
con.ConnectionString = "provider=Microsoft.jet.oledb.4.0;data
source=gzgl.mdb;persist security info=false"
con.CursorLocation = adUseClient
con.Open
mysql = "select 姓名, 科室, 职务, 基本工资, 津贴, 奖金, 洗理, 书报, 交通, 工资扣 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号"
Set rs = con.Execute(mysql)
' 设置TreeView1中所要显示的节点名称
Set gzxx = TreeView1.Nodes.Add(, , "gzxx", "工资信息")
Set jj = TreeView1.Nodes.Add(, , "jj", "奖金汇总")
Set kk = TreeView1.Nodes.Add(, , "kk", "扣款汇总")
Set bf = TreeView1.Nodes.Add(, , "bf", "补助汇总")
Set hz = TreeView1.Nodes.Add(, , "hz", "工资条信息")
Set DataGrid1.DataSource = rs '设置DataGrid1数据源
s = rs.Fields.Count
For i = 0 To s - 1
' 循环设置DataGrid1中各列宽度
DataGrid1.Columns(i).Width = 1300
Next i
Command1.Enabled = False '只有当显示了工资条信息后" 打印" 按钮才可以使用 End Sub
Private Sub Form_Resize()
' 窗口位置和大小布局
TreeView1.Height = Me.Height - Toolbar1.Height
DataGrid1.Width = Me.Width - TreeView1.Width
DataGrid1.Height = Me.Height - Toolbar1.Height
Toolbar1.Top = DataGrid1.Height
Toolbar1.Width = Me.Width
Command1.Left = Me.Width / 2 - (Command1.Width + Command2.Width) / 2 Command2.Left = Me.Width / 2
End Sub
Private Sub TreeView1_Click()
Select Case TreeView1.SelectedItem.Index
Case 1 '单击" 工资信息" 节点
mysql = "select 姓名, 科室, 职务, 基本工资, 津贴, 奖金, 洗理, 书报, 交通, 工资扣 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号"
Set rs = con.Execute(mysql)
Set DataGrid1.DataSource = rs
s = rs.Fields.Count
For i = 0 To s - 1
DataGrid1.Columns(i).Width = 1300
Next i
Case 2 '单击" 奖金汇总" 节点
mysql = "select 姓名, 科室, 职务, 奖金 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号"
Set rs = con.Execute(mysql)
Set DataGrid1.DataSource = rs
s = rs.Fields.Count
For i = 0 To s - 1
DataGrid1.Columns(i).Width = 3200
Next i
Case 3 '单击" 扣款汇总" 节点
mysql = "select 姓名, 科室, 职务, 工资扣 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号"
Set rs = con.Execute(mysql)
Set DataGrid1.DataSource = rs
s = rs.Fields.Count
For i = 0 To s - 1
DataGrid1.Columns(i).Width = 3200
Next i
Case 4 '单击" 补助汇总" 节点
mysql = "select 姓名, 科室, 职务, 津贴 + 洗理 + 书报 + 交通 as 补助汇总 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号"
Set rs = con.Execute(mysql)
Set DataGrid1.DataSource = rs
s = rs.Fields.Count
For i = 0 To s - 1
DataGrid1.Columns(i).Width = 3200
Next i
Case 5 '单击" 工资条信息" 节点
mysql = "select 姓名, 科室, 职务, 基本工资, 奖金, 津贴 + 洗理 + 书报 + 交通 as 补助, 基本工资 + 奖金 + 津贴 + 洗理 + 书报 + 交通 as 应发工资, 工资扣 as 应扣工资, 应发工资-应扣工资 as 实发工资 from 员工信息, 工资总 where 员工信息. 编号=工资总. 编号" Set rs = con.Execute(mysql)
Set DataGrid1.DataSource = rs
s = rs.Fields.Count
For i = 0 To s - 1
DataGrid1.Columns(i).Width = 1445
Next i
Command1.Enabled = True
End Select
End Sub
===================================================================================
Dim Flag As Boolean
Private Sub Command1_Click()
diskname = Year(Now) & "-" & Month(Now) & ".xls"
Flag = FloppyDrive("A:")
If Flag = False Then
MsgBox "A:驱没有准备好,请将磁盘插入驱动器!", 48, "警告"
'-------------------------------
'函数:检查软驱中是否有盘的存在
'-------------------------------
Else
ExporToExcel ("select 员工信息. 编号 as 编号, 姓名, 科室, 职务, 基本工资, 津贴, 工资扣, 洗理, 书报, 交通, 奖金, 日期 from 工资总, 员工信息 where 员工信息. 编号=工资总. 编号")
MsgBox "恭喜你,数据导出成功", 48, "祝贺"
Me.Hide
End If
End Sub
Private Sub Command2_Click()
Me.Hide
End Sub
Private Sub Form_Load()
Set con = New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=gzgl.mdb;Persist Security Info=false"
con.CursorLocation = adUseClient
con.Open
Label1.Caption = "生成Excel 格式上报盘" + "请确认软驱中已插入软盘"
End Sub
==============================================================================================================================================
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim mysql As String
Dim a, i, msg, j, m As Integer
Private Sub Command2_Click(Index As Integer)
Select Case Index
Case 0 '第一条记录
rst.MoveFirst
Command2(0).Enabled = False
Command2(1).Enabled = False
Command2(2).Enabled = True
Command2(3).Enabled = True
Case 1 '上一条记录
rst.MovePrevious '上一条
If rst.BOF Then
MsgBox "已经没有上一条记录了", 48, "警告"
rst.MoveFirst
Command2(0).Enabled = False
Command2(1).Enabled = False
Command2(2).Enabled = True
Command2(3).Enabled = True
End If
Command2(2).Enabled = True
Command2(3).Enabled = True
Case 2 '下一条记录
rst.MoveNext
If rst.EOF Then
MsgBox "已经没有最后一条记录了", 48, "警告"
Command2_Click (3)
rst.MoveLast
Command2(2).Enabled = False
Command2(3).Enabled = False
Command2(1).Enabled = True
Command2(0).Enabled = True
End If
Command2(1).Enabled = True
Command2(0).Enabled = True
Case 3 '末尾一条记录
rst.MoveLast
Command2(2).Enabled = False
Command2(3).Enabled = False
Command2(1).Enabled = True
Command2(0).Enabled = True
Case 4
For i = 0 To a - 1
Text1(i).Enabled = True
Next i
Case 5
Form9.Show 1
Case 6
Me.Hide '关闭
Case 7
msg = MsgBox("您确定删除该员工信息吗?", vbOKCancel, "警告")
If msg = 1 Then
rst.Delete
rst.MoveNext
End If
End Select
Text1(0).Text = IIf(IsNull(rst.Fields("姓名").Value), "", rst.Fields("姓名").Value) '填充记录
Text1(1).Text = IIf(IsNull(rst.Fields("政治面貌").Value), "", rst.Fields("政治面貌").Value) '填充记录
Text1(2).Text = IIf(IsNull(rst.Fields("职务").Value), "", rst.Fields("职务").Value) '填充记录
Text1(3).Text = IIf(IsNull(rst.Fields("科室").Value), "", rst.Fields("科室").Value) '填充记录
Text1(4).Text = IIf(IsNull(rst.Fields("生日").Value), "", rst.Fields("生日").Value) '填充记录
Text1(5).Text = IIf(IsNull(rst.Fields("军烈属").Value), "", rst.Fields("军烈属").Value) '填充记录
Text1(6).Text = IIf(IsNull(rst.Fields("出勤天数").Value), "", rst.Fields("出勤天数").Value) '填充记录
Text1(7).Text = IIf(IsNull(rst.Fields("缺勤天数").Value), "", rst.Fields("缺勤天数").Value) '填充记录
Text1(8).Text = IIf(IsNull(rst.Fields("基本工资").Value), "", rst.Fields("基本工资").Value) '填充记录
Text1(9).Text = IIf(IsNull(rst.Fields("奖金").Value), "", rst.Fields("奖金").Value) '填充记录
Text1(10).Text = IIf(IsNull(rst.Fields("津贴").Value), "", rst.Fields("津贴").Value) '填充记录
Text1(11).Text = IIf(IsNull(rst.Fields("洗理").Value), "", rst.Fields("洗理").Value) '填充记录
Text1(12).Text = IIf(IsNull(rst.Fields("书报").Value), "", rst.Fields("书报").Value) '填充记录
Text1(13).Text = IIf(IsNull(rst.Fields("交通").Value), "", rst.Fields("交通").Value) '填充记录
Text1(14).Text = IIf(IsNull(rst.Fields("工资扣").Value), "", rst.Fields("工资扣").Value) '填充记录
Text1(15).Text = Val(Text1(8).Text) + Val(Text1(9).Text) + Val(Text1(10).Text) + Val(Text1(11).Text) + Val(Text1(12).Text) + Val(Text1(13).Text)
Text1(16).Text = Text1(14).Text
Text1(17).Text = Val(Text1(15).Text) - Val(Text1(16).Text)
End Sub
Private Sub Form_Load()
Set con = New ADODB.Connection
a = Text1.Count
con.ConnectionString = "provider=microsoft.jet.oledb.4.0;data
source=gzgl.mdb;persist security info=false"
con.CursorLocation = adUseClient
con.Open
rst.Open "select * from 员工信息, 工资总 where 员工信息.ID=工资总.ID", con, adOpenKeyset, adLockOptimistic
If rst.BOF = True Or rst.EOF Then
MsgBox "数据库是空的!"
Else
Text1(0).Text = rst.Fields("姓名").Value
Text1(1).Text = rst.Fields("政治面貌").Value
Text1(2).Text = rst.Fields("职务").Value
Text1(3).Text = rst.Fields("科室").Value
Text1(4).Text = rst.Fields("生日").Value
Text1(5).Text = rst.Fields("军烈属").Value
Text1(6).Text = rst.Fields("出勤天数").Value
Text1(7).Text = rst.Fields("缺勤天数").Value
Text1(8).Text = rst.Fields("基本工资").Value
Text1(9).Text = rst.Fields("奖金").Value
Text1(10).Text = rst.Fields("津贴").Value
Text1(11).Text = rst.Fields("洗理").Value
Text1(12).Text = rst.Fields("书报").Value
Text1(13).Text = rst.Fields("交通").Value
Text1(14).Text = rst.Fields("工资扣").Value
Text1(15).Text = Val(Text1(8).Text) + Val(Text1(9).Text) + Val(Text1(10).Text) + Val(Text1(11).Text) + Val(Text1(12).Text) + Val(Text1(13).Text)
Text1(16).Text = Text1(14).Text
Text1(17).Text = Val(Text1(15).Text) - Val(Text1(16).Text)
End If
For i = 0 To a - 1
Text1(i).Enabled = False
Next i
End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
msg = MsgBox("您确定修改该员工的信息吗?", vbOKCancel, "提示")
If msg = 1 Then
If Not (rst.EOF) Then
rst.Fields("姓名").Value = CStr(Text1(0).Text)
rst.Fields("政治面貌").Value = CStr(Text1(1).Text) rst.Fields("职务").Value = CStr(Text1(2).Text) rst.Fields("科室").Value = CStr(Text1(3).Text) rst.Fields("生日").Value = CStr(Text1(4).Text) rst.Fields("军烈属").Value = CStr(Text1(5).Text) rst.Fields("出勤天数").Value = CStr(Text1(6).Text) rst.Fields("缺勤天数").Value = CStr(Text1(7).Text) rst.Fields("基本工资").Value = CStr(Text1(8).Text) rst.Fields("奖金").Value = CStr(Text1(9).Text) rst.Fields("津贴").Value = CStr(Text1(10).Text) rst.Fields("洗理").Value = CStr(Text1(11).Text) rst.Fields("书报").Value = CStr(Text1(12).Text) rst.Fields("交通").Value = CStr(Text1(13).Text) rst.Fields("工资扣").Value = CStr(Text1(14).Text)
Text1(15).Text = Val(Text1(8).Text) + Val(Text1(9).Text) + Val(Text1(10).Text) + Val(Text1(11).Text) + Val(Text1(12).Text) +
Val(Text1(13).Text)
Text1(16).Text = Text1(14).Text
Text1(17).Text = Val(Text1(15).Text) -
Val(Text1(16).Text)
End If
End If
End If
End Sub
}7. 系统测试方案和测试报告
7.1测试方案
由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。
7.2测试过程
(白盒测试过程略(参考代码),以下是系统黑盒测试过程:)
7.2.1登陆测试
双击可执行文件gzglzc1.exe 打开应用系统,可见登陆界面:
图11 系统界面
上图为工资管理系统的主界面, 由菜单和工具栏组成. 当单击菜单栏中”其它” ”更改密码”即可打开如下图所示的密码更改窗口.
密码更改
在这个窗口里, 用户可以更改自己的登陆密码, 但不能更改其它用户的登陆密码. 如果要更改其它用户的登陆密码, 只有管理员才能权限进行更改.
员工基本信息
如上图所示为员工信息管理窗口, 在这个窗口里, 用户或管理员可以添加、修改和删除员工的基本信息,同时还可以查询员工信息。比如工资信息等。
查询条件
上图为查询条件的选择窗口,在这个窗口中用户可以选择三种查询方式,分别是姓名、部门、日期。当选择按部门来查询并按下“确定”时会打开下图所示的窗口。在这个窗口中用户可以按员工所在的部门信息来查询。
按部门查询
报表打印
上图为报表打印窗口,在这个窗口中,用户可以按工资信息、资金汇总、扣款汇总、补助汇总、工资条信息来打印。
工资报表生成
这个窗口主要是生成工资报表以Execl 格式存放到软盘。
8. 安装和使用说明
8.1安装说明
8.1.1安装VB6.0
8.1.2安装Microsoft SQL Server 2000 ODBC驱动程序
该驱动程序可以实现ODBC 与MS SQL的连接,使ODBC 可以灵活地与数据库系统进行数据通信。(安装文件见附录)
8.1.3升级Microsoft SQL Server 2000数据库管理系统
JDBC 连接方式需要sp3版本的Microsoft SQL Server 2000数据库管理系统才能够支持,如果数据库管理系统版本低于sp3可以使用升级补丁进行升级。(补丁文件见附录)
8.1.4附加数据库
将本系统数据库附加到Microsoft SQL Server 2000系统中。具体方式为:打开“企业管理器”→打开目录数直到“数据库”结点 →右击“数据库”→选择“所有任务”→选择“附加数据库”→找到数据库MDF 文件(见附录)→“确定”。
8.1.5可能出现情况
完成以上配置后就可以运行本系统,如果无法运行则可能是由于以下原因: a. 数据库系统登陆问题,本系统登陆2000数据库系统的用户名为:sa, 密码为空,如果目标机器的Microsoft SQL Server 2000数据库系统不存在sa 用户,或者该用户密码不为空则无法进行正常数据库连接。解决方法有:方法1. 修改数据库管理系统用户名和密码(用户名:sa, 密码为空); b.登陆方式问题,在“企业管理器”的“属性”中的“安全”选项卡下将登陆方式修改为SQL Server 和Windows 混合登陆。
8.2使用说明
参考测试过程。
9. 完成情况和总结
9.1总结
通过独立完成本次课程设计,我对数据库这门课程有了更加深刻的理解。在对系统数据库的分析、设计中,碰到很多概念上很模糊的问题,通过查阅相关资料,问题得到了解决,设计工作也顺利进行。另外,通过运用ODBC 数据库连接技术,我对vb 数据库编程技术也有了一定的了解和认识,希望通过以后的学习继续加深这方面知识的掌握。
参考文献
[1]王汝传. 计算机图形学[M].北京:人民邮电出版社,1999:123-130.
[2]刘榴娣,刘明奇,党长民. 实用数字图像处理[M].北京:北京理工大学出版,2000:12 25..
[3]丁兆海.Delphi 基础教程[M].北京:电子工业出版社,1999.
[4]王小华.Delphi 5程序设计与控件参考[M].北京:电子工业出版社,1999:70-120.
[5]赵子江. 多媒体技术基础[M].北京:机械工业出版社,2001:118-130.
[6]段来盛,郑城荣,曹恒.Delphi 实战演练[M].北京:人民邮政出版社,2002:80-95.