最新VB图书销售管理系统汇编Word文档格式.docx
- 文档编号:3222227
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:30
- 大小:1,006.55KB
最新VB图书销售管理系统汇编Word文档格式.docx
《最新VB图书销售管理系统汇编Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新VB图书销售管理系统汇编Word文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
2.1系统需求分析
一般的图书销售管理系统包括,进货管理,销售管理,库存管理,退货管理,销售统计,信息维护等功能。
以下介绍一下销售管理系统的一些必备功能,每个功能由若干相关的子模块构成。
进货管理
包括进书录入及查询
销售管理
主要对销售的情况进行记录及浏览销售情况
库存管理
主要对库存量进行录入与查询。
退货管理
对顾客退回来的书籍进行管理,包括退货录入及查询
销售统计
主要是对销售业绩进行统计,以报表的形式显示销售业绩
信息维护
主要包括图书信息维护,人员信息维护及用户信息维护,其中只有管理员可以对人员信息进行维护,管理员可以更改所有用户的信息,用户只能修改个人信息。
2.2系统的功能可用如图2-1所示框图表示。
图2-1
2.3数据库设计
本系统的数据库采用MicrosoftAccess2003
2.3.1建立Access数据库
启动Access2003,选择文件,新建,空数据库(books_sale.mdb),如图2-2所示
图2-2
2.3.2创建表
在上面的基础上,选择主菜单中的插入->
表格,根据要求设计相应的表格,本系统中设计的表格如下所示:
tb_login(用户登录信息表)
tb_buybooks(图书进货录入表)
tb_personnelinfo(人员信息维护表)
tb_sale(图书销售表)
tb_store(图书库存表)
tb_withdraw(图书退货表)
三:
系统具体实现
3.1欢迎界面
.在此界面中引用了一个第三方控件(ccrpprg6),它是一个进度条控件。
首先要加载此控件,具体方法是把压缩包ccrpprg6.zip解压缩,然后在工具箱的空白处单击鼠标右键,从弹出的快捷菜单中启动"
部件"
窗口,如图3-1所示。
图3-1
点击"
浏览"
按钮,从存放ccrpProgressBar控件的文件夹中找到ccrpprg.ocx文件。
应用"
后ccrpProgressBar控件
就添加到工具箱中了。
.向窗体中添加一个ccrpProgressBar控件和一个Timer控件
Timer控件的Interval值设置为100,与ccrpProgressBar控件的默认值一致。
.在timer1的timer事件中添加如下代码
Ifi=100Then
Frm_before.Hide
Timer1.Enabled=False'
定时器停止工作
Frm_login.Show
Else’i不为100则进度条向前进
ccrpProgressBar1.Value=i
i=i+2
EndIf
.使本窗体透明,新建一个模块Module1,添加如下代码
PublicDeclareFunctionSetLayeredWindowAttributesLib"
user32"
(ByValhwndAsLong,ByValcrKeyAsLong,ByValbAlphaAsByte,ByValdwFlagsAsLong)AsLong
’AnimateWindow是一个窗口打开和关闭时产生动画效果的新函数,因为是一个新的函数,所以在此定义
PublicConstWS_EX_LAYERED=&
H80000
PublicConstGWL_EXSTYLE=(-20)
PublicConstLWA_ALPHA=&
H2’表示把窗体设置成半透明样式
PublicConstLWA_COLORKEY=&
H1’不显示窗体中的透明色
PublicDeclareFunctionGetWindowLongLib"
Alias"
GetWindowLongA"
(ByValhwndAsLong,ByValnIndexAsLong)AsLong
PublicDeclareFunctionSetWindowLongLib"
SetWindowLongA"
(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
在form的load事件中加入如下代码
Timer1.Enabled=True
Timer1.Interval=100'
定时器开始工作
Frm_before.Visible=True
rtn=GetWindowLong(Me.hwnd,GWL_EXSTYLE)'
取窗口的原先样式
rtn=rtnOrWS_EX_LAYERED
'
使窗体添加上新的样式WS_EX_LAYERED
SetWindowLongMe.hwnd,GWL_EXSTYLE,rtn'
把新的样式赋给窗体
SetLayeredWindowAttributesMe.hwnd,0,150,LWA_ALPHA
把窗体设置成半透明样式,第二个参数表示透明程度取值范围0--255,为0时就是一个全透明的窗体了
3.2系统登录
.在窗体上加个adodc1控件,登录的主要代码为
DimiAsInteger
Adodc1.Refresh
Adodc1.Recordset.MoveLast
Adodc1.Recordset.MoveFirst
Fori=1ToAdodc1.Recordset.RecordCount
If控件名.Text="
"
Then’如果控件中的内容为空,则显示提示
MsgBox"
请选择用户类型!
vbOKOnly+vbInformation,"
注意"
ElseIf(Combo1.Text=Adodc1.Recordset.Fields("
userkind"
))And(Trim(Text1.Text)=Adodc1.Recordset.Fields("
name"
))And(Trim(Text2.Text)=Adodc1.Recordset.Fields("
password"
))Then’判断用户名与密码是否相符
Frm_main.Show
UnloadMe
ExitSub
Else
MsgBox"
无效的密码,请重试!
"
登陆"
Next
.若当前用户是新用户,则可以单击新用户注册进行注册,主要代码如下:
.在Module1中加入如下代码:
OptionExplicit
PublicconAsADODB.Connection
PublicrstAsADODB.Recordset
PublicSubOpenDataBase()
Setcon=NewADODB.Connection
con.ConnectionString="
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=books_sale.mdb;
PersistSecurityInfo=False"
Setrst=NewADODB.Recordset
con.Open
EndSub
.在caption属性为”新用户注册”的按纽的click事件中添加如下形式的代码
CallOpenDataBase
rst.Open"
tb_login"
con,adOpenStatic,adLockOptimistic,-1
IfText1.Text="
Then
…………提示不能为空
ElseIfText2.Text="
Else
Fori=1Torst.RecordCount
IfText1.Text=rst.Fields("
).ValueThen
该用户已存在,请重新输入用户名!
vbOKOnly+vbExclamation,"
用户"
Else
rst.MoveNext
EndIf
NextI’判断新的用户名是否与已存在的用户重名
rst.AddNew
rst.Fields("
字段名"
)=Text.Text
rst.Update
rst.Requery
rst.Close
新用户添加成功!
提示"
EndIf
3.3主界面
.选择VBIDE中的菜单栏中的工具->菜单编辑器,进行如下(图3-2)设置
图3-2
.加Toolbar控件,单击如图3-3中的
添加6个按纽,并分别设置其标题及关键字,对应的
与
中的数值要一致。
图3-3
在toolbar1的buttonclick事件中加入如下形式代码
SelectCaseButton.Key
Case"
关键字"
语句
EndSelect
.加ImageList控件,然后右击打开如图3-4的属性页,选择图像,单击
,添加6个图片
图3-4
.在图3-3中选择通用,然后设置其图像列表为ImageList1
即
.添加StatusBar,timer控件
在statusbar的属性页中,选择窗格,然后单击
,插入相应的窗格
在timer1的timer事件中加入语句
StatusBar1.Panels(3).Text=Time’显示当前系统时间
在form的load事件中的主要代码如下
StatusBar1.Panels
(1).Text="
欢迎使用图书销售管理系统!
StatusBar1.Panels
(2).Text=Format(Date,"
dddddd"
)
’以完整日期表示法显示当前系统中的日期
IfFrm_login.Combo1.Text="
0"
Then
Me.personnelim.Enabled=False
‘如果登录的用户为一般用户则该用户不能对人员信息进行维护
3.4进货管理
.进书录入
.在确定按纽的click事件中加入如下形式代码
表名"
表中字段名"
)=Text1.Text
新书添加成功!
提示”
.在form的load事件中加入如下语句
DTPicker1.Value=Date’使Dtpicker1的当前值为系统日期
.进书查询
在“查询“按纽的click事件中添加如下代码
DimsqlAsString
sql="
select*fromtb_buybookswhere"
IfCombo1.Text="
MsgBox"
请选择图书进货日期!
vbOKOnly+vbExclamation
Combo1.SetFocus
ExitSub
sql=sql&
"
ISBN='
&
Trim(Combo1.Text)&
Adodc1.RecordSource=sql
’查询指定日期的进书情况
3.5销售管理
.图书销售录入(代码同进书录入的代码)
.图书销售浏览
.在from的load事件中添加如下代码
CallOpenDataBase
rst.Open"
tb_sale"
.在通用代码段中添加如下形式代码
PublicSubviewdatas()
OnErrorResumeNext
Text.Text=rst.Fields("
字段名”)Value’把数据库中的字段值赋给相应的控件
.在”第一本”按纽的click事件中加入如下代码
rst.MoveFirst’移到表中的第一条记录
Callviewdatas
.在”上一本”按纽的click事件中加入如下代码
Ifrst.BOFThen’判断是否是第一条记录
已经是第一条记录!
vbOKOnly+vbInformation
rst.MovePrevious’向前移一条记录
.在”下一本”按纽的click事件中加入如下代码
Ifrst.EOFThen’判断是否是最后一条记录
已经是最后一条记录!
rst.MoveNext’向后移一条记录
.在”最末本”按纽的click事件中加入如下代码
rst.MoveLast’移到最后一条记录
3.6库存管理
.库存录入(代码同进书录入的代码)
.库存查询
.在“查询“按纽的click事件中添加如下代码
DimtxtSQLAsString
txtSQL="
select*fromtb_store"
IfText7.Text="
sMeg="
请输入图书编号!
MsgBoxsMeg,vbOKOnly+vbExclamation,"
警告"
Text7.SetFocus
txtSQL=txtSQL&
whereISBN='
Trim(Text7.Text)&
Adodc1.RecordSource=txtSQL’重新给数据源赋值’
Adodc1.Refresh
.Adodc1的记录源设置如图3-5所示:
图3-5
3.7退货管理
.退货录入(代码同进书录入的代码)
.退货查询(同库存查询)
3.8销售统计
.图书销售业绩报表
.选择VBIDE的菜单栏中的工程->
添加Datareport,添加一个数据报表,名称使用默认的Datareport1。
.设定Datareport对象的DataSource属性为Environment1。
.设定Datareport对象的DataMember属性为Command1。
.右击设计器,在弹出的快捷菜单中单击“检索结构”选项。
.向相应的节添加相应的控件。
报表Datareport1的设计界面如图3-6所示。
图3-6
在主窗体的菜单栏中选择销售统计->
图书销售业绩报表,加入语句DataReport1.Show
3.9信息维护
.图书信息维护(同图书销售浏览)
.人员信息维护
添加一些常用按纽之后,然后在人员信息维护中加一个(CommonDialog)
按纽,
在“浏览图片”的click事件中添加如下代码
WithMe.CommonDialog1
.DialogTitle="
选择要导入的图片"
.Filter="
选择图片类型|*.jpg|*.bmp|*.bmp|*.gif|*.*|*.jpg"
.ShowOpen
.InitDir=App.Path
Me.Picture1.Picture=LoadPicture(Me.CommonDialog1.FileName)
EndWith
.用户信息维护
在Form的load事件中加入如下代码
Then’判断当前使用者是管理员还是一般用户
Me.Combo1.Text=Frm_login.Text1.Text
’若为一般用户则该用户名赋值给Combo1.Text,否则,则把所有用户名都加到Combo1中
Sets=NewADODB.Connection
DimstrAsString
str="
provider=microsoft.jet.oledb.4.0;
datasource="
App.Path&
\books_sale.mdb;
persistsecurityinfo=false"
s.Openstr
Setc=NewADODB.Recordset
c.Open"
select*fromtb_login"
str,1,1
c.MoveFirst
WhileNotc.EOF
Combo1.AddItem(c.Fields("
).Value)
c.MoveNext
Wend
在“确定”按纽的click事件中加入如下代码
rst.Open"
Adodc1.RecordSource="
selectpasswordfromtb_loginwherename=combo1.text"
IfText1.Text<
>
).ValueThen
’判断输入的原密码是否与数据库中的相同
您输入的原密码不正确,请重新输入!
rst.Fields("
)=Text2.Text
rst.Update
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 VB 图书 销售 管理 系统 汇编