您的位置: 网站首页 > 程序开发 > Visaul FoxPro程序设计 > 第11章 设备管理系统综合实例 > 【11.6.3 入货表单的制作】

11.6.3 入货表单的制作

 

11.6.3 入货表单的制作

要进行设备管理,其入货表单是货品入库调用的输入表单,制作步骤如下:

1)新建一个表单,在表单上添加标签文本框,再在表单上添加两个命令按钮,并按照如图11-30所示进行布局,其运行效果如图11-31所示。

     

11-30  设计入货表单                       11-31  运行入货表单

2)设置表单(Form1)的主要属性。

·    Autocenter.T.—真。

·    Caption:入货表单。

·    Closeable.F.—假。

·    Maxbotton.F.—假。

3)设置两个按钮的主要属性。

·    Caption(command1):确定。

·    Caption(cimmand2):取消。

·    Fontsize9

·    Fontname:宋体。

4)设置标签控件的属性。

·    Caption(Labe11):名称。

·    Caption(Labe12):产地。

·    Caption(Labe13):规格。

·    Caption(Labe14):数量。

·    Caption(Labe15):买入价。

·    Caption(Labe16):出售价。

·    Caption(Labe17):单位。

·    Caption(Labe18):包装。

5)设置所有标签控件的属性。

·    Autosize.T.—真。

·    Fontname:宋体。

·    FontSize10

6)设置所有文本框控件的属性。

·    Autosize.T.—真。

·    Fontname:宋体。

·    FontSize10

·    Integra1Height.T.—真。

7)右击Text4文本框,选择“生成器”打开“文本框生成器”对话框。设置“数据类型”为“数值型”,输入掩码为“99999”,并选中“在运行时启用”和“隐藏选定内容”两项,如图11-32所示。

8)单击“2.样式”选项卡,将“特殊效果”设为“三维”,“边框”设为“单线”,“字符对齐方式”设为“居中对齐”,并选中“调整文本框尺寸以恰好容纳”,如图11-33所示。

          

11-32  设置Text4文本框的格式              11-33  设置Text4文本框的样式

9Text5Text6文本框做同样的设置,唯一不同的是这两者的掩码都设为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)保存该表单为“入货表单”。