綜合案例六 小型超市零售管理系統(tǒng)
【實(shí)驗(yàn)?zāi)康呐c要求】
1.熟練使用VFP的操作環(huán)境
2.熟練使用項(xiàng)目管理器管理各種文件
3.掌握數(shù)據(jù)庫的設(shè)計(jì)方法和步驟
4.熟練掌握數(shù)據(jù)庫表及其表之間關(guān)系的創(chuàng)建與使用
5.掌握查詢與視圖的創(chuàng)建與使用
6.掌握程序設(shè)計(jì)的基本方法
7.掌握表單及其表單中各種控件的設(shè)計(jì)與使用
8.掌握菜單的創(chuàng)建和使用
【系統(tǒng)功能模塊】
1) 進(jìn)貨管理: 根據(jù)銷售情況及庫存情況,自動(dòng)制定進(jìn)貨計(jì)劃(亦可手工制定修改),可以避免盲目進(jìn)貨造成商品積壓。 按計(jì)劃單有選擇性地進(jìn)行自動(dòng)入庫登記。 綜合查詢打印計(jì)劃進(jìn)貨與入庫記錄及金額。
2) 銷售管理: 商品正常銷售、促銷與限量、限期及禁止銷售控制。 綜合查詢各種銷售明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)帳情況等。 按多種方式統(tǒng)計(jì)生成銷售排行榜,靈活察看和打印商品銷售日、月、年報(bào)表。
3) 庫存管理: 綜合查詢庫存明細(xì)記錄。 庫存狀態(tài)自動(dòng)告警提示。如庫存過剩、少貨、缺貨等。軟件為您預(yù)警,避免庫存商品積壓損失和缺貨。 庫存自動(dòng)盤點(diǎn)計(jì)算。
4) 人員管理: 員工、會(huì)員、供貨商、廠商等基本信息登記管理。 員工操作權(quán)限管理。 客戶銷售權(quán)限管理。
【功能模塊說明】
1)輸入單據(jù):出庫、入庫、產(chǎn)成品清單
2)查詢:出庫查詢、入庫查詢、產(chǎn)成品查詢
3)銷售:銷售費(fèi)用、銷售退款、進(jìn)/退貨
4)打印報(bào)表:入庫報(bào)表、出庫報(bào)表、產(chǎn)成品清單報(bào)表、銷售退款單報(bào)表進(jìn)/退貨報(bào)表
5)人員管理:員工、會(huì)員、供貨商、廠商等基本信息登記管理。 員工操作權(quán)限管理??蛻翡N售權(quán)限管理。
【實(shí)驗(yàn)內(nèi)容】
1、數(shù)據(jù)庫設(shè)計(jì)
本應(yīng)用系統(tǒng)的數(shù)據(jù)庫主要包括以下基本表,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下。
表1:廠商信息表
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
廠商編號(hào) 文本 20 主鍵
廠商名稱 文本 50
廠商地址 文本 50
聯(lián)系電話 數(shù)字 20
法人地表 文本 20
表2:員工信息表
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
員工編號(hào) 文本 20 主鍵
姓 名 文本 20
性 別 文本 20
年 齡 數(shù)字 8
身 高 數(shù)字 8
政治面貌 文本 20
家庭住址 文本 50
所屬部門 文本 20
聘用日期 日期 16
編制日期 日期 16
表3:用戶表
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
用戶名 文本 20
密碼 數(shù)字 8
表4:銷售單
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
單據(jù)編號(hào) 文本 20 主鍵
商品型號(hào) 文本 20
計(jì)量單位 文本 8
單價(jià) 貨幣 16
數(shù)量 數(shù)字 16
金額 貨幣 16
生產(chǎn)廠商 文本 50 外鍵
銷售日期 日期 16
營業(yè)員 文本 20 外鍵
表5:入庫單
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
入庫編號(hào) 文本 20 主鍵
商品型號(hào) 文本 20
計(jì)量單位 文本 8
單價(jià) 貨幣 16
數(shù)量 數(shù)字 16
金額 貨幣 16
生產(chǎn)廠商 文本 50 外鍵
出廠日期 日期 16
倉管員 文本 20 外鍵
表6:進(jìn)貨單
字段名 數(shù)據(jù)類型 長度(字節(jié)) 備注
單據(jù)編號(hào) 文本 20 主鍵
廠商編號(hào) 文本 20 外鍵
進(jìn)貨廠商 文本 50
商品型號(hào) 文本 20
計(jì)量單位 文本 8
單價(jià) 貨幣 16
數(shù)量 數(shù)字 16
金額 貨幣 16
進(jìn)貨日期 日期 16
采購員 文本 20 外鍵
備注 備注 20
各模塊界面設(shè)計(jì)與主要模塊的程序代碼
一、輸入板塊
1、表單(輸入入庫單據(jù))
實(shí)現(xiàn)功能:可通過這個(gè)表單將商品的相關(guān)信息輸入,例如編號(hào)、單價(jià)、數(shù)量等, 起到一個(gè)存儲(chǔ)信息的作用,方便以后查詢、總結(jié)等工作需要。
實(shí)現(xiàn)過程:實(shí)現(xiàn)過程:
① 單擊“文件”下拉菜單,再點(diǎn)擊“新建”,選擇“表單”,再單擊“新建文件”后開始表單輸入入庫單據(jù)的設(shè)計(jì)。
設(shè)計(jì)界面如下:
②輸入入庫單據(jù)的設(shè)計(jì)的基本結(jié)構(gòu)如下圖:
“輸入”按鈕代碼
e=ntom(val(alltrim(thisform.text5.value)))
f=alltrim(thisform.Text6.value)
g=alltrim(thisform.text7.value)
h=val(alltrim(thisform.text8.value))
i=ctod(alltrim(thisform.Text9.value))
if empty(a).or.empty(b).or.empty(c).or.empty(d).or.empty(e).or.empty(f).or.empty(g).or.empty(h).or.empty(i)
messagebox('請輸入完整信息')
return
endif
insert into 表¥入庫單;
(入庫編號(hào),商品型號(hào),計(jì)量單位,單價(jià),金額,生產(chǎn)廠商,倉管員,數(shù)量,出廠日期) value(a,b,c,d,e,f,g,h,i)
z=0
scan for 商品庫存表.商品型號(hào)=b
z=1
endscan
use
if z=1
update 商品庫存表 set 數(shù)量=數(shù)量+h where 商品型號(hào)=b
messagebox('輸入入庫單據(jù)成功!',64,'系統(tǒng)提示')
return
else
insert into 表¥商品庫存表;
(商品型號(hào),數(shù)量) value (b,h)
insert into 表¥商品資料單;
(商品型號(hào)) value (b)
messagebox('你所輸入的是新商品,請輸入商品名稱')
use
do form 表單¥輸入新商品名
return
endif
“取消”按鈕代碼
Thisform.release
2、表單(輸入出庫單據(jù))(蕭巧誼、李喜仙、梁思音)
實(shí)現(xiàn)功能:可通過這個(gè)表單將出庫的商品相關(guān)信息輸入,例如編號(hào)、單價(jià)、數(shù)量等, 起到一個(gè)存儲(chǔ)信息的作用,方便以后查詢,總結(jié)等工作需要。
實(shí)現(xiàn)過程:實(shí)現(xiàn)過程:
① 單擊“文件”下拉菜單,再點(diǎn)擊“新建”,選擇“表單”,再單擊“新建文件”后開始表單輸入入庫單據(jù)的設(shè)計(jì)。
設(shè)計(jì)界面如下:
② 表單輸入入庫單據(jù)的設(shè)計(jì)的基本結(jié)構(gòu)如下圖:
“輸入”按鈕代碼
a=alltrim(thisform.text1.value)
b=alltrim(thisform.Text2.value)
c=alltrim(thisform.text3.value)
d=ntom(val(alltrim(thisform.Text4.value)))
e=ntom(val(alltrim(thisform.text5.value)))
f=alltrim(thisform.Text6.value)
g=alltrim(thisform.text7.value)
h=val(alltrim(thisform.text8.value))
i=ctod(alltrim(thisform.Text9.value))
if empty(a).or.empty(b).or.empty(c).or.empty(d).or.empty(e).or.empty(f).or.empty(g).or.empty(h).or.empty(i)
messagebox('請輸入完整信息')
return
endif
z=0
x=0
use 表¥商品庫存表
scan for 商品庫存表.商品型號(hào)=b
z=1
x=數(shù)量-h
endscan
if z=0
messagebox('庫存不足,無法出庫!')
else
if x<0
messagebox('庫存不足,無法出庫!')
else
update 表¥商品庫存表 set 數(shù)量=數(shù)量-h where 商品型號(hào)=b
insert into 出庫單;
(出庫編號(hào),商品型號(hào),計(jì)量單位,單價(jià),金額,生產(chǎn)廠商,倉管員,數(shù)量,出庫日期) value(a,b,c,d,e,f,g,h,i)
messagebox('輸入出庫單據(jù)成功!',64,'系統(tǒng)提示')
endif
endif
取消按鈕代碼
thisform.release
3、表單(輸入新商品名稱)(巫秋金、江映霞)
實(shí)現(xiàn)功能:可通過這個(gè)表單輸入新商品名,添加到數(shù)據(jù)庫中,方便以后相關(guān)工作。
① 單擊“文件”下拉菜單,再點(diǎn)擊“新建”,選擇“表單”,再單擊“新建文件”后開始表單輸入入庫單據(jù)的設(shè)計(jì)。
設(shè)計(jì)界面如下:
② 表單輸入入庫單據(jù)的設(shè)計(jì)的基本結(jié)構(gòu)如下圖:
確認(rèn)按鈕代碼
a=alltrim(thisform.text1.value)
update F:¥vf¥死都要做出來¥表¥商品庫存表 set 商品名稱=a where 商品型號(hào)=b
update F:¥vf¥死都要做出來¥表¥商品資料單 set 商品名稱=a where 商品型號(hào)=b
messagebox('輸入入庫單據(jù)成功!',64,'系統(tǒng)提示')
thisform.release
取消按鈕代碼
thisform.release
二、數(shù)據(jù)查詢模塊
1、項(xiàng)目詳細(xì)設(shè)計(jì)
查詢模塊:出庫查詢、入庫查詢、庫存查詢、商品資料查詢
例:入庫查詢表單
2、界面操作說明:
按鈕控制策略:組合框內(nèi)有9個(gè)選項(xiàng),編輯框?yàn)榭?,查詢按鈕及取消按鈕一直為亮。
查詢處理過程:此查詢?yōu)槟:樵?,按下組合框內(nèi)的選項(xiàng),在編輯框內(nèi)輸入內(nèi)容,點(diǎn)擊查詢,屏幕上將顯示一系列與輸入內(nèi)容相關(guān)的記錄。取消后將返回原界面。注意:出廠時(shí)間的輸入需要符合格式才能正確查詢,否則將出現(xiàn)運(yùn)行錯(cuò)誤的提醒。(王亞編寫)
3、項(xiàng)目具體實(shí)現(xiàn)
例:入庫查詢表單
本表單用于查詢?nèi)霂焐唐非闆r。在組合框中選擇要查詢的條件,如入庫編號(hào)、商品型號(hào)等,在文本框中輸入信息,按查詢按鈕,即可顯示出相關(guān)信息。如若輸入信息有誤則會(huì)有信息“數(shù)據(jù)庫中不存在您所要查詢的記錄”提示。而按取消鍵則返回到主菜單。
在表單上設(shè)計(jì)如下事件過程:
1、新建表單form1,并將其caption屬性值設(shè)為“入庫查詢”,width屬性值設(shè)置為290,height屬性值設(shè)置為175,AutoCenter屬性值設(shè)置為.t.,并將其保存為“入庫查詢.scx”。
2、向表單添加一個(gè)grid控件,并將其width屬性值設(shè)置為290,height屬性值設(shè)置為100。
3、在grid控件的下方添加一個(gè)組合框控件Combo1和一個(gè)文本框控件, 并將組合框控件的RowSourceType屬性值設(shè)置為“8-結(jié)構(gòu)”,RowSource屬性值設(shè)置為“入庫單”。
4、在文本框的右側(cè)再添加兩個(gè)命令按鈕command1和command2,并將command1和command2的caption屬性值分別設(shè)置為“查找”和“取消”。
5、對表單上各控件的位置進(jìn)行適當(dāng)?shù)恼{(diào)整,調(diào)整后的表單設(shè)計(jì)器如圖1
重點(diǎn):(1)“查找”按鈕(command1)
的click事件如下 :
if empty(thisform.Text1.value)=.f.
go top
a=thisform.Combo1.value
b=alltrim(thisform.Text1.value)
local c as integer
if a='入庫編號(hào)'
Select * from 入庫單 where 入庫
編號(hào) like b +'%' into cursor bas
sele bas
c=reccount()
if c<1
①“查詢”按鈕(command2)的click事件如下:
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='商品型號(hào)'
Select * from 入庫單 where 商品型號(hào) like b +'%' into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='計(jì)量單位'
Select * from 入庫單 where 計(jì)量單位 like b +'%' into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='生產(chǎn)廠商'
Select * from 入庫單 where 生產(chǎn)廠商 like b +'%' into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='倉管員'
Select * from 入庫單 where 倉管員 like b +'%' into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='單價(jià)'
b=ntom(val(alltrim(thisform.text1.value)))
Select * from 入庫單 where 單價(jià) =b into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='金額'
b=ntom(val(alltrim(thisform.text1.value)))
Select * from 入庫單 where 金額 =b into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='數(shù)量'
b=val(alltrim(thisform.text1.value))
Select * from 入庫單 where 數(shù)量 =b into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
if a='出廠日期'
b=ctod(alltrim(thisform.text1.value))
Select * from 入庫單 where 出廠日期 =b into cursor bas
sele bas
c=reccount()
if c<1
use
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
thisform.command2.click()
return
endif
endif
with thisform.grd入庫單
.width=588
.height=200
.left=10
.recordsource='bas'
.deletemark=.f.
.visible=.t.
.readonly=.t.
.ColumnCount=9
.Column1.Header1.Caption='入庫編號(hào)'
.Column1.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.BackColor=RGB(255,255,190)
.Column2.Header1.Caption='商品型號(hào)'
.Column3.Header1.BackColor=RGB(255,255,190)
.Column3.Header1.Caption='計(jì)量單位'
.Column4.Header1.BackColor=RGB(255,255,190)
.Column4.Header1.Caption='單價(jià)'
.Column5.Header1.BackColor=RGB(255,255,190)
.Column5.Header1.Caption='數(shù)量'
.Column6.Header1.BackColor=RGB(255,255,190)
.Column6.Header1.Caption='金額'
.Column7.Header1.BackColor=RGB(255,255,190)
.Column7.Header1.Caption='生產(chǎn)廠商'
.Column8.Header1.BackColor=RGB(255,255,190)
.Column8.Header1.Caption='出廠日期'
.Column9.Header1.BackColor=RGB(255,255,190)
.Column9.Header1.Caption='倉管員'
.Column1.width=80
.Column2.width=80
.Column3.width=80
.Column4.width=80
.Column5.width=80
.Column6.width=80
.Column7.width=80
.Column8.width=80
.Column9.width=80
endwith
thisform.grd入庫單.Setall('DynamicBackColor','RGB(224,225,255)','Column')
thisform.grd入庫單.setfocus
else
messagebox('請輸入要查找的內(nèi)容!',16,'系統(tǒng)提示')
thisform.Text1.value=''
thisform.Text1.Setfocus
endif
②“取消”按鈕(command2)的click事件如下:
Thisform.release
下圖為查詢模塊其余的出庫查詢、庫存查詢和商品資料查詢的界面設(shè)計(jì),其制作過程與入庫查詢相似。
三、數(shù)據(jù)修改模塊
1、項(xiàng)目詳細(xì)設(shè)計(jì)
修改模塊:出庫修改、入庫修改、商品資料修改
例:入庫修改
2、界面操作說明:
按鈕控制策略:查找方式組合框共有9個(gè)選項(xiàng),查找內(nèi)容為空,查找、修改、取消按鈕一直為亮。
修改處理過程:需要修改時(shí),在組合框中選擇要查找的條件,在文本框中輸入相應(yīng)信息(輸入信息要正確,否則系統(tǒng)會(huì)出現(xiàn)錯(cuò)誤提示),按按鈕查找,即下面的文本框中會(huì)出現(xiàn)所要查找的記錄的詳細(xì)信息(其中入庫編號(hào)是固定的)。對相應(yīng)信息進(jìn)行修改后,按按鈕修改,即可保存修改好的信息。
3、項(xiàng)目具體實(shí)現(xiàn)
例:入庫修改
本表單用于對入庫商品的相關(guān)信息進(jìn)行修改。在組合框中選擇要查找的條件,在文本框中輸入相應(yīng)信息(輸入信息要正確,否則系統(tǒng)會(huì)出現(xiàn)錯(cuò)誤提示),按按鈕查找,即下面的文本框中會(huì)出現(xiàn)所要查找的記錄的詳細(xì)信息(其中入庫編號(hào)是固定的)。對相應(yīng)信息進(jìn)行修改后,按按鈕修改,即可保存修改好的信息。按取消按鈕則返回主菜單。
本表單使用的數(shù)據(jù)環(huán)境為入庫單和廠商信息表。
在表單上設(shè)計(jì)如下事件過程:
1、新建表單form1,并將其caption屬性設(shè)置為“入庫修改”,width屬性值設(shè)為290,height屬性值設(shè)為226,AutoCenter屬性值設(shè)為.t.,并將其保存為“入庫修改.scx”。
2、向表單添加一個(gè)grid控件,將其readonly屬性設(shè)置為.t.,其RecordSourceType值采用默認(rèn)的“1-別名”,在表單設(shè)計(jì)器中將其寬和高粗略調(diào)小一些即可,具體屬性值我們將在表單的init事件代碼中對其進(jìn)行設(shè)置。
3、在grid控件下方添加兩個(gè)Label控件,使其排成一行,并將其caption屬性依次設(shè)為“請選擇查找方式”和“請輸入要查找的內(nèi)容”。
4、在label控件下方添加一個(gè)組合框控件Combo1及一個(gè)文本框控件Text1,文本框控件的屬性值采用默認(rèn)即可,組合框控件Combo1的RowSourceType屬性值設(shè)置為“1-值”,RowSource屬性值設(shè)置為“入庫編號(hào)、商品型號(hào)、計(jì)量單位、單價(jià)、數(shù)量、金額、生產(chǎn)廠商、生產(chǎn)日期和倉管員”,這樣在運(yùn)行時(shí)我們可以在該組合框中選擇要查詢的字段。
5、在表單上添加3個(gè)命令按鈕command1 command2和command3,將其caption屬性依次設(shè)為“查找”、“修改”和“取消“。
6、在命令按鈕下方添加9個(gè)label控件,將這9個(gè)label控件排成兩行,并將其caption屬性依次設(shè)置為“入庫編號(hào)”、“商品型號(hào)”和“計(jì)量單位”等等。
7、在這兩行label控件下方添加9個(gè)文本框控件,屬性值采用默認(rèn),并把這9個(gè)文本框排成兩行。
8、調(diào)整表單上各個(gè)控件的位置,調(diào)整后的表單設(shè)計(jì)器如圖2:
重點(diǎn):
①“查找”按鈕(command1)的click事件如下:
if empty(thisform.Text1.value)=.f.
go top
a=thisform.Combo1.value
b=alltrim(thisform.Text1.value)
c=.f.
if a='入庫編號(hào)'
locate for 入庫編號(hào)=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else (圖2)
c=.t.
endif
endif
if a='商品型號(hào)'
locate for 商品型號(hào)=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='計(jì)量單位'
locate for 計(jì)量單位=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='單價(jià)'
b=ntom(val(alltrim(thisform.text1.value)))
locate for 單價(jià)=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='數(shù)量'
b=val(alltrim(thisform.text1.value))
locate for 數(shù)量=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='金額'
b=ntom(val(alltrim(thisform.text1.value)))
locate for 金額=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='生產(chǎn)廠商'
locate for 生產(chǎn)廠商=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='出廠日期'
b=ctod(val(alltrim(thisform.text1.value)))
locate for 出廠日期=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if a='倉管員'
locate for 倉管員=b
if eof()
messagebox('數(shù)據(jù)庫中不存在您所要查詢的記錄',16,'系統(tǒng)提示')
go top
return
else
c=.t.
endif
endif
if c
thisform.Text1.enabled=.f.
go recno()
thisform.Text2.visible=.t.
thisform.Text2.enabled=.f.
thisform.Text3.visible=.t.
thisform.Text4.visible=.t.
thisform.Text5.visible=.t.
thisform.Text6.visible=.t.
thisform.Text7.visible=.t.
thisform.Text8.visible=.t.
thisform.Text9.visible=.t.
thisform.Text10.visible=.t.
thisform.Label3.visible=.t.
thisform.label4.visible=.t.
thisform.Label5.visible=.t.
thisform.Label6.visible=.t.
thisform.Label7.visible=.t.
thisform.Label8.visible=.t.
thisform.Label9.visible=.t.
thisform.Label10.visible=.t.
thisform.Label11.visible=.t.
thisform.Text2.value=入庫單.入庫編號(hào)
thisform.Text3.value=入庫單.商品型號(hào)
thisform.Text4.value=入庫單.計(jì)量單位
thisform.Text5.value=入庫單.單價(jià)
thisform.Text6.value=入庫單.數(shù)量
thisform.Text7.value=入庫單.金額
thisform.Text8.value=入庫單.生產(chǎn)廠商
thisform.Text9.value=入庫單.出廠日期
thisform.Text10.value=入庫單.倉管員
thisform.grd入庫單.setfocus
this.enabled=.f.
thisform.command2.enabled=.t.
endif
else
messagebox('請輸入要查找的內(nèi)容!',16,'系統(tǒng)提示')
thisform.Text1.value=''
thisform.Text1.Setfocus
endif
thisform.refresh
②“修改”按鈕的click的事件如下:
thisform.text3.readonly=.f.
thisform.text4.readonly=.f.
thisform.text5.readonly=.f.
thisform.text6.readonly=.f.
thisform.text7.readonly=.f.
thisform.text8.readonly=.f.
thisform.text9.readonly=.f.
thisform.text10.readonly=.f.
③“取消”按鈕的click的事件如下:
thisform.release
下圖為修改模塊的其余的出庫修改和商品資料修改的界面設(shè)計(jì),其制作過程與入庫修改的制作過程相似。
銷售部分
部分?jǐn)?shù)據(jù)庫設(shè)計(jì)
表 銷售單
字段名 | 數(shù)據(jù)類型 | 長度(字節(jié)) | 備注 |
單據(jù)編號(hào) | 文本 | 20 | 主鍵 |
商品型號(hào) | 文本 | 20 |
|
計(jì)量單位 | 文本 | 8 |
|
單價(jià) | 貨幣 | 16 |
|
數(shù)量 | 數(shù)字 | 16 |
|
金額 | 貨幣 | 16 |
|
生產(chǎn)廠商 | 文本 | 50 | 外鍵 |
銷售日期 | 日期 | 16 |
|
營業(yè)員 | 文本 | 20 | 外鍵 |
表 退貨單
字段名 | 數(shù)據(jù)類型 | 長度(字節(jié)) | 備注 |
單據(jù)編號(hào) | 文本 | 20 | 主鍵 |
商品型號(hào) | 文本 | 20 |
|
計(jì)量單位 | 文本 | 8 |
|
單價(jià) | 貨幣 | 8 |
|
數(shù)量 | 數(shù)字 | 16 |
|
金額 | 貨幣 | 16 |
|
退貨日期 | 日期 | 16 |
|
四、銷售數(shù)據(jù)模塊
1、表單 銷售情況記錄表
實(shí)現(xiàn)功能: 商品正常銷售管理。銷售情況的明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)帳情況等,實(shí)現(xiàn)對數(shù)據(jù)庫添加銷售記錄 。
實(shí)現(xiàn)過程:
單擊“文件”下拉菜單,再點(diǎn)擊“新建”,選擇“表單”, 再單擊“新建文件”后開始表單輸入入庫單據(jù)的設(shè)計(jì)。
設(shè)計(jì)界面如下:
表單銷售情況記錄表的設(shè)計(jì)的基本結(jié)構(gòu)如下圖:
數(shù)據(jù)環(huán)境(如圖)
“輸入”按鈕代碼:
對象:command1 過程:click
a=alltrim(thisform.text1.value)
b=alltrim(thisform.Text2.value)
c=alltrim(thisform.text3.value)
d=ntom(val(alltrim(thisform.Text4.value)))
e=ntom(val(alltrim(thisform.text5.value)))
f=alltrim(thisform.Text6.value)
g=alltrim(thisform.text7.value)
h=val(alltrim(thisform.text8.value))
i=ctod(alltrim(thisform.Text9.value))
if empty(a).or.empty(b).or.empty(c).or.empty(d).or.empty(e).or.empty(f).or.empty(g).or.empty(h).or.empty(i)
messagebox('請輸入完整信息')
return
endif
z=0
x=0
use 表¥商品庫存表
scan for 商品庫存表.商品型號(hào)=b
z=1
x=數(shù)量-h
endscan
if z=0
messagebox('庫存不足,無法銷售!')
else
if x<0
messagebox('庫存不足,無法銷售!')
else
update 表¥商品庫存表 set 數(shù)量=數(shù)量-h where 商品型號(hào)=b
insert into 出庫單;
(出庫編號(hào),商品型號(hào),計(jì)量單位,單價(jià),金額,生產(chǎn)廠商,倉管員,數(shù)量,出庫日期) value(a,b,c,d,e,f,g,h,i)
messagebox('輸入銷售情況成功!',64,'系統(tǒng)提示')
endif
endif
“取消”按鈕:
對象:command2 過程:click
thisform.release
2、表單 退貨情況記錄表
實(shí)現(xiàn)功能: 對退貨商品的管理,記錄退貨情況,把退貨的商品入庫,增加到入庫單,同時(shí)也改變庫存。
實(shí)現(xiàn)過程:單擊“文件”下拉菜單,再點(diǎn)擊“新建”,選擇“表單”,再單擊“新建文件”后開始表單輸入入庫單據(jù)的設(shè)計(jì)。
設(shè)計(jì)界面如下:
表單退貨情況記錄表的設(shè)計(jì)的基本結(jié)構(gòu)如下圖:
數(shù)據(jù)環(huán)境(如圖)
“記錄”按鈕代碼:
對象:command1 過程:click
a=alltrim(thisform.text1.value)
b=alltrim(thisform.text2.value)
c=alltrim(thisform.text3.value)
d=ntom(val(alltrim(thisform.text4.value)))
e=ntom(val(alltrim(thisform.text5.value)))
f=alltrim(thisform.text6.value)
g=alltrim(thisform.text7.value)
h=val(alltrim(thisform.text8.value))
i=ctod(alltrim(thisform.text9.value))
if empty(a).or.empty(b).or.empty(c).or.empty(d).or.empty(e).or.empty(f).or.empty(g).or.empty(h).or.empty(i)
messagebox('請輸入完整信息')
return
endif
insert into 入庫單;
(入庫編號(hào),商品型號(hào),計(jì)量單位,單價(jià),金額,生產(chǎn)廠商,倉管員,數(shù)量) value (a,b,c,d,e,f,g,h)
insert into 退貨單;
(單據(jù)編號(hào),商品型號(hào),計(jì)量單位,單價(jià),金額,數(shù)量,退貨日期) value (a,b,c,d,e,h,i)
messagebox('記錄成功')
“取消”按鈕代碼:
對象:command2 過程:click
thisform.release