资源描述
化妆品销售管理系统
- 51 -
2020年5月29日
文档仅供参考
化妆品销售管理系统
课程名称:空间数据库基础
专 业:地理信息系统
班 级:0624111
设 计 组:第七小组
设 计 者:潘晓洋 秦建雨 刘钲 任高鹏
指导教师:苗东利、毛政利
设计时间: 12月
河南城建学院
测绘与城市空间信息系
一、课题及任务 - 2 -
1. 课题简介 - 2 -
2. 任务分派 - 2 -
二、系统需求分析调查 - 3 -
1.系统需求分析 - 3 -
2.系统功能简介 - 3 -
三、系统设计 - 4 -
1.系统总体设计 - 4 -
2.系统详细设计 - 4 -
3.数据库设计 - 4 -
四、系统实施 - 5 -
1.数据资源 - 5 -
月销售记录 - 5 -
积分表 - 5 -
资料表 - 5 -
密码 - 6 -
天销售记录 - 6 -
年销售记录 - 6 -
2.主程序设计 - 7 -
3.主要工作窗口 - 7 -
1.欢迎界面 - 7 -
2.登陆表单 - 8 -
3、主界面 - 9 -
4.用户注册 - 17 -
5.修改密码表单 - 17 -
6.用户注销 - 18 -
7.信息查询表单 - 19 -
8.查询结果浏览表单 - 20 -
9.基本信息修改表单 - 21 -
10.删除表单 - 23 -
11、商品增添表单 - 24 -
12、会员注册表单 - 25 -
13.积分查询表单 - 26 -
14.积分表单 - 27 -
15.积分用户注销 - 29 -
16.销售表单 - 29 -
17、关于表单 - 31 -
4.菜单设计 - 32 -
五、设计体会 - 33 -
六、参考文献 - 34 -
一、课题及任务
1. 课题简介
根据化妆品店的实际需求,开发的一个运行良好,管理方便的,便于销售,便于查询的管理系统。
2. 任务分派
刘钲: 建立资料表,积分表,天销售记录表,月销售记录表,年销售记录表,登陆表单,欢迎表单,用户注销表单;
秦建雨:信息查询表单,信息修改表单,信息增添表单,信息删除表单
任高鹏:积分(注册,查询,增添,注销)
潘晓洋:建立数据库,销售系统(销售表单,记录的删除(天记录,月记录,年记录))报表:天销售报表,月销售报表,年销售报表,关于表单,菜单与表单的挂载,主程序,连编,调试,界面美化。
二、系统需求分析调查
1.系统需求分析
现在发展迅速的信息时代,古老的纸质文档管理机制已不能很好的满足各大商家日常的管理与销售,一种有条理、简洁的管理系统迫切被需求。
2.系统功能简介
本系统具有基本的查询,增添,删除修改信息的功能,便捷易操作。在此基础之上,还增添了积分功能,使得来本店购买化妆品的每一个顾客都有一个记录,经过积分来促进销售,达到盈利倍增的目的。本系统支持多用户,可设置多个用户进行相同的管理。销售界面上具有保存记录的功能,能够经过相对应的菜单进行删除,使得管理更加人性化。经过本系统能够清晰地直观的看到各个数据的相关信息,使得浏览速度更加快捷,使用起来更加方便
三、系统设计
1.系统总体设计
2.系统详细设计
系统管理模块:登录密码的修改,新管理员的密码账号的创立,管理员信息的注销,退出系统;
数据更新维护模块:化妆品信息的基本查询,信息的修改,化妆品的删除,化妆品的增添;
积分模块:积分用户的注册,积分的查询,积分值的添加,积分用户的注销;
销售模块:1.销售
3.数据库设计
四、系统实施
1.数据资源
月销售记录
积分表
资料表
密码
天销售记录
年销售记录
2.主程序设计
主程序:SET TALK OFF
CLEAR ALL
close all
clear all
_SCREEN.VISIBLE=.F.
set sysmenu off
set defa to sys(5)+sys( )+'\'
do FORM 欢迎界面.scx
read events
RETURN
QUIT
3.主要工作窗口
1.欢迎界面
Form———Init
PUBLIC i as Integer
i=1
time———timer
i=i+1
IF i=9 THEN
thisform.Visible= .F.
RELEASE thisform
DO FORM 登录.scx
ENDIF
2.登陆表单
数据环境:密码.dbf
Form1—————— Init
PUBLIC count as Integer
count=1
Combo1.rowsourcetype=6
Combo1.rowsource=密码.姓名
Oleboundcontrol1控件:
Recordsource=密码.头像
command1————— click:
count=count+1
loca for ALLTRIM(密码.姓名)==alltrim(bo1.value)
IF thisform.text2.Value==""
MESSAGEbox("输入不能为空!")
else
if found()and ALLTRIM(密码.密码)==alltrim(thisform.text2.value)
DO FORM 主窗体.scx
release thisform
else
if count<3 then
=messagebox("输入有误!",48,"警告")
else
messagebox("对不起您是非法用户,系统将自动退出!",48,"警告")
quit
endif
endif
endif
command2——————click:
quit
3、主界面
数据环境:资料.dbf 积分表.dbf
Form1——————— init:
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
do 菜单1.mpr with this , .T.
thisform.text1.SetFocus
Olecontrol1——————init:
this.Nodes.Clear
This.LineStyle= 1 && tvwRootLines
this.labelEdit= 1 && tvwManual
This.Style= 7 && tvwTreelinesPlusMinusPictureText
This.ImageList=Thisform.Imagelist1 &&与Imagelist控件建立关联
this.labelEdit= 1 && tvwManual
this.Nodes.Add (,,"表","表",2)
this.Nodes.Add ("表",4,"资料表","资料表",2)
this.Nodes.Add ("表",4,"积分表","积分表",2)
this.Nodes.Add ("表",4,"天销售记录","天销售记录",2)
this.Nodes.Add ("表",4,"月销售记录","月销售记录",2)
this.Nodes.Add ("表",4,"年销售记录","年销售记录",2)
this.Refresh
nodeclick: *** ActiveX 控件事件 ***
LPARAMETERS node
DO CASE
CASE this.selectedItem.Text="表"
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag=""
CASE this.selectedItem.Text="积分表"
WITH thisform.grid1
.ColumnCount=3
.Column1.Header1.Caption="姓名"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="学号"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="积分"
Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag ="select * from 积分表 into cursor temp"
CASE this.selectedItem.Text="天销售记录"
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag ="sele * from 天销售记录 into cursor temp"
CASE this.selectedItem.Text="月销售记录"
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag ="sele * from 月销售记录 into cursor temp"
CASE this.selectedItem.Text="年销售记录"
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag ="sele * from 年销售记录 into cursor temp"
CASE this.selectedItem.Text="资料表"
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
this.Tag ="sele * from 资料 into cursor temp"
ENDCASE
thisform.grid1.RecordSource=this.Tag
thisform.Refresh
grid1:recordsource=资料
recordsourcetype=4
text1———————— interactivechange:
WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
thisform.grid1.RecordSource ="SELECT * FROM 资料 WHERE 品名 like ALLTRIM(thisform.text1 .value) +'%' INTO CURSOR temp"
thisform.grid1.refresh
command2:click: WITH thisform.grid1
.ColumnCount=8
.Column1.Header1.Caption="编号"
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption="品名"
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption="价格"
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption="规格"
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption="数量"
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption="产地"
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption="生产日期"
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption="保质期"
.Column1.width=50
.Column2.width=160
.Column3.width=50
endwith
thisform.grid1.recordsource="SELECT * FROM 资料 INTO CURSOR temp "
thisform.grid1.refresh
command3:click:
a=messagebox("是否接入网络?",4+32+0,"温馨提示")
if a=6
ThisForm.HyperLink1.NavigateTo("")
endif
4.用户注册
数据环境:密码.dbf
Command1—————————click:
a=alltrim(thisform.text1.value)
b=alltrim(thisform.text2.value)
if a=="".or.b==""
messagebox("输入不能为空!",48,"温馨提示")
else
append blank
replace 姓名 with a
replace 密码 with b
messagebox("注册成功!")
endif
command2———————— click:
thisform.text1.Value=""
thisform.text2.Value=""
5.修改密码表单
数据环境:密码.dbf
Combo1: rowsourcetype=6
Rowsource=密码.姓名
Command1————————click:
aa=bo1.value
bb=trim(thisform.text1.value)
if aa==""and bb==""
messagebox("数据不能为空!")
else
loca for 姓名=aa and 密码=bb
a=trim(thisform.text2.value)
if .not.姓名=aa or .not.密码=bb
messagebox("输入的用户名或者密码错误!",48,"温馨提示")
else
repl 密码 with a
messagebox("密码修改成功!")
endif
endif
release thisform
Command2————————click:
release thisform
6.用户注销
数据环境:密码.dbf
Command1————————click:
USE 密码.dbf EXCLUSIVE
LOCATE ALL FOR 姓名=ALLTRIM(thisform.text7.value)
IF EOF()
MESSAGEBOX("注销用户不存在!",48,"温馨提示")
ELSE
IF thisform.text7.Value==""
MESSAGEBOX("注销不能为空!",48,"温馨提示")
else
a=messagebox("是否删除?",4+32+0,"温馨提示")
if a=6
dele ALL FOR 姓名=ALLTRIM(thisform.text7.value)
pack
messagebox("删除成功!")
ENDIF
ENDIF
ENDIF
thisform.Refresh
7.信息查询表单
数据环境:资料.dbf
Command1————————click:
do case
case thisform.optiongroup1.value=1
select * from 资料 where 编号=alltrim(thisform.text4.value) into cursor temp
case thisform.optiongroup1.value=2
select * from 资料 where 品名 like alltrim(thisform.text1.value)+"%" into cursor temp
case thisform.optiongroup1.value=3
select * from 资料 where 单价>=thisform.text2.value and 单价<=thisform.text3.value into cursor temp
endcase
do form 查询结果浏览.scx
command2————————click:
release thisform
8.查询结果浏览表单
Form1————————init:
Thisform.grid1.recordsourcr=temp
Thisform.grid1.refresh
9.基本信息修改表单
数据环境:资料.dbf
Form1————————init:
thisform.text2.Enabled= .F.
thisform.text3.Enabled= .F.
thisform.text4.Enabled= .F.
thisform.text5.Enabled= .F.
thisform.text6.Enabled= .F.
thisform.text2.readonly= .t.
thisform.text3.readonly= .t.
thisform.text4.readonly= .t.
thisform.text5.readonly= .t.
thisform.text6.readonly= .t.
Command1————————click:
GO top
LOCATE ALL FOR ALLTRIM(资料.编号)==ALLTRIM(thisform.text1.Value)
IF thisform.text1.Value==""
MESSAGEBOX("查询不能为空!",48,"温馨提示")
else
IF FOUND()
thisform.text2.Value=编号
thisform.text3.Value=品名
thisform.text4.Value=单价
thisform.text5.Value=规格
thisform.text6.Value=数量
ELSE
MESSAGEBOX("无此记录",48,"温馨提示")
endif
endif
command2————————click:
DO CASE
CASE thisform.check5.value=1
replace 编号 WITH ALLTRIM(thisform.text2.Value)
CASE thisform.check1.Value=1
replace 品名 WITH ALLTRIM(thisform.text3.Value)
CASE thisform.check2.Value=1
replace 单价 WITH thisform.text4.Value
CASE thisform.check3.Value=1
replace 规格 WITH ALLTRIM(thisform.text5.Value)
CASE thisform.check4.Value=1
replace 数量 WITH thisform.text6.Value
ENDCASE
MESSAGEBOX("修改成功!")
Command3———————— thisform.text1.Value=""
thisform.text1.setfocus
check1————————click:
thisform.text3.Enabled= .t.
thisform.text3.readonly= .f.
check2————————click:
thisform.text4.Enabled= .t.
thisform.text4.readonly= .f.
check3————————click:
thisform.text5.Enabled= .t.
thisform.text5.readonly= .f.
check4————————click:
thisform.text6.Enabled= .t.
thisform.text6.readonly= .f.
check5————————click:
thisform.text2.Enabled= .t.
thisform.text2.readonly= .f.
command4————————click:
RELEASE thisform
10.删除表单
数据环境:资料.dbf
Form1————————init:
thisform.list1.Visible= .F.
text1————————enteractivechange:
thisform.list1.RowSource=”sele 品名 from 资料 where 品名 likeALLTRIM(thisform.text1.value)+'%' into cursor temp "
thisform.list1.Refresh
list1————————click:
thisform.text1.Value=thisform.list1.Value
thisform.list1.Visible= .F.
command1————————click:
USE 资料.dbf EXCLUSIVE
GO top
loca ALL FOR
展开阅读全文