注册 登录
编程论坛 VFP论坛

vfp 由采购明细表更新库存表

peemm2000 发布于 2021-02-10 16:50, 2873 次点击
新年好!

这里我刚接触VFP有些命令还不是很明白。在这里遇到一个问题:

我有两个表 A 库存表:编号,名称描述,数量
                      1      aaaa     20
                      2      bbbb     50
                      3      cccc     10
                      4      dddd     30

           B 采购明细表:编号,名称描述,入库数量,批号
                          2     bbbb        20      210101
                          4     dddd        10      210102


我想通过采B购明细表的入库数量来更新A库存表当中的数量,索引是通过两个表中的编号字段
我想得到的表还是A库存表:编号,名称描述,数量
                         1      aaaa     20
                         2      bbbb     70
                         3      cccc     10
                         4      dddd     40
我用了update 命令但都不成功,求大咖们指点一二,在此表示感谢!!
14 回复
#2
sdta2021-02-10 16:52
上传相关文件
#3
sdta2021-02-10 16:55
不同的VFP版本,使用的命令是不同的
针对UPDATE命令而言

[此贴子已经被作者于2021-2-10 17:15编辑过]

#4
sdta2021-02-10 17:02
*不同版本的VFP通用代码
CLOSE DATABASES
USE 库存表 IN 0 ALIAS KCB
INDEX ON 编号 TAG BH
USE 采购明细表 IN 0 ALIAS CGMXB
SELECT CGMXB
SET RELATION TO 编号 INTO KCB
SCAN
    REPLACE 数量 WITH 数量 + CGMXB.入库数量 IN KCB
ENDSCAN
SET RELATION TO
SELECT KCB
SET ORDER TO
BROWSE
#5
peemm20002021-02-13 10:32
新年好!!谢谢版主了,解决了一部分问题,我运行程序是说找不到变量,也许是我表格的问题,在这两个表格中,A表中的编号字段名称和B表中编号字段名称不太一样,A表示原料编号,B表示编号!A 库存表:原料编号,名称描述,数量
                                 1      aaaa     20
                                 2      bbbb     50
                                 3      cccc     10
                                 4      dddd     30

           B 采购明细表:     编号, 名称描述, 入库数量,   批号
                                2     bbbb        20      210101
                                4     dddd        10      210102


我想通过采B购明细表的入库数量来更新A库存表当中的数量,索引是通过两个表中的编号字段

我想得到的表还是A库存表:原料编号,名称描述,数量
                           1      aaaa     20
                           2      bbbb     70
                           3      cccc     10
                           4      dddd     40

这个程序问题就出现在编号上,版主看看能不能改一下,再次表示感谢!,也祝版主新年快乐!牛年大吉!!!!

CLOSE DATABASES
USE 库存表 IN 0 ALIAS KCB
INDEX ON 编号 TAG BH
USE 采购明细表 IN 0 ALIAS CGMXB
SELECT CGMXB
SET RELATION TO 编号 INTO KCB
SCAN
    REPLACE 数量 WITH 数量 + CGMXB.入库数量 IN KCB
ENDSCAN
SET RELATION TO
SELECT KCB
SET ORDER TO
BROWSE
#6
sdta2021-02-13 10:44
上传两个表的结构
#7
sdta2021-02-13 10:47
CLOSE DATABASES
USE 库存表 IN 0 ALIAS KCB
INDEX ON 原料编号 TAG BH
USE 采购明细表 IN 0 ALIAS CGMXB
SELECT CGMXB
SET RELATION TO 编号 INTO KCB && 编号 字段必须与 原料编号 字段的宽度及类型相同
SCAN
    REPLACE 数量 WITH 数量 + CGMXB.入库数量 IN KCB
ENDSCAN
SET RELATION TO
SELECT KCB
SET ORDER TO
BROWSE
#8
peemm20002021-02-13 11:29
谢谢版主了,完美解决!!!牛年大吉!幸福安康!!
#9
peemm20002021-02-13 12:20
不好意思,再增加一个问题,当我采购明细里采购了原料编号5,但库存表里没有这个原料,第一次采购,怎么把这个新采购的原料追加到库存表里?

谢谢!!!!
#10
sdta2021-02-13 12:43
以下是引用peemm2000在2021-2-13 12:20:59的发言:

不好意思,再增加一个问题,当我采购明细里采购了原料编号5,但库存表里没有这个原料,第一次采购,怎么把这个新采购的原料追加到库存表里?

谢谢!!!!

程序代码:
CLOSE DATABASES
USE 库存表 IN 0 ALIAS KCB
INDEX ON 原料编号 TAG BH
USE 采购明细表 IN 0 ALIAS CGMXB
SELECT CGMXB
SET RELATION TO 编号 INTO KCB
SCAN
    IF FOUND("KCB")
        REPLACE 数量 WITH 数量 + CGMXB.入库数量 IN KCB
    ELSE
        INSERT INTO KCB VALUES (CGMXB.编号, CGMXB.名称描述, CGMXB.数量)
    ENDIF
ENDSCAN
SET RELATION TO
SELECT KCB
SET ORDER TO
BROWSE
#11
peemm20002021-02-13 13:52
回复 10楼 sdta
谢谢!!!!
#12
schtg2021-02-14 06:10
谢谢!!!
#13
小主板2021-03-30 22:22
@sdta  巧妙!!
#14
ls_y0412021-12-21 11:33

CLOSE DATABASES
USE 库存表 IN 0 ALIAS KCB
INDEX ON 原料编号 TAG BH
USE 采购明细表 IN 0 ALIAS CGMXB
SELECT CGMXB
SET RELATION TO 编号 INTO KCB
SCAN
    IF FOUND("KCB")
        REPLACE 数量 WITH 数量 + CGMXB.入库数量 IN KCB
    ELSE
        INSERT INTO KCB VALUES (CGMXB.编号, CGMXB.名称描述, CGMXB.数量)
    ENDIF
ENDSCAN
SET RELATION TO
SELECT KCB
SET ORDER TO
BROWSE
想再问一下关于更新的事,能不能统计出来更新了多少条,增加了多少条记录,谢谢

[此贴子已经被作者于2021-12-21 11:35编辑过]

#15
shenlancwz2021-12-22 14:00
进销存软件是不能这样编写的。
1