要进行设备管理,其入货表单是货品入库调用的输入表单,制作步骤如下:
(1)新建一个表单,在表单上添加标签文本框,再在表单上添加两个命令按钮,并按照如图11-30所示进行布局,其运行效果如图11-31所示。
图11-30 设计入货表单 图11-31 运行入货表单
(2)设置表单(Form1)的主要属性。
· Autocenter:.T.—真。
· Caption:入货表单。
· Closeable:.F.—假。
· Maxbotton:.F.—假。
(3)设置两个按钮的主要属性。
· Caption(command1):确定。
· Caption(cimmand2):取消。
· Fontsize:9。
· Fontname:宋体。
(4)设置标签控件的属性。
· Caption(Labe11):名称。
· Caption(Labe12):产地。
· Caption(Labe13):规格。
· Caption(Labe14):数量。
· Caption(Labe15):买入价。
· Caption(Labe16):出售价。
· Caption(Labe17):单位。
· Caption(Labe18):包装。
(5)设置所有标签控件的属性。
· Autosize:.T.—真。
· Fontname:宋体。
· FontSize:10。
(6)设置所有文本框控件的属性。
· Autosize:.T.—真。
· Fontname:宋体。
· FontSize:10。
· Integra1Height:.T.—真。
(7)右击Text4文本框,选择“生成器”打开“文本框生成器”对话框。设置“数据类型”为“数值型”,输入掩码为“99999”,并选中“在运行时启用”和“隐藏选定内容”两项,如图11-32所示。
(8)单击“2.样式”选项卡,将“特殊效果”设为“三维”,“边框”设为“单线”,“字符对齐方式”设为“居中对齐”,并选中“调整文本框尺寸以恰好容纳”,如图11-33所示。
图11-32 设置Text4文本框的格式 图11-33 设置Text4文本框的样式
(9)对Text5和Text6文本框做同样的设置,唯一不同的是这两者的掩码都设为99999.99。
(10)双击表单中的空白处(没有控件的地方),在弹出的代码窗口中选择Form1对象,在Load过程中输入以下代码。
Public leibie
leibie="0"
set date ansi
set century on
PUBLIC DENG
DENG=.F.
注意:上面这段代码中的DENG逻辑变量是用来判断是否要在库存表中新增记录的,只有当Kucun表中能够找到与输入的货品的编号、产地、规格都相同的记录时,才不会新增记录。
(11)双击“确定”按钮,在“确定”按钮的Click事件中输入如下代码。
SET exact off
mc=upper(alltrim(thisform.text1.value))
ccd=upper(alltrim(thisform.text2.value))
gg=upper(alltrim(thisform.text3.value))
sl=thisform.text4.value
rj=thisform.text5.value
cj=thisform.text6.value
dw=upper(alltrim(thisform.text7.value))
bz=upper(alltrim(thisform.text8.value))
IF len(mc)>34
MESSAGEBOX("名称不能超过34个英文字符的长度!;",0+48,"注意!")
RETURN
ENDIF
IF len(ccd)>10
MESSAGEBOX("产地不能超过10个英文字符的长度!;",0+48,"注意!")
RETURN
ENDIF
IF len(gg)>20
MESSAGEBOX("规格不能超过20个英文字符的长度!;",0+48,"注意!")
RETURN
ENDIF
IF leibie="0" or mc=="" or ccd==""
MESSAGEBOX("项目没有填写完毕!",0+48,"注意!")
RETURN
ELSE
OPEN DATABASE 设备数据库
use kucun
SET order to bianhao
GO TOP
LOCATE for Alltrim(名称)==mc and Alltrim(产地)==ccd and Alltrim(规格)==gg
IF found()
REPLA 数量with(数量+sl)
REPLA 单价with cj
REPLA 入价with rj
REPLA 包装with bz
REPLA 单位with dw
Deng=.T.
ENDIF
IF DENG=.F.
LOCATE for Alltrim(名称)==mc and alltrim(产地)<>ccd or ;
alltrim(名称)==(mc) and alltrim(规格)<>gg
IF found()
Temp=alltrim(编号)
INSERT blank
REPLA 单价with cj
REPLA 编号with temp
REPLA 名称with mc
REPLA 产地with ccd
REPLA 规格with gg
REPLA 数量with sl
REPLA 单价with cj
REPLA 入价with rj
REPLA 包装with bz
REPLA 单位with dw
ENDIF
ENDIF
OPEN DATABASE 设备数据库
use kucun
SET order to bianhao
GO top
LOCATE for alltrim(名称)==mc
IF!found()
GO bott
Temp=Alltrim(str(val(right(编号,5))+1))
Tlen=5-len(temp)
DO case
CASE tlen=0
Ttemp=""
CASE tlen=1
Ttemp="0"
CASE tlen=2
Ttemp="00"
CASE tlen=3
Ttemp="000"
CASE tlen=4
Ttemp="0000"
ENDCASE
Temp=ttemp+temp
Temp=alltrim(leibie+temp)
APPEND blank
REPLA 编号with temp
REPLA 名称with mc
REPLA 产地with ccd
REPLA 规格with gg
REPLA 数量with sl
REPLA 单价with cj
REPLA 入价with rj
REPLA 包装with bz
REPLA 单位with dw
ENDIF
OPEN DATABASE 设备数据库
use kucun
SET order to bianhao
GO top
LOCATE for alltrim(名称)==mc
IF found()
Temp=编号
ELSE
MESSAGEBOX("数据库发现错误!",0+48,"注意!")
RETURN
ENDIF
OPEN DATABASE 设备数据库
use mairu
APPEND blank
REPLA 编号with temp
REPLA 名称with mc
REPLA 产地with ccd
REPLA 规格with gg
REPLA 数量with sl
REPLA 单价with cj
REPLA 入价with rj
REPLA 包装with bz
REPLA 单位with dw
Trq=date()
REPLA 日期with trq
REPLACE 总金额with(数量*单价)
MESSAGEBOX("数据已成功写入数据库。",0+64,"祝贺!")
Thisform.text1.value=""
Thisform.text2.value=""
Thisform.text3.value=""
Thisform.text4.value=""
Thisform.text5.value=0.00
Thisform.text6.value=0.00
Thisform.text7.value=""
Thisform.text8.value=""
Release all
Thisform.refresh
Thisform.text1.setfocus
Thisform.optiongroup1.value=0
Deng=.F.
ENDIF
(12)双击“取消”按钮,在“确定”按钮的Click事件中输入如下代码。
Thisform.release
Release all
(13)双击选项按钮组,为按钮的Click事件输入如下代码。
do case
case this.value=1
leibie="A"
case this.value=2
leibie="B"
case this.value=3
leibie="C"
case this.value=4
leibie="D"
case this.value=5
leibie="E"
endcase
注意:这段程序用来判断用户所选货品的类别。
(14)保存该表单为“入货表单”。