资源描述
办公用品管理信息系统
班级:09电子商务
姓名:熊弈 王晗 黄剑锋
目录
摘要……………………………………………………………………………………………..3
1.办公用品管理模块概述
1.1办公用品管理模块开发的目的
1.2办公用品管理模块开发的意义
1.3系统的开发方法
2. 系统分析与总体设计
2.1 系统需求分析
2.2 系统体系结构设计
2.3数据库结构设计
2.3.1部门信息表
2.3.2分类信息表
2.3.3供应商信息表
2.3.4库存信息表
2.3.5入库信息表
2.3.6领用信息表
2.3.7领用信息明细表
2.3.8用户信息表
3.登录窗体和系统主界面设计
3.1设计登录窗体
3.2 设计主界面
4. 基本信息管理模块设计
4.1设计分类信息管理窗体
4.2设计部门管理窗体
4.3设计供应商信息编辑窗体
4.4设计供应商信息管理窗体
5.办公用品信息管理模块设计
5.1设计入库信息编辑窗体
5.2 设计入库信息管理窗体
5.3 设计库存信息管理窗体
5.4设计领用信息编辑窗体
5.5 设计领用信息管理窗体
5.6 设计领用明细编辑窗体
5.7 设计领用明细信息管理窗体
6.数据统计管理模块设计
6.1设计库存短缺统计窗体
6.2 设计入库统计窗体
6.3设计领用统计窗体
7.用户管理模块设计
7.1 设计用户信息编辑窗体
7.2 设计用户管理窗体
8.总结
摘要
在新的时期,基于多年办公自动化建设经验和互连网技术的发展,我们对办公用品管理自动化的认识也越来越清楚,从网络的性质来看,办公用品管理自动化应定位于内部网,从办公性质来看,办公用品管理自动化应定位于数字化办公,从信息化建设的角度来看,办公用品管理自动化应是信息化建设的重要组成部分。
办公用品管理自动化可以和一个企业的业务结合的非常紧密,甚至是定制的。因而可以将诸如办公用品信息管理、物品分发,统计等功能与具体业务密切关联。操作人员只须点击一个按钮就可以得到想要的结果,从而极大得方便了企业领导的管理和决策。
每个企业经营者,都在利用规范的管理流程来提高企业的效益。可这一切仅靠人是很难及时准确地完成包括统计在内的工作。针对这些企业办公用品管理存在的缺陷,我开发了办公用品管理模块,目的是要做到科学化、自动化、系统化、规范化,用电脑管理来替代原来以手工、复杂、繁琐的办公用品管理。
该模块主要为办公用品申领服务。它包括办公用品信息管理、办公用品的申请、办公用品的分发、办公用品的统计、物品领取权限管理、入库管理六大功能,目的是要做到科学化、自动化、系统化、规范化的电脑管理,进一步有效的解决了公司内部以手工为主,复杂、繁琐的办公用品管理问题。
1.办公用品管理模块概述
1.1办公用品管理模块开发的目的
办公用品管理模块开发的总体目标:以先进成熟的计算机和通信技术为主要手段,建成一个覆盖企业办公部门办公用品管理信息系统,通过网络技术,提高本单位的办公用品管理的效率,为领导决策和办公提供服务,实现办公用品管理现代化、信息资源化、传输网络化和决策科学化。
办公用品管理模块开发的根本目的有两个:第一是将管理规范化、合理化、高效化,贯穿先进的管理思想;第二是通过数据采集和分析处理,为领导层提供决策支持。具体地说,实行办公用品管理自动化后,将增强职工的协同工作能力,增进职工之间的沟通与共享;强化领导的监控管理,增强领导的决策支持;提高工作效率,提高工作的透明度;加速工作的运转速度,提高工作质量;降低管理成本,提高管理水平,促进管理的规范化。
1.2办公用品管理模块开发的意义
办公用品管理模块开发的意义:随着网络技术和软件技术的飞速发展,特别是Internet/Intranet的出现及其相关技术的迅速发展,信息革命带来了全球范围市场竞争的日益加剧,对传统的办公和生活方式产生了巨大冲击。所有的企业都面临着严峻的挑战,面对这样的形势,越来越多的企业打算或正在将计算机网络技术引入到企业的日常经营管理上来,改变过去单纯的手工办公方式,以便在企业内实现信息共享、协同工作乃至科学的管理和决策,从而提高效率、增强企业的竞争力。
每个企业经营者,都在利用规范的管理流程来提高企业的效益。可这一切仅靠人是很难及时准确地完成包括统计在内的工作。针对这些企业办公用品管理存在的缺陷,我开发了办公用品管理模块,目的是要做到科学化、自动化、系统化、规范化,用电脑管理来替代原来以手工、复杂、繁琐的办公用品管理,为广大企、事业单位提高管理效益助一臂之力。办公用品管理系统将成为每个企、事业的小当家,在理清家务的同时,减少浪费,花出该花的,省下可省的。弥补企业管理上的漏洞,提高管理员的工作效率,为公司带来经济效益。
1.3系统的开发方法
(1)本系统采用VB可视化面向对象的快速开发工具开发
(2)由于本系统设计成单机版。后台数据库采用ACCESS2003。
(3)开发工具:中文版Visual Basic6.0、ACCESS2003
(4)客户端运行环境:Windowxp
(5)系统分析是采用系统的思想和方法,把复杂的对象分解成简单的组成部分,找出这些部分的基本属性和彼此之间的联系。针对现行办公用品计算机管理系统中存在的问题,为了提高信息采集的迅速性和准确性,利用计算机所具有的特殊功能处理宾馆客房管理系统中大量复杂的数据,及时输出各种管理信息和业务信息,为各级人员有效的管理和决策提供有力的依据,提高工作效率和经济效益,在全面调查的基础上提出了系统的总体逻辑描述。
2. 系统分析与总体设计
2.1 系统需求分析
办公用品管理系统的用户是各单位管理办公用品的员工和领导。主要功能包括基本信息管理、办公用品管理和数据统计等,具体说明如下:
(1) 基本信息的添加、修改、删除和查询。基本信息包括分类、部门和供应商等内容,为办公用品管理和数据统计模块提供依据。
(2) 办公用品信息的添加、修改、删除和查询。办公用品信息包括领用信息、入库信息和库存信息。
(3)数据统计模块包括库存短缺统计、入库统计和领用统计等功能。
2.2 系统体系结构设计
办公用品管理系统功能模块
办公用品管理系统
基本信息 管理
部门管理
分类管理
供应商管理
领用管理
入库统计
领用统计
用户信息管理
修改自身密码
办公用品管理
入库管理
库存管理
数据统计管理
库存短缺统计
系统用户管理
用户管理功能模块
系统用户信息管理
Admin 用户
普通用户
修改Admin用户的密码
创建、修改和删除普通用户信息
修改自身的用户名和密码
系统流程分析图
开始
用户登录
失败超过3次
失败
重试
退出程序
是
读取用户类型
成功
普通用户
Admin用户
管理自己的用户信息
1.管理自己的用户信息
2.管理普通用户的用户信息
基本信息管理
办公用品管理
数据统计管理
用户管理模块
办公用品管理模块
2.3数据库结构设计
2.3.1部门信息表
编号
字段名称
数据结构
说明
1
2
DepId
自动编号
记录编号,主键
DepName
文本,长度50
部门名称
2.3.2分类信息表
编号
字段名称
数据结构
说明
1
TypeId
自动编号
记录编号,主键
2
TypeName
文本,长度50
分类名称
3
UpperId
数字/长整性
上级分类编号
2.3.3供应商信息表
编号
字段名称
数据结构
说明
1
Sid
自动编号
记录编号,主键
2
SName
文本,长度100
供应商名称
3
Tel
文本,长度50
电话
4
Address
文本,长度100
地点
5
Contact
文本,长度50
联系人
6
Memos
文本,长度200
备注信息
2.3.4库存信息表
编号
字段名称
数据结构
说明
1
OId
自动编号
记录编号,主键
2
OName
文本,长度50
办公用品名称
3
OStyle
文本,长度50
型号
4
TypeLd
数字/长整型
办公用品分类编号
5
OAmount
数字/整型
库存数量
6
MOin
数字/整型
最小库存数量,库存低于此数量则表示库存短缺
7
Memos
文本,长度200
备注信息
2.3.5入库信息表
编号
字段名称
数据结构
说明
1
InId
自动编号
记录编号,主键
2
OId
数字/长整型
办公用品编号
3
InDate
日期/时间
入库日期
4
SId
数字/长整型
供应商编号
5
InAmount
数字/整型
入库数量
6
InSum
数字/单精度型
入库总金额
7
Memos
文本,长度200
备注信息
8
Flag
数字/字节
状态标志,0表示创建,1便是入库
2.3.6领用信息表
编号
字段名称
数据结构
说明
1
Id
自动编号
记录编号,主键
2
CreateDate
日期/时间
领用日期
3
DepId
数字/长整型
领用部门编号
4
Flag
数字/字节
领用标记。0表示未领用,1表示已领用
2.3.7领用信息明细表
编号
字段名称
数据结构
说明
1
Id
自动编号
记录编号,主键
2
DId
数字/长整型
领用单编号
3
OId
数字/长整型
办公用品编号
4
OAmount
数字/整型
领用数量
2.3.8用户信息表
编号
字段名
数据类型
说明
1
UserName
文本,长度50
用户名,主键
2
UserPwd
文本,长度50
密码
3.登录窗体和系统主界面设计
当系统运行时,首先打开登录,只有有权限的用户才能进入系统。登录成功后,将显示系统主界面。
3.1设计登录窗体
Public PasswordKey As String
Public Try_times As Integer
Public NameKey As String
Private Sub Cmd_Cancel_Click()
End
End Sub
Private Sub Cmd_OK_Click()
Dim j As Single
'数据有效性检查
If txtUser = "" Then
MsgBox "请输入用户名"
txtUser.SetFocus
Exit Sub
End If
If txtPwd = "" Then
MsgBox "请输入密码"
txtPwd.SetFocus
Exit Sub
End If
NameKey = Trim(txtUser)
PasswordKey = Trim(txtPwd)
'判断用户是否存在
If MyUser.In_DB(NameKey) = False Then
MsgBox "用户名不存在"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
Exit Sub
End If
End If
'判断密码是否正确
MyUser.GetInfo (NameKey)
If MyUser.UserPwd <> PasswordKey Then
MsgBox "密码错误"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
Exit Sub
End If
End If
'登录成功,将当前用户的信息保存在CurUser中
CurUser.GetInfo (MyUser.UserName)
'关闭自己
Unload Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
3.2 设计主界面
Private Sub Form_Load()
FrmLogin.Show 1
End Sub
Private Sub mn_ChangePwd_Click()
With FrmUserEdit
.OriUser = CurUser.UserName
.txtUserName = CurUser.UserName
.txtPass = CurUser.UserPwd
.txtPass2 = CurUser.UserPwd
.txtUserName.Enabled = False
.Modify = True
.Show 1
End With
End Sub
Private Sub mn_Department_Click()
FrmDepMan.Show 1
End Sub
Private Sub mn_Draw_Click()
FrmDrawMan.Show 1
End Sub
Private Sub mn_Exit_Click()
DBapi_Disconnect
End
End Sub
Private Sub mn_In_Click()
FrmStoreInMan.Show 1
End Sub
Private Sub mn_SByDraw_Click()
FrmSByDraw.Show 1
End Sub
Private Sub mn_SByIn_Click()
FrmSByIn.Show 1
End Sub
Private Sub mn_Short_Click()
FrmShortMan.Show 1
End Sub
Private Sub mn_Store_Click()
FrmStoreMan.Show 1
End Sub
Private Sub mn_Supplier_Click()
FrmSupplierMan.Show 1
End Sub
Private Sub mn_Types_Click()
FrmTypeMan.Show 1
End Sub
Private Sub mn_Users_Click()
'只有系统管理员才能进入用户管理窗体
If Trim(CurUser.UserName) = "Admin" Then
FrmUserMan.Show 1
Else
'其他用户只能编辑自己的用户信息
With FrmUserEdit
.OriUser = CurUser.UserName
.txtUserName = CurUser.UserName
.txtPass = CurUser.UserPwd
.txtPass2 = CurUser.UserPwd
.txtUserName.Enabled = False
.Modify = True
.Show 1
End With
End If
End Sub
4. 基本信息管理模块设计
基本信息管理模块包括分类信息管理、部门信息管理和供应商信息管理。
4.1设计分类信息管理窗体
Private Sub Form_Load()
LoadTypes
DataList2.Enabled = False
End Sub
'装入一级分类名称
Private Sub LoadTypes()
Adodc1.ConnectionString = Conn
Adodc1.RecordSource = "Select * From Types Where UpperId=0 Order By TypeId"
Adodc1.Refresh
Set DataList1.RowSource = Adodc1
DataList1.ListField = "TypeName"
DataList1.BoundColumn = "TypeId"
End Sub
'根据一级分类编号 装入二级分类名称
Private Sub LoadTypes2()
Adodc2.ConnectionString = Conn
Adodc2.RecordSource = "Select * From Types Where UpperId=" + Trim(DataList1.BoundText()) + " Order By TypeId"
Adodc2.Refresh
Set DataList2.RowSource = Adodc2
DataList2.ListField = "TypeName"
DataList2.BoundColumn = "TypeId"
End Sub
'修改选项时,数据列表状态更改
Private Sub Option1_Click(Index As Integer)
If Index = 0 Then
DataList1.Enabled = True
DataList2.Enabled = False
Else
DataList1.Enabled = False
DataList2.Enabled = True
End If
End Sub
4.2设计部门管理窗体
Public OriDepId As Long
Public OriOldName As String
Private Sub Cmd_Add_Click()
'添加部门名称,先判断域是否为空
If Len(Trim(txtName)) = 0 Then
MsgBox ("请输入部门名称")
txtName.SetFocus
Exit Sub
End If
'判断数据库中是否已经存在此部门名称
If MyDep.In_DB(Trim(txtName)) = True Then
MsgBox ("已经存在此部门名称")
txtName.SetFocus
Exit Sub
End If
'插入新记录
With MyDep
.DepName = Trim(txtName)
.Insert
MsgBox ("添加成功")
End With
DataRefresh
End Sub
Private Sub Cmd_Back_Click()
Unload Me
End Sub
Private Sub Cmd_Del_Click()
If Len(Trim(DataList1.BoundText)) = 0 Then
MsgBox ("请选择记录")
Exit Sub
End If
' 确定删除
If MsgBox("是否确定要删除 ", vbYesNo, "请确认") = vbNo Then
Exit Sub
End If
'判断其他表中是否存在此部门信息
' 删除部门
MyDep.Delete (Val(DataList1.BoundText))
MsgBox ("删除成功")
DataRefresh '刷新DataList1
End Sub
Private Sub Cmd_Modi_Click()
'修改部门名称
If Len(Trim(DataList1.BoundText)) = 0 Then
MsgBox ("请选择记录")
Exit Sub
End If
'判断新的名称是否和原来的相同
If Trim(txtName) = OriOldName Then
Exit Sub
End If
'判断新的名称是否已经存在
If MyDep.In_DB(Trim(txtName)) = True Then
MsgBox ("已经存在此部门名称")
txtName.SetFocus
Exit Sub
End If
'更新部门名称
MyDep.DepName = Trim(txtName)
MyDep.Update (OriDepId)
MsgBox ("修改成功")
DataRefresh '刷新部门列表
End Sub
Private Sub DataList1_Click()
If Len(Trim(DataList1.Text)) = 0 Then
Exit Sub
End If
OriDepId = DataList1.BoundText
txtName = Trim(DataList1.Text)
OriOldName = Trim(DataList1.Text)
End Sub
Private Sub Form_Load()
'装入部门信息
DataRefresh
End Sub
Private Sub DataRefresh()
'设置连接字符串
Adodc1.ConnectionString = Conn
Adodc1.RecordSource = "Select * From Department Order By DepId"
Adodc1.Refresh
Set DataList1.RowSource = Adodc1
DataList1.ListField = "DepName"
DataList1.BoundColumn = "DepId"
DataList1.Refresh
End Sub
4.3设计供应商信息编辑窗体
Public OriSId As Long
Public Modify As Boolean
Private Sub Cmd_Cancel_Click()
Unload Me
End Sub
Private Sub Cmd_OK_Click()
'检查输入数据的有效性
If Len(Trim(txtName)) = 0 Then
MsgBox "请输入供应商名称"
txtName.SetFocus
Exit Sub
End If
If Len(Trim(txtContact)) = 0 Then
MsgBox "请输入联系人姓名"
txtContact.SetFocus
Exit Sub
End If
If Len(Trim(txtTel)) = 0 Then
MsgBox "请输入联系电话"
txtTel.SetFocus
Exit Sub
End If
With MySupplier
.SName = Trim(txtName)
.Tel = Trim(txtTel)
.Address = Trim(txtAddress)
.Contact = Trim(txtContact)
.Memos = Trim(txtMemo)
If Modify = False Then
.Insert
MsgBox "添加成功"
Else
.Update (OriSId)
MsgBox "保存成功"
End If
End With
Unload Me
End Sub
Private Sub Form_Load()
End Sub
4.4设计供应商信息管理窗体
Private Sub Cmd_Add_Click()
FrmSupplierEdit.Modify = False
FrmSupplierEdit.Show 1
DataRefresh
End Sub
Private Sub Cmd_Back_Click()
Unload Me
End Sub
Private Sub DataRefresh()
Dim StrSearch As String
StrSearch = ""
If Len(Trim(txtName)) > 0 Then '设置查询条件
StrSearch = " Where SName Like '%" + Trim(txtName) + "%'"
End If
Adodc1.ConnectionString = Conn
Adodc1.RecordSource = "Select SId,SName AS 供货商名称,Tel AS 联系电话," _
+ "Address AS 地址,Contact AS 联系人,Memos AS 备注" _
+ " From Supplier " + StrSearch + " Order By SId"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Columns(0).Width = 0
DataGrid1.Columns(1).Width = 1600
DataGrid1.Columns(2).Width = 1400
DataGrid1.Columns(3).Width = 1800
DataGrid1.Columns(4).Width = 1400
DataGrid1.Columns(5).Width = 1600
End Sub
Private Sub Cmd_Del_Click()
If Adodc1.Recordset.EOF Then
MsgBox "请选择记录"
Exit Sub
End If
'判断入库信息表中是否存在此供应商信息
If MyIn.GetSupplier(Adodc1.Recordset.Fields(0)) Then
MsgBox "不允许删除此供应商"
Exit Sub
End If
MySupplier.Delete (Adodc1.Recordset.Fields(0))
MsgBox "删除成功"
DataRefresh
End Sub
Private Sub Cmd_Modi_Click()
If Adodc1.Recordset.EOF Then
MsgBox "请选择记录"
Exit Sub
End If
FrmSupplierEdit.Modify = True
FrmSupplierEdit.OriSId = Adodc1.Recordset.Fields(0)
FrmSupplierEdit.txtName = Trim(Adodc1.Recordset.Fields(1))
FrmSupplierEdit.txtTel = Trim(Adodc1.Recordset.Fields(2))
FrmSupplierEdit.txtAddress = Trim(Adodc1.Recordset.Fields(3))
FrmSupplierEdit.txtContact = Trim(Adodc1.Recordset.Fields(4))
FrmSupplierEdit.txtMemo = Trim(Adodc1.Recordset.Fields(5))
FrmSupplierEdit.Show 1
DataRefresh
End Sub
Private Sub Cmd_Search_Click()
DataRefresh
End Sub
Private Sub DataGrid1_Click()
End Sub
Private Sub Form_Load()
DataRefresh
End Sub
5.办公用品信息管理模块设计
办公用品信息管理模块包括入库管理、库存管理和领用管理等功能。
5.1设计入库信息编辑窗体
Public OriInId As Long
Public Modify As Boolean
Private Sub Cmd_Cancel_Click()
Unload Me
End Sub
Private Sub Cmd_OK_Click()
If Len(Trim(dco_UType.Text)) = 0 Then
MsgBox "请选择一级分类名称"
dco_UType.SetFocus
Exit Sub
End If
If Len(Trim(dco_Type.Text)) = 0 Then
MsgBox "请选择二级分类名称"
dco_Type.SetFocus
Exit Sub
End If
If Len(Trim(dco_Store.Text)) = 0 Then
MsgBox "请选择办公用品名称"
dco_Store.SetFocus
Exit Sub
End If
If Len(Trim(dco_Supplier.Text)) = 0 Then
MsgBox "请选择供货商名称"
dco_Supplier.SetFocus
Exit Sub
End If
If Len(Trim(txtDate)) = 0 Then
MsgBox "请输入入库日期"
txtDate.SetFocus
Exit Sub
End If
If Len(Trim(txtAmount)) = 0 Or Val(txtAmount) = 0 Then
MsgBox "请输入入库数量"
txtAmount.SetFocus
Exit Sub
End If
With MyIn
.OId = dco_Store.BoundText()
.InDate = Trim(txtDate)
.SId = dco_Supplier.BoundText()
.InAmount = Val(txtAmount)
.InSum = Val(txtSum)
.Memos = Trim(txtMemo)
If Modify = False Then
.Insert
MsgBox "添加成功"
Else
.Update (OriInId)
MsgBox "保存成功"
End If
End With
Unload Me
End Sub
Private Sub dco_Type_Click(Area As Integer)
If Len(Trim(dco_Type.Text)) > 0 Then
Ado_Store.ConnectionString = Conn
Ado_Store.RecordSource = "Select * From Store Where TypeId=" + Trim(dco_Type.BoundText()) + " Order By OId"
Ado_Store.Refresh
Set dco_Store.RowSource = Ado_Store
dco_Store.ListField = "OName"
dco_Store.BoundColumn = "OId"
dco_Store.Text = ""
End If
End Sub
Private Sub dco_UType_Click(Area As Integer)
If Len(Trim(dco_UType.Text)) > 0 Then
Ado_Type.ConnectionString = Conn
Ado_Type.RecordSource = "Select * From Types Where UpperId=" + Trim(dco_UType.BoundText()) + " Order By TypeId"
Ado_Type.Refresh
Set dco_Type.RowSource = Ado_Type
dco_Type.ListField = "TypeName"
dco_Type.BoundColumn = "TypeId"
dco_Type.Text = ""
End If
End Sub
Private Sub Form_Load()
'装入分类信息
Ado_UType.ConnectionString = Conn
Ado_UType.RecordSource = "Select * From Types Where UpperId=0 Order By TypeId"
Ado_UType.Refresh
Set dco_UType.RowSource = Ado_UType
dco_UType.ListField = "TypeName"
dco_UType.BoundColumn = "TypeI
展开阅读全文