图6 商品信息模块运行结果
1.表单设计
(1)在“通用进销存管理系统”项目文件中添加一个表单,命名为Frm商品信息。
(2)向表单内添加自制类控件Back、Line控件、Label控件、Picture控件、Container控件、Combo控件、OptionGroup控件、Text控件、Spinner控件、LocateButton控件、Grid控件和OftenButton类控件。
(3)重要控件的属性设置如表6所示。
表6 重要控件及属性
对象 属性 值
Form1 AutoCenter .T.
Form1 ShowWindows 2-作为顶层表单
OftenButtons1 RecordSource 商品信息表
LocateButtons1 RecordSource 商品信息表
Grid1 RecordSource 商品信息表
Spinner1 SpecialEffect 1-平面
OptionGroup1.Option1 Style 1-图形
Form1 AutoCenter .T.
2.代码设计
在表单的Resee方法程序下添加如下代码:
SELE 商品信息表
thisform.text1.value=商品信息表.编号
thisform.text2.value=商品信息表.名称
thisform.text3.value=商品信息表.简称
thisform.text4.value=商品信息表.规格
thisform.text5.value=商品信息表.计量单位
thisform.text6.value=商品信息表.产地
thisform.text7.value=商品信息表.出厂日期
thisform.text8.value=商品信息表.保质期
thisform.text9.value=商品信息表.进价
thisform.text10.value=商品信息表.批发价
thisform.text11.value=商品信息表.零售价
thisform.text12.value=商品信息表.备注
thisform.combo1.displayvalue=thisform.rainfunction1.;
numbertoname("供应商信息表","全称",商品信息表.供应商编号,1) &&取出供应商名称
SELE 商品信息表
thisform.label24.caption=padl(alltrim(str(reccount())),5,"0")
thisform.spinner1.Spinnerhighvalue=reccount()
thisform.spinner1.value=recno()
SELE 商品信息表
在表单的Init事件中添加如下代码:
SET DELE ON
thisform.resee
在表单的Unload事件中添加如下代码:
CLOSE ALL database
USE data\商品信息表 EXCL
PACK
USE
USE data\库存信息表 EXCL
PACK
USE
在“名称”文本框的InterActiveChange事件下添加如下代码:
thisform.text3.value=lower(thisform.rainfunction1.htop(this.value))
在“名称”文本框的Click事件下添加如下代码:
thisform.text3.value=thisform.rainfunction1.htop(this.value)
在Locatebuttons1控件的_FirstButtonClick方法程序下添加如下代码:
SELE 商品信息表
thisform.resee
在Locatebuttons1控件的 _LastButtonClick 方法程序下添加如下代码:
SELE 商品信息表
thisform.resee
在Locatebuttons1控件的_NextButtonClick方法程序下添加如下代码:
SELE 商品信息表
thisform.resee
在Locatebuttons1控件的_PreviousButtonClick方法程序下添加如下代码:
SELE 商品信息表
thisform.resee
在Oftenbuttons1控件的_SaveButtonClick方法程序下添加如下代码:
DIME txt(13),get(9)
***存入信息
SELE 商品信息表
thisrecno=recno()
FOR m=1 TO 6
txtname="text"+alltrim(str(m))
txt(m)=alltrim(thisform.&txtname..value) &&将字符型数据存入数组
ENDFOR
FOR m=7 TO 11
txtname="text"+alltrim(str(m))
txt(m)=thisform.&txtname..value &&将数值及日期型数据存入数组
ENDFOR
txt(12)=alltrim(thisform.text12.value)
txt(13)=thisform.rainfunction1.numbertoname("供应商信息表","全称",;
alltrim(thisform.combo1.displayvalue),0)
handle1=fopen("系统设置.Rtt",2)
IF handle1<0
handle2=fcreate("系统设置.Rtt")
IF handle2>=0
fclose(handle2)
ELSE
messagebox("无法创建!请手工删除程序目录下[系统设置.Rtt]文件,;
然后再试一次!",16, "系统提示")
ENDIF
get(8)="9999"
get(9)="1"
ELSE
FOR m=1 TO 9
get(m)=fgets(handle1)
ENDFOR
ENDIF
fclose(handle1)
IF this.butstyle=1
INSERT INTO 商品信息表 VALUES(txt(1),txt(2),lower(txt(3)),Txt(4),;
txt(6),txt(5),txt(7),txt(8),txt(9),txt(10),txt(11),txt(13),txt(12))
INSERT INTO 库存信息表 (商品编号,库存上限,库存下限) ;
VALUES(txt(1),val(alltrim(get(8))),val(alltrim(get(9))))
ELSE
UPDATE 商品信息表 SET 名称=txt(2),简称=lower(txt(3)),规格=txt(4),;
计量单位=txt(5),产地=txt(6),出厂日期=txt(7),;
保质期=txt(8),进价=txt(9),批发价=txt(10),零售价=txt(11),备注=txt(12),;
供应商编号=txt(13) WHERE 编号=txt(1)
ENDIF
FOR m=1 TO 6 &&清空文本框
textname="text"+alltrim(str(m))
thisform.&textname..value=""
ENDFOR
thisform.text7.value={}
thisform.text8.value={}
thisform.text9.value=0
thisform.text10.value=0
thisform.text11.value=0
thisform.text12.value=''
thisform.combo1.displayvalue=''
FOR m=2 TO 12 &&使文本框失效
textname="text"+alltrim(str(m))
thisform.&textname..enabled=.f.
ENDFOR
thisform.combo1.enabled=.f.
SELE 商品信息表
thisform.resee
thisform.command1.enabled=.t.
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
thisform.locatebuttons1.enabled=.t.
在Oftenbuttons1控件的_DeleteButtonClick方法程序下添加如下代码:
DELETE FROM 库存信息表 WHERE 商品编号=alltrim(thisform.text1.value)
SELE 库存信息表
USE
USE data\库存信息表 EXCL &&以独占方式打开库存信息表
PACK
USE
USE data\库存信息表
thisform.grid1.init
thisform.command2.click
thisform.resee
在Oftenbuttons1控件的_UndoButtonClick方法程序下添加如下代码:
SELE 商品信息表
FOR m=2 TO 12 &&使文本框失效
textname="text"+alltrim(str(m))
thisform.&textname..enabled=.f.
ENDFOR
thisform.combo1.enabled=.f.
GOTO 1
thisform.resee
thisform.command1.enabled=.t.
thisform.grid1.readonly=.t.
thisform.grid1.enabled=.t.
thisform.locatebuttons1.enabled=.t.
在Oftenbuttons1控件的_AddButtonClick方法程序下添加如下代码:
PRIVATE bh
FOR m=1 TO 6 &&清空文本框
textname="text"+alltrim(str(m))
thisform.&textname..value=""
ENDFOR
thisform.text7.value={}
thisform.text8.value={}
thisform.text9.value=0
thisform.text10.value=0
thisform.text11.value=0
thisform.text12.value=''
thisform.combo1.displayvalue=''
bh=""
thisform.text1.value=bh
FOR m=2 TO 12
textname="text"+alltrim(str(m))
thisform.&textname..enabled=.t.
ENDFOR
thisform.combo1.enabled=.t.
thisform.text2.setfocus
thisform.command1.enabled=.f.
thisform.grid1.enabled=.f.
thisform.locatebuttons1.enabled=.f.
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>