📄 进销存.zrg
字号:
RETURN
ELSE
CURR_REC=recno()
GO CURR_REC
PJJ=round(库存总额A/现库存量A,1)
KCZE=PJJ*XSL
MLR=(PFJ-PJJ)*XSL
sSysVar2=READSYSVAR(53)
TEMP1=VAL(sSysVar2)
sSysVar3=READSYSVAR(54)
TEMP4=VAL(sSysVar3)
replace 现库存量A with TEMP1-XSL
replace 库存总额A with TEMP4-KCZE
ENDIF
SELECT A
GO BOTTOM
replace 批发毛利 with MLR
clear
@0,1 say "-- 最终批发清单 --"
@2,0 say "订单编号:"
@2,col() say 定单ID
@3,0 say "客户编号:"
@3,col() say 客户A_ID
@4,0 say "批发日期:"
@4,col() say DATE()
@5,0 say "商品条码:"
@5,col() say 商品A_ID
@6,0 say "批发价格:"
@6,col() say PFJ
@7,0 Say "批发数量:"
@7,col() say XSL
@8,0 Say "批发金额:"
@8,col() say PFZE
@9,0 say "本单毛利:"
@9,col() say MLR
wait""
n=lastkey()
if n=24
KHID=客户A_ID
DO 客户库
SPID=商品ID
DO A产品库
* ZGBH=雇员A_ID
* DO 雇员库
endif
RETURN
ENDPRO
PROCEDURE 进货业务
CLEAR
DO WHILE .T.
CLEAR
SET INTENSITY ON
@ 0,1 SAY "-- 超市商品管理 --"
SET INTENSITY OFF
进货菜单[1]="1-原有商品采购"
进货菜单[2]="2-新进商品采购"
进货数组[1]="原库存商品的采购录入业务,5位订单编号自动添加"
进货数组[2]="新商品采购录入业务,再次采购时;就应使用原有商品采购选项"
@2,3 MENU 进货菜单,2,2
@2,3 MENU 进货数组,2
@6,0 SAY "注:请按上下键进行选择,再按确认键执行!!"
READ MENU TO nCMenuChoice
DO CASE
CASE nCMenuChoice=1
Do 原库采购
CASE nCMenuChoice=2
DO 新货采购
OTHERWISE
EXIT
ENDCASE
ENDDO
RETURN
ENDPRO
PROCEDURE 原库采购
CLEAR
TEMP14=0
SELECT A
GO TOP
@0,1 Say "-- 准备订单输入 --"
@2,0 Say "当前记录号:"+Str(Recno(),5)
@3,0 Say "新记录序号:"+Str(Reccount()+1,5)
@5,1 Say "注意!!!"
@6,0 Say "按确认键,开始输入原有商品的采购订单!!"
Wait "" To cKey
if Asc(cKey)=13
Clear 2
ZHDJ=0.00
CGSL=0
TEMP3=""
XH=Reccount()
GO XH
DDID=定单ID+1
Append Blank
clear
@0,1 SAY "--原商品采购订单--"
@2,0 Say "订单ID:"
@2 ,col()+1 say DDID
@3,0 Say "客户A_ID:" Get 客户A_ID
@4,0 Say "采购员:" Get 雇员A_ID
@5,0 Say "商品ID:" Get SPID
@6,0 Say "采购单价:" Get ZHDJ
@7,0 Say "采购数量:" Get CGSL
Read
if len(SPID)=0
clear
@ 2,2 say "输入无效,重输!!!"
wait""
return
endif
replace 定单ID with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID
replace 日期 with DATE(), 商品ID with SPID
replace 采购数量 with CGSL, 采购金额 with CGSL*ZHDJ
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
n=WRITESYSVAR(85,str((TEMP14+CGSL),5))
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
SELECT D
GO TOP
locate for VAL(SPID)=VAL(商品A_ID) .and. (.not.eof( ))
SOUND 21,4
IF eof()
clear
@ 1,2 say "条码有误,商品库更新出错;按任意键返回!..."
wait ""
SELECT A
GO BOTTOM
replace 采购数量 with 0, 采购金额 with 0.00
RETURN
ELSE
CURR_REC=recno()
GO CURR_REC
* REM 零售价按进价的25%估算,但可在商品库直接改?
XKCL=STR(现库存量A,5)
nReturn=WRITESYSVAR(51,XKCL)
TEMP3=STR(库存总额A,11)
n=WRITESYSVAR(52,TEMP3)
replace 现库存量A with 现库存量A+CGSL
replace 库存总额A with 库存总额A+采购金额
* replace 零售单价A with round((库存总额A/现库存量A )*1.25,1)
ENDIF
endif
DO 校对原进货
RETURN
ENDPRO
PROCEDURE 新货采购
CLEAR
TEMP14=0
SELECT A
GO TOP
@0,1 Say "-- 新货采购输入 --"
@2,0 Say "当前记录号:"+Str(Recno(),5)
@3,0 Say "新记录序号:"+Str(Reccount()+1,5)
@5,0 Say "注意!!!"
@6,2 Say "只输入首次采购的商品订单,再次采购不在这里输入;切记!!!"
Wait "" To cKey
IF Asc(cKey)=13
Clear 2
SPID=""
SPMC=""
ZHDJ=0.00
CGSL=0
XH=Reccount()
GO XH
DDID=定单ID+1
Append Blank
* 新进商品
@0,1 SAY "-- 输入新货订单 --"
@2,0 Say "订单ID:"
@2,col()+1 Say DDID
@3,0 Say "客户A_ID:" Get 客户A_ID
@4,0 Say "采购员:" Get 雇员A_ID
@5,0 Say "商品ID:" Get SPID
@6,0 Say "商品名称:" Get SPMC
@7,0 Say "采购单价:" Get ZHDJ
@8,0 Say "采购数量:" Get CGSL
@9,0 Say "备注:" Get BZH
Read
if len(SPID)=0
clear
@ 2,2 say "输入无效,重输!!"
wait""
return
endif
if len(客户A_ID )=0 .or. len(雇员A_ID)=0 .or. len(SPID)=0
clear
@ 2,2 say "输入无效,返回重输!"
wait""
endif
replace 定单ID with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID
replace 日期 with DATE(), 商品ID with SPID
replace 采购数量 with CGSL, 采购金额 with CGSL*ZHDJ
SELECT D
GO BOTTOM
Append Blank
replace 商品A_ID with 商品ID ,商品名称A with SPMC
replace 备注A with BZH
replace 零售单价A with ZHDJ+ZHDJ*0.25
replace 现库存量A with CGSL
replace 库存总额A with 采购金额
ENDIF
DO 校对新进货
RETURN
ENDPRO
PROCEDURE 校对原进货
XH=0
TEMP14=0
SELECT a
XH=Reccount()
* clear
* @ 2,0 SAY "请输入新记录的序号:"
* @ 3,0 SAY "校对该进货记录"
* @ 4,3 GET XH
* READ
IF XH<>Reccount()
clear
@2,2 say "记录序号有误!..."
@3,2 say "返回重输!!!"
WAIT""
RETURN
ELSE
GO XH
DDID=定单ID
ENDIF
SELECT D
GO TOP
locate for VAL(商品A_ID)=VAL(SPID) .and. (.not.eof( ))
IF eof()
clear
SOUND 21,4
@ 1,2 say "商品库定位出错!..."
@ 2,2 say "或条码有误!..."
wait ""
RETURN
ELSE
CURR_REC=recno()
GO CURR_REC
SPMC=商品名称A
ENDIF
CLEAR
@0,1 Say "-- 校对进货订单 --"
@1,0 Say "订单ID:"
@1,col() SAY 定单ID
@2,0 Say "客户A_ID:"
@2,col() SAY 客户A_ID
@3,0 Say "采购员:"
@3,col()SAY 雇员A_ID
@4,0 Say "商品ID :"
@4,col() SAY 商品ID
@5,0 Say "商品名称:"
@5,col() say 商品名称A
@6,0 SAY "进货单价:"
@6,col() SAY ZHDJ
@7,0 Say "进货数量:"
@7,col()SAY 采购数量
@8,0 Say "正确按退出键;要修改;请按确认键..."
wait""
n=lastkey()
if n=24
return
else
CLEAR
SELECT A
* @0,1 Say "-- 重写采购订单 --"
* @2,0 Say "输入记录序号:" GET XH
@4,0 Say "注意!!!"
@5,0 Say "原有商品采购,重写订单按确认键!"
* READ
Wait "" To cKey
IF Asc(cKey)=13
TEMP1=0
GO XH
DDID=定单ID
ZHDJ=round(采购金额/采购数量,1)
clear
@0,1 SAY "-- 重写进货订单 --"
@2,0 Say "订单ID:"
@2,col()+1 say DDID
@3,0 Say "客户A_ID:" Get 客户A_ID
@4,0 Say "采购员:" Get 雇员A_ID
@5,0 Say "商品ID:" Get SPID
@6,0 Say "进货单价:" Get ZHDJ
@7,0 Say "进货数量:" Get CGSL
Read
replace 定单ID with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID
replace 日期 with DATE(), 商品ID with SPID
replace 采购数量 with CGSL, 采购金额 with CGSL*ZHDJ
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
n=WRITESYSVAR(85,str((TEMP14+CGSL),5))
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
SELECT D
GO TOP
locate for VAL(SPID)=VAL(商品A_ID) .and. (.not.eof( ))
SOUND 21,4
IF eof()
clear
@ 1,3 say "商品库更新出错!..."
@ 2,3 say "条码有误!..."
wait ""
SELECT A
GO BOTTOM
replace 采购数量 with 0, 采购金额 with 0.00
RETURN
ELSE
CURR_REC=recno()
GO CURR_REC
sSysVar4=READSYSVAR(51)
TEMP1=VAL(sSysVar4)
sSysVar1=READSYSVAR(52)
KCZE=VAL(sSysVar1)
* replace 零售单价A with ZHDJ+ZHDJ*0.25
replace 现库存量A with TEMP1+CGSL
replace 库存总额A with KCZE+采购金额
ENDIF
ENDIF
endif
RETURN
ENDPRO
PROCEDURE 校对新进货
XH=0
TEMP14=0
SELECT a
XH=Reccount()
* clear
* @ 2,0 SAY "请输入新记录的序号:"
* @ 3,0 SAY "校对该进货记录"
* @ 4,3 GET XH
* READ
IF XH<>Reccount()
clear
@2,2 say "记录序号有误!..."
@3,2 say "返回重输!!!"
WAIT""
RETURN
ELSE
GO XH
DDID=定单ID
ENDIF
SELECT D
GO TOP
locate for VAL(商品A_ID)=VAL(SPID) .and. (.not.eof( ))
IF eof()
clear
SOUND 21,4
@ 1,3 say "条码有误,商品库定位出错!..."
wait ""
SELECT A
GO BOTTOM
replace 采购数量 with 0, 采购金额 with 0.00
RETURN
ELSE
CURR_REC=recno()
GO CURR_REC
SPMC=商品名称A
ZHDJ=round(采购金额/采购数量,1)
ENDIF
CLEAR
@0,1 Say "-- 校对新货订单 --"
@1,0 Say "订单ID:"
@1,col() SAY 定单ID
@2,0 Say "客户A_ID:"
@2,col() SAY 客户A_ID
@3,0 Say "采购员:"
@3,col()SAY 雇员A_ID
@4,0 Say "商品ID :"
@4,col() SAY 商品ID
@5,0 Say "商品名称:"
@5,col() say 商品名称a
@6,0 SAY "进货单价:"
@6,col() SAY ZHDJ
@7,0 Say "进货数量:"
@7,col()SAY 采购数量
@8,0 Say "注:正确按退出键,欲修改按确认键..."
wait""
n=lastkey()
if n=24
return
else
CLEAR
SELECT A
@0,1 Say "-- 修改采购订单 --"
* @2,0 Say "输入记录序号:" GET XH
@3,0 Say "注意!!!"
@4,0 Say "修改首次采购的商品订单,按确认键!再次采购不在这里输入,切记!!!"
* READ
Wait "" To cKey
IF Asc(cKey)=13
GO XH
DDID=定单ID
Clear
@0,1 Say "-- 修改采购订单 --"
@2,0 Say "订单ID:"
@2,col()+1 say DDID
@3,0 Say "客户A_ID:" Get 客户A_ID
@4,0 Say "采购员:" Get 雇员A_ID
@5,0 Say "商品ID:" Get SPID
@6,0 Say "采购单价:" Get ZHDJ
@7,0 Say "采购数量:" Get CGSL
@8,0 Say "备注:" Get BZH
Read
replace 定单ID with DDID, 客户A_ID with 客户A_ID ,雇员A_ID with 雇员A_ID
replace 日期 with DATE(), 商品ID with SPID
replace 采购数量 with CGSL, 采购金额 with CGSL*ZHDJ
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
n=WRITESYSVAR(85,str((TEMP14+CGSL),5))
sSysVar1=READSYSVAR(85)
TEMP14=VAL(sSysVar1)
SELECT D
GO BOTTOM
replace 商品A_ID with 商品ID ,商品名称A with SPMC
replace 零售单价A with ZHDJ+ZHDJ*0.25
replace 现库存量A with CGSL
replace 库存总额A with CGSL*ZHDJ
replace 备注A with BZH
ENDIF
endif
RETURN
ENDPRO
PROCEDURE 零售一库
CLEAR
XSL=0
TEMP1=0
select D
GO TOP
@ 1,1 SAY "正在查找商品库..."
locate all for VAL(BarCode)=VAL(商品A_ID)
SOUND 21,4
IF eof()
clear
@ 2,2 say "已到数据库尾,条码有误;按任意键返回!!"
wait ""
RETURN
ELSE
CURR_REC=recno()
TEMP1=现库存量A
XSL=0
CLEAR
@ 0,1 SAY "-- 零 售 数 量--"
@ 2,0 SAY "条码:"
@ 2,COL()+1 SAY 商品A_ID
@ 3,0 SAY "商品名称:"
@ 3,COL()+1 SAY 商品名称A
@ 4,0 SAY "零售单价:"
@ 4,COL()+1 SAY 零售单价A
@ 5,0 SAY "已售总数:"
@ 5,COL()+1 SAY 零售总量A
@ 6,0 SAY "本次售出:"
@ 6,COL()+1 GET XSL
READ
IF TEMP1<XSL
clear
@ 2,0 say "库存量不足,返回重输!"
wait""
RETURN
ENDIF
PJJ=0.00
PJJ=round(库存总额A/现库存量A,1)
MLR=毛利润A +(零售单价A-PJJ)*XSL
TEMP= PJJ*XSL
TEMP1= 现库存量A-XSL
TEMP4= 库存总额A-TEMP
TEMP5=零售总量A+XSL
@ 7,0 SAY "小计:"
@ 7,COL()+1 SAY 零售单价A*XSL
@ 8,0 say "重要提示!!!"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -