⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxtj.prg

📁 vfp的进销存系统
💻 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 + -