案例库
您当前的位置: 澳门新葡京app>案例库

综合案例六
小型超市零售管理系统

发布时间: 2019-01-16      信息来源:       阅读次数:

综合案例六  小型超市零售管理系统

【实验目的与要求】  

1.熟练使用VFP的操作环境

2.熟练使用项目管理器管理各种文件

3.掌握数据库的设计方法和步骤

4.熟练掌握数据库表及其表之间关系的创建与使用

5.掌握查询与视图的创建与使用

6.掌握程序设计的基本方法

7.掌握表单及其表单中各种控件的设计与使用

8.掌握菜单的创建和使用

【系统功能模块】

1) 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。

2) 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结帐情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。

3) 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。

4) 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。

/xcxxgc_jpkc/upload/images/2019/1/1610720818.png

【功能模块说明】

1)输入单据:出库、入库、产成品清单

2)查询:出库查询、入库查询、产成品查询

3)销售:销售费用、销售退款、进/退货

4)打印报表:入库报表、出库报表、产成品清单报表、销售退款单报表进/退货报表

5)人员管理:员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。客户销售权限管理。

【实验内容】

1、数据库设计

本应用系统的数据库主要包括以下基本表,数据结构设计如下。

     1:厂商信息表

     字段名 数据类型 长度(字节) 备注

     厂商编号 文本 20 主键

     厂商名称 文本 50  

     厂商地址 文本 50  

     联系电话 数字 20  

     法人地表 文本 20  

     

     2:员工信息表

     字段名 数据类型 长度(字节) 备注

     员工编号 文本 20 主键

      文本 20  

      文本 20  

      数字 8  

      数字 8  

     政治面貌 文本 20  

     家庭住址 文本 50  

     所属部门 文本 20  

     聘用日期 日期 16  

     编制日期 日期 16  

     3:用户表

     字段名 数据类型 长度(字节) 备注

     用户名 文本 20  

     密码 数字 8  

     4:销售单

     字段名 数据类型 长度(字节) 备注

     单据编号 文本 20 主键

     商品型号 文本 20  

     计量单位 文本 8  

     单价 货币 16  

     数量 数字 16  

     金额 货币 16  

     生产厂商 文本 50 外键

     销售日期 日期 16  

     营业员 文本 20 外键

       

     5:入库单

     字段名 数据类型 长度(字节) 备注

     入库编号 文本 20 主键

     商品型号 文本 20  

     计量单位 文本 8  

     单价 货币 16  

     数量 数字 16  

     金额 货币 16  

     生产厂商 文本 50 外键

     出厂日期 日期 16  

     仓管员 文本 20 外键

     

     6:进货单

     字段名 数据类型 长度(字节) 备注

     单据编号 文本 20 主键

     厂商编号 文本 20 外键

     进货厂商 文本 50  

     商品型号 文本 20  

     计量单位 文本 8  

     单价 货币 16  

     数量 数字 16  

     金额 货币 16  

     进货日期 日期 16  

     采购员 文本 20 外键

     备注 备注 20  

各模块界面设计与主要模块的程序代码

一、输入板块  

  1、表单(输入入库单据)

实现功能:可通过这个表单将商品的相关信息输入,例如编号、单价、数量等,  起到一个存储信息的作用,方便以后查询、总结等工作需要。

实现过程:实现过程:

单击“文件”下拉菜单,再点击“新建”,选择“表单”,再单击“新建文件”后开始表单输入入库单据的设计。

/xcxxgc_jpkc/upload/images/2019/1/161072152.jpg/xcxxgc_jpkc/upload/images/2019/1/1610721192.jpg

设计界面如下:

②输入入库单据的设计的基本结构如下图:

/xcxxgc_jpkc/upload/images/2019/1/1610721348.png

输入按钮代码

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 ¥入库单;

(入库编号,商品型号,计量单位,单价,金额,生产厂商,仓管员,数量,出厂日期) value(a,b,c,d,e,f,g,h,i)

z=0

scan for 商品库存表.商品型号=b

               z=1

endscan

use

if z=1

              update 商品库存表 set 数量=数量+h where 商品型号=b

              messagebox('输入入库单据成功!',64,'系统提示')

              return

else

              insert into ¥商品库存表;

              (商品型号,数量) value (b,h)

              insert into ¥商品资料单;

              (商品型号) value (b)

              messagebox('你所输入的是新商品,请输入商品名称')

              use

              do form 表单¥输入新商品名

              return

endif

取消按钮代码

C:UserspcAppDataLocalTempmsohtmlclip1clip_image003.jpgThisform.release

2、表单(输入出库单据)萧巧谊、李喜仙、梁思音

实现功能:可通过这个表单将出库的商品相关信息输入,例如编号、单价、数量等,  起到一个存储信息的作用,方便以后查询,总结等工作需要。

实现过程:实现过程:

单击“文件”下拉菜单,再点击“新建”,选择“表单”,再单击“新建文件”后开始表单输入入库单据的设计。

/xcxxgc_jpkc/upload/images/2019/1/1610722128.jpg/xcxxgc_jpkc/upload/images/2019/1/1610722222.jpg

设计界面如下:

表单输入入库单据的设计的基本结构如下图:

/xcxxgc_jpkc/upload/images/2019/1/1610722378.png

“输入”按钮代码

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 商品库存表.商品型号=b

z=1

x=数量-h

endscan

if z=0

messagebox('库存不足,无法出库!')

else

if x<0

    messagebox('库存不足,无法出库!')

    else

    update 表¥商品库存表 set 数量=数量-h where 商品型号=b

    insert into 出库单;

   (出库编号,商品型号,计量单位,单价,金额,生产厂商,仓管员,数量,出库日期) value(a,b,c,d,e,f,g,h,i)

    messagebox('输入出库单据成功!',64,'系统提示')

endif

endif

取消按钮代码

thisform.release

3、表单(输入新商品名称)巫秋金、江映霞

实现功能:可通过这个表单输入新商品名,添加到数据库中,方便以后相关工作。

单击“文件”下拉菜单,再点击“新建”,选择“表单”,再单击“新建文件”后开始表单输入入库单据的设计。

/xcxxgc_jpkc/upload/images/2019/1/161072364.jpg/xcxxgc_jpkc/upload/images/2019/1/1610723158.jpg

设计界面如下:

表单输入入库单据的设计的基本结构如下图:

/xcxxgc_jpkc/upload/images/2019/1/1610723298.png

确认按钮代码

a=alltrim(thisform.text1.value)

update F:¥vf¥死都要做出来¥¥商品库存表 set 商品名称=a where 商品型号=b

update F:¥vf¥死都要做出来¥¥商品资料单 set 商品名称=a where 商品型号=b

messagebox('输入入库单据成功!',64,'系统提示')

thisform.release

取消按钮代码

thisform.release

二、数据查询模块

1、项目详细设计

查询模块:出库查询、入库查询、库存查询、商品资料查询

例:入库查询表单

/xcxxgc_jpkc/upload/images/2019/1/1610723486.jpg

2、界面操作说明:

按钮控制策略:组合框内有9个选项,编辑框为空,查询按钮及取消按钮一直为亮。

查询处理过程:此查询为模糊查询,按下组合框内的选项,在编辑框内输入内容,点击查询,屏幕上将显示一系列与输入内容相关的记录。取消后将返回原界面。注意:出厂时间的输入需要符合格式才能正确查询,否则将出现运行错误的提醒。(王亚编写)

                                                   

3、项目具体实现

例:入库查询表单

本表单用于查询入库商品情况。在组合框中选择要查询的条件,如入库编号、商品型号等,在文本框中输入信息,按查询按钮,即可显示出相关信息。如若输入信息有误则会有信息数据库中不存在您所要查询的记录提示。而按取消键则返回到主菜单。

在表单上设计如下事件过程:

1、新建表单form1,并将其caption属性值设为入库查询width属性值设置为290height属性值设置为175AutoCenter属性值设置为.t.,并将其保存为入库查询.scx

2、向表单添加一个grid控件,并将其width属性值设置为290height属性值设置为100

3、在grid控件的下方添加一个组合框控件Combo1和一个文本框控件,  并将组合框控件的RowSourceType属性值设置为8-结构RowSource属性值设置为入库单

4、在文本框的右侧再添加两个命令按钮command1command2,并将command1command2caption属性值分别设置为查找取消

5、对表单上各控件的位置进行适当的调整,调整后的表单设计器如图1

/xcxxgc_jpkc/upload/images/2019/1/1610723688.jpg重点:(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='入库编号'

    Select * from 入库单 where 入库

编号 like b +'%' into cursor bas

    sele bas

    c=reccount()

    if c<1                                                      

①“查询按钮(command2)的click事件如下:

      use                                                                            

      messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      thisform.command2.click()

      return

    endif

   endif

    if a='数量'

    b=val(alltrim(thisform.text1.value))

    Select * from 入库单 where 数量 =b into cursor bas

    sele bas

    c=reccount()

    if c<1

      use

      messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

      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('数据库中不存在您所要查询的记录',16,'系统提示')

      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='入库编号'

   .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='出厂日期'

   .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('请输入要查找的内容!',16,'系统提示')

 thisform.Text1.value=''

 thisform.Text1.Setfocus

endif

②“取消按钮(command2)的click事件如下:

Thisform.release

下图为查询模块其余的出库查询、库存查询和商品资料查询的界面设计,其制作过程与入库查询相似。                                            

/xcxxgc_jpkc/upload/images/2019/1/1610723876.jpg

/xcxxgc_jpkc/upload/images/2019/1/1610724110.jpg

/xcxxgc_jpkc/upload/images/2019/1/1610724312.jpg

                                                 

三、数据修改模块

1、项目详细设计

修改模块:出库修改、入库修改、商品资料修改

例:入库修改

/xcxxgc_jpkc/upload/images/2019/1/1610724500.jpg

2、界面操作说明:

按钮控制策略:查找方式组合框共有9个选项,查找内容为空,查找、修改、取消按钮一直为亮。

修改处理过程:需要修改时,在组合框中选择要查找的条件,在文本框中输入相应信息(输入信息要正确,否则系统会出现错误提示),按按钮查找,即下面的文本框中会出现所要查找的记录的详细信息(其中入库编号是固定的)。对相应信息进行修改后,按按钮修改,即可保存修改好的信息。

                                               

3、项目具体实现

例:入库修改

本表单用于对入库商品的相关信息进行修改。在组合框中选择要查找的条件,在文本框中输入相应信息(输入信息要正确,否则系统会出现错误提示),按按钮查找,即下面的文本框中会出现所要查找的记录的详细信息(其中入库编号是固定的)。对相应信息进行修改后,按按钮修改,即可保存修改好的信息。按取消按钮则返回主菜单。

本表单使用的数据环境为入库单和厂商信息表。

在表单上设计如下事件过程:

1、新建表单form1,并将其caption属性设置为入库修改width属性值设为290height属性值设为226AutoCenter属性值设为.t.,并将其保存为入库修改.scx

2、向表单添加一个grid控件,将其readonly属性设置为.t.,RecordSourceType值采用默认的1-别名,在表单设计器中将其宽和高粗略调小一些即可,具体属性值我们将在表单的init事件代码中对其进行设置。

3、在grid控件下方添加两个Label控件,使其排成一行,并将其caption属性依次设为请选择查找方式请输入要查找的内容

4、在label控件下方添加一个组合框控件Combo1及一个文本框控件Text1,文本框控件的属性值采用默认即可,组合框控件Combo1RowSourceType属性值设置为1-RowSource属性值设置为入库编号、商品型号、计量单位、单价、数量、金额、生产厂商、生产日期和仓管员,这样在运行时我们可以在该组合框中选择要查询的字段。

5、在表单上添加3个命令按钮command1 command2command3,将其caption属性依次设为查找修改取消

6、在命令按钮下方添加9label控件,将这9label控件排成两行,并将其caption属性依次设置为入库编号商品型号计量单位等等。

7、在这两行label控件下方添加9个文本框控件,属性值采用默认,并把这9个文本框排成两行。

8、调整表单上各个控件的位置,调整后的表单设计器如图2

重点:

①“查找按钮(command1)click事件如下:

if empty(thisform.Text1.value)=.f.            /xcxxgc_jpkc/upload/images/2019/1/1610724734.jpg      

go top

a=thisform.Combo1.value

b=alltrim(thisform.Text1.value)

c=.f.

  if a='入库编号'

     locate for 入库编号=b

     if eof()

        messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

        go top

        return

      else                                                          (图2                                                                                                

      c=.t.

    endif

 endif

 if a='商品型号'

    locate for 商品型号=b    

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')          

       go top

       return

    else

       c=.t.

    endif

 endif

 if a='计量单位'

    locate for 计量单位=b

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

 if a='单价'

    b=ntom(val(alltrim(thisform.text1.value)))

    locate for 单价=b

   

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

if a='数量'

    b=val(alltrim(thisform.text1.value))

    locate for 数量=b

   

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

 if a='金额'

    b=ntom(val(alltrim(thisform.text1.value)))

    locate for 金额=b

   

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

if a='生产厂商'

    locate for 生产厂商=b

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

 if a='出厂日期'

    b=ctod(val(alltrim(thisform.text1.value)))

    locate for 出厂日期=b

   

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       go top

       return

    else

       c=.t.

    endif

 endif

 if a='仓管员'

    locate for 仓管员=b

    if eof()

       messagebox('数据库中不存在您所要查询的记录',16,'系统提示')

       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=入库单.入库编号

    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.grd入库单.setfocus

    this.enabled=.f.

    thisform.command2.enabled=.t.

 endif

else

  messagebox('请输入要查找的内容!',16,'系统提示')

  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

下图为修改模块的其余的出库修改和商品资料修改的界面设计,其制作过程与入库修改的制作过程相似。

/xcxxgc_jpkc/upload/images/2019/1/1610724983.jpg

/xcxxgc_jpkc/upload/images/2019/1/1610725186.jpg

                                                           

销售部分

部分数据库设计

销售单

字段名

数据类型

长度(字节)

备注

单据编号

文本

20

主键

商品型号

文本

20

计量单位

文本

8

单价

货币

16

数量

数字

16

金额

货币

16

生产厂商

文本

50

外键

销售日期

日期

16

营业员

文本

20

外键

/xcxxgc_jpkc/upload/images/2019/1/1610725373.png

/xcxxgc_jpkc/upload/images/2019/1/1610725420.png

/xcxxgc_jpkc/upload/images/2019/1/1610726122.png

退货单

字段名

数据类型

长度(字节)

备注

单据编号

文本

20

主键

商品型号

文本

20

计量单位

文本

8

单价

货币

8

数量

数字

16

金额

货币

16

退货日期

日期

16

/xcxxgc_jpkc/upload/images/2019/1/1610726262.png

/xcxxgc_jpkc/upload/images/2019/1/1610726356.png

/xcxxgc_jpkc/upload/images/2019/1/1610726418.png

四、销售数据模块

1、表单 销售情况记录表

实现功能: 商品正常销售管理。销售情况的明细记录、各地收银员收银记录以及交结帐情况等,实现对数据库添加销售记录

实现过程

单击“文件”下拉菜单,再点击“新建”,选择“表单”,        再单击“新建文件”后开始表单输入入库单据的设计。

/xcxxgc_jpkc/upload/images/2019/1/1610726512.jpg/xcxxgc_jpkc/upload/images/2019/1/1610726606.jpg

设计界面如下

表单销售情况记录表的设计的基本结构如下图:

/xcxxgc_jpkc/upload/images/2019/1/1610727136.png

数据环境(如图)

/xcxxgc_jpkc/upload/images/2019/1/1610727323.png

“输入”按钮代码:

对象: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 商品库存表.商品型号=b

z=1

x=数量-h

endscan

if z=0

messagebox('库存不足,无法销售!')

else

if x<0

 messagebox('库存不足,无法销售!')

 else

 update ¥商品库存表 set 数量=数量-h where 商品型号=b

 insert into 出库单;

 (出库编号,商品型号,计量单位,单价,金额,生产厂商,仓管员,数量,出库日期) value(a,b,c,d,e,f,g,h,i)

 messagebox('输入销售情况成功!',64,'系统提示')

endif

endif

 取消按钮:

对象:command2    过程:click

thisform.release

2、表单 退货情况记录表

实现功能: 对退货商品的管理,记录退货情况,把退货的商品入库,增加到入库单,同时也改变库存。

实现过程:单击“文件”下拉菜单,再点击“新建”,选择“表单”,再单击“新建文件”后开始表单输入入库单据的设计。

/xcxxgc_jpkc/upload/images/2019/1/1610727417.jpg

/xcxxgc_jpkc/upload/images/2019/1/1610727620.jpg

设计界面如下

表单退货情况记录表的设计的基本结构如下图:

/xcxxgc_jpkc/upload/images/2019/1/161072841.png

数据环境(如图)

/xcxxgc_jpkc/upload/images/2019/1/1610728181.png

“记录”按钮代码:

对象: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 入库单;

(入库编号,商品型号,计量单位,单价,金额,生产厂商,仓管员,数量) value (a,b,c,d,e,f,g,h)

insert into 退货单;

(单据编号,商品型号,计量单位,单价,金额,数量,退货日期) value (a,b,c,d,e,h,i)

messagebox('记录成功')

取消按钮代码:

对象:command2    过程:click

thisform.release