📄 dxtj.prg
字号:
*代销商统计模块
*程序名:dxtj
*程序员:
*开发日期:1997.12.24
*修改日期:
*修改记录:
*变量说明
private all except p_*
qsrq=date()
jzrq=date()
qd=.t.
do form qzrq name qzrq
if qd
dhxx1='正在统计数据,请稍候...'
do form xxts name xxts
do jrz with p_gzrrxm,'进入代销商数据统计(金额)'
do dksjk with 'dxxsz','dxxsz'
do dksjk with 'dxth','dxth'
do dksjk with 'dxbx','dxbx'
do dksjk with 'chd','chd'
do dksjk with 'spk','spk'
do dksjk with 'dxs','dxs'
do gbsjk with '_dxtj'
select 0
create table _kctj free;
(代销商 c(20),;
进货 n(12,2),;
退货 n(12,2),;
保修 n(12,2),;
销售 n(12,2),;
库存 n(12,2),;
盘点差额 n(12,2))
*统计进货数
do gbsjk with '_dxtjls'
select chd
set order to tag dxs
total on 代销商 to _dxtjls for 日期>=qsrq .and. 日期<=jzrq
set order to
do dksjk with '_dxtjls','_dxtjls'
scan
select _kctj
append blank
replace 代销商 with _dxtjls.代销商,进货 with _dxtjls.金额
select _dxtjls
endscan
*统计退货
do gbsjk with '_dxtjls'
select dxth
set order to tag dxs
total on 代销商 to _dxtjls for 日期>=qsrq .and. 日期<=jzrq
set order to
do dksjk with '_dxtjls','_dxtjls'
scan
select _kctj
locate for alltrim(代销商)==alltrim(_dxtjls.代销商)
if found()
replace 退货 with _dxtjls.金额
else
append blank
replace 代销商 with _dxtjls.代销商,退货 with _dxtjls.金额
endif
select _dxtjls
endscan
*统计保修
do gbsjk with '_dxtjls'
select dxbx
set order to tag dxs
total on 代销商 to _dxtjls for 日期>=qsrq .and. 日期<=jzrq
set order to
do dksjk with '_dxtjls','_dxtjls'
scan
select _kctj
locate for alltrim(代销商)==alltrim(_dxtjls.代销商)
if found()
replace 保修 with _dxtjls.金额
else
append blank
replace 代销商 with _dxtjls.代销商,保修 with _dxtjls.金额
endif
select _dxtjls
endscan
*统计销售
do gbsjk with '_dxtjls'
select dxxsz
set order to tag dxs
total on 代销商 to _dxtjls for 日期>=qsrq .and. 日期<=jzrq
set order to
do dksjk with '_dxtjls','_dxtjls'
scan
select _kctj
locate for alltrim(代销商)==alltrim(_dxtjls.代销商)
if found()
replace 销售 with _dxtjls.金额
else
append blank
replace 代销商 with _dxtjls.代销商,销售 with _dxtjls.金额
endif
select _dxtjls
endscan
*统计库存
do gbsjk with '_dxtjls2'
select 0
create table _dxtjls2 free;
(代销商 c(20),品名 c(20),规格 c(20),余额 n(5,0),金额 n(12,2))
do gbsjk with 'dxkzz'
do gbsjk with '_dxtjls'
do dksjk with '_dxtjls2','_dxtjls2'
append from dxkzz
scan
select spk
locate for alltrim(品名)==alltrim(_dxtjls2.品名) .and. alltrim(规格)==alltrim(_dxtjls2.规格)
if found()
select _dxtjls2
replace 金额 with 余额*spk.销售单价
else
select _dxtjls2
endif
endscan
index on 代销商 to _dxtjls2
total on 代销商 to _dxtjls
do dksjk with '_dxtjls','_dxtjls'
scan
select _kctj
locate for alltrim(代销商)==alltrim(_dxtjls.代销商)
if found()
replace 库存 with _dxtjls.金额
else
append blank
replace 代销商 with _dxtjls.代销商,库存 with _dxtjls.金额
endif
select _dxtjls
endscan
*统计盘点差额
do gbsjk with '_dxtjls2'
select 0
create table _dxtjls2 free;
(代销商 c(20),品名 c(20),规格 c(20),余额 n(5,0),盘点数 n(5,0),金额 n(12,2))
select dxs
scan
do dksjk with 'dxpdb','dxpdb'
calculate max(年*100+月) to pdzdny for alltrim(代销商)==alltrim(dxs.代销商)
if pdzdny>0
pdzdn=val(left(str(pdzdny,6),4))
pdzdy=val(right(str(pdzdny,6),2))
do gbsjk with 'dxpdb'
do dksjk with '_dxtjls2','_dxtjls2'
zap
append from dxpdb for alltrim(代销商)==alltrim(dxs.代销商) .and. 年=pdzdn .and. 月=pdzdy
scan
select spk
locate for alltrim(品名)==alltrim(_dxtjls2.品名) .and. alltrim(规格)==alltrim(_dxtjls2.规格)
if found()
select _dxtjls2
replace 金额 with (盘点数-余额)*spk.销售单价
else
select _dxtjls2
endif
endscan
sum 金额 to pdjehj
select _kctj
locate for alltrim(代销商)==alltrim(dxs.代销商)
if found()
replace 盘点差额 with pdjehj
else
append blank
replace 代销商 with _dxtjls.代销商,盘点差额 with pdjehj
endif
endif
endscan
*计算合计
select _kctj
sum to jhhj,thhj,bxhj,xshj,kchj,pdhj
append blank
replace 代销商 with replicate('-',20)
append blank
replace 代销商 with ' 合 计',;
进货 with jhhj,;
退货 with thhj,;
保修 with bxhj,;
销售 with xshj,;
库存 with kchj,;
盘点差额 with pdhj
*进入查看
xxts.release
qd=.t.
dhxx='是否在查看后打印?'
do form sfdhk
report form dxtj preview
if qd
report form dxtj to printer noconsol
endif
do jrz with p_gzrrxm,'退出代销商数据统计(金额)'
endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -