📄
字号:
*************************************************************
* 凭证分录子程序 凭证分录.PRG *
* 调用程序 记帐主程序.PRG *
*************************************************************
SET TALK OFF && 阻止对话结果传送到窗口
FOR i=1 TO kmmxgs && 循环,终值为科目名细个数
DO CASE && 根据情况判断处理
CASE ALLTRIM(zza(i,4))='现金'.OR.ALLTRIM(zza(i,4))='银行存款';
.OR.ALLTRIM(zza(i,4))='其他货币资金' && 当现金、银行存款'、其他货币资金
IF FILE(zza(i,9)+'.dbf') && 如果文件存在
USE &zza(i,9) && 打开文件
ELSE && 否则
WAIT WINDOW (zza(i,4))+zza(i,9)+'文件不存在' && 提示信息
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,摘要 WITH zza(i,1) && 替换字段
REPLACE 结算凭证号 WITH zza(i,3) && 替换字段
IF zza(i,10)='转帐' && 如果是转账凭证
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ELSE && 否则(收、付款凭证)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’,以示区别
ENDIF
IF zza(i,6)<>0 && 如果借方不等于零
REPLACE 借方 WITH zza(i,6) && 替换借方
ELSE && 否则
REPLACE 贷方 WITH zza(i,7) && 替换贷方
ENDIF
REPLACE 余额 WITH yu_e+借方-贷方 && 替换余额
STORE zza(i,8) TO jdbs && 借贷标识
FOR j=1 TO 9 && 循环查找
IF zza(j,8)<>jdbs && 如果找到不相等的借贷标识
REPLACE 对方科目 WITH zza(j,4) && 替换对方科目
EXIT && 跳出FOR循环
ENDIF
NEXT && 下一个FOR循环
BROWSE;
NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,9)+' '+zza(i,4)
&& 浏览
USE && 关闭表
CASE ALLTRIM(zza(i,4))='长期待摊费用' && 当科目名称为长期待摊费用
IF FILE(zza(i,9)+'.dbf') && 如果文件存在
USE &zza(i,9) && 打开文件
ELSE && 否则
WAIT WINDOW (zza(i,4))+zza(i,9)+'文件不存在' && 提示信息
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,摘要 WITH zza(i,1) && 替换字段
IF zza(i,10)='转帐' && 如果是转账凭证
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ELSE && 否则(收、付款凭证)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’,以示区别
ENDIF
IF zza(i,6)<>0 && 如果借方不等于零
REPLACE 借方 WITH zza(i,6) && 替换借方
ELSE && 否则
REPLACE 贷方 WITH zza(i,7) && 替换贷方
ENDIF
REPLACE 余额 WITH yu_e+zza(i,6)-zza(i,7) && 替换余额
REPLACE 借或贷 WITH '借' && 替换借贷标识
IF 余额=0 && 如果余额等于零
REPLACE 借或贷 WITH ' ' && 借贷标识为空
ENDIF
BROWSE ;
NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
TITLE zza(i,9)+' '+zza(i,4)+' '+zza(i,5) && 浏览
USE && 关闭表
&& 以上处理长期待摊费用明细,以下处理长期待摊费用科目
IF zza(i,6)<>0 && 如果借方不等于零
USE mx1901001 && 打开长期待摊费用科目表,此处用明细第一个表代替科目表
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,摘要 WITH zza(i,1) && 替换字段
IF zza(i,10)='转帐' && 如果是转账凭证
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ELSE && 否则(收、付款凭证)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’,以示区别
ENDIF
REPLACE 借方 WITH zza(i,6) && 替换字段
REPLACE 余额 WITH yu_e+zza(i,6)-zza(i,7) && 替换字段
REPLACE 借或贷 WITH '借' && 替换借贷标识
IF 余额=0 && 如果余额等于零
REPLACE 借或贷 WITH ' ' && 借贷标识为空
ENDIF
ENDIF
USE && 关闭表
CASE ALLTRIM(zza(i,4))='库存商品' && 当科目名称为库存商品
IF FILE(zza(i,9)+'.dbf') && 如果文件存在
USE &zza(i,9) && 打开文件
ELSE && 否则
WAIT WINDOW (zza(i,4))+zza(i,9)+'文件不存在' && 提示信息
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
STORE 余数量 TO ysl && 记下数量
APPEND BLANK && 追加空纪录
IF zza(i,8)='借' && 如果借贷标识为借
REPLACE 借方 WITH zza(i,6) && 替换借方金额
REPLACE 借数量 WITH ccpshuliang(i) && 替换产成品数量
IF ccpdj(i)#0.00 && 如果产成品单价不等于零
REPLACE 借单价 WITH ccpdj(i) && 替换单价
ENDIF
REPLACE 余数量 WITH ysl+ccpshuliang(i) && 替换余额数量
ELSE && 否则
REPLACE 贷方 WITH zza(i,7) && 替换贷方金额
REPLACE 贷数量 WITH ccpshuliang(i) && 替换贷数量
IF ccpdj(i)#0.00 && 如果产成品单价不等于零
REPLACE 贷单价 WITH ccpdj(i) && 替换单价
ENDIF
REPLACE 余数量 WITH ysl-ccpshuliang(i) && 替换余额数量
ENDIF
REPLACE 日期 WITH riqi,摘要 WITH zza(i,1) && 替换字段
IF zza(i,10)='转帐' && 如果是转账凭证
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ELSE && 否则(收、付款凭证)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’,以示区别
ENDIF
REPLACE 余额 WITH yu_e+zza(i,6)-zza(i,7) && 替换字段
REPLACE 产品型号 WITH ccpxh(i) && 替换字段
BROWSE ;
NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
TITLE zza(i,9)+' '+zza(i,4)+' '+zza(i,5) && 浏览
USE && 关闭表
CASE ALLTRIM(zza(i,4))='应交税金' && 当科目名称为应交税金
DO CASE
CASE ALLTRIM(zza(i,4))='应交税金'.AND.ALLTRIM(zza(i,5))='应交增值税'
&& 名细 mx2171001
IF FILE(zza(i,9)+'.dbf') && 如果文件存在
USE &zza(i,9) && 打开文件
ELSE && 否则
WAIT WINDOW (zza(i,4))+zza(i,9)+'文件不存在' && 提示信息
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,凭证种类 WITH zza(i,10),;
摘要 WITH zza(i,1) && 替换字段
IF zza(i,10)='收款'.OR.zza(i,10)='付款' && 如果是收款或付款
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’
ELSE && 否则(转帐)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ENDIF
IF zza(i,6)#0 && 如果借方不等于零
FOR j=1 TO cbfyend(i) && 循环,终值为摘要与借方之间的栏目个数
IF cbfyfieldje(i,j)#0.00 && 如果这个栏目金额不等于零
REPLACE (cbfyfield(i,j)) WITH cbfyfieldje(i,j) && 替换字段
ENDIF
&& cbfyfield(i,j)为数组元素,内容为字段名
&& (cbfyfield(i,j))为字段名名表达式
&& 这点地方可能不好理解,清参阅二十七章栏目填写应交税金部分
NEXT && 下一个栏目(字段)
REPLACE 借方 WITH zza(i,6) && 替换借方金额
ENDIF
IF zza(i,7)#0 && 如果贷方不等于零
FOR j=1 TO cbfyend(i) && 循环,终值为借方与贷方之间的栏目个数
IF cbfyfieldje(i,j)#0.00 && 如果这个栏目金额不等于零
REPLACE (cbfyfield(i,j)) WITH cbfyfieldje(i,j) && 替换字段
ENDIF && cbfyfield(i,j)为数组元素,内容为字段名
&& (cbfyfield(i,j))为字段名名变量
NEXT && 下一个栏目(字段)
REPLACE 贷方 WITH zza(i,7) && 替换贷方金额
ENDIF
REPLACE 余额 WITH yu_e-借方+贷方 && 替换余额
BROWSE;
NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
TITLE zza(i,9)+' '+zza(i,4)+' '+zza(i,5) && 浏览
USE && 关闭表
OTHERWISE && 其他,未交增值税、城建税、车税
IF FILE(zza(i,9)+'.dbf') && 如果文件存在
USE &zza(i,9) && 打开文件
ELSE && 否则
WAIT WINDOW (zza(i,4))+zza(i,9)+'文件不存在' && 提示信息
CLEAR ALL && 释放变量、窗口,关闭表
CANCEL && 终止程序的执行
ENDIF
GOTO BOTTOM && 指针指向末纪录
STORE 余额 TO yu_e && 记下余额
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,摘要 WITH zza(i,1)&& 替换字段
IF zza(i,10)='收款'.OR.zza(i,10)='付款' && 如果是收款或付款
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao))+'-1' && 替换凭证号加‘-1’
ELSE && 否则(转帐)
REPLACE 凭证号 WITH ALLTRIM(STR(bianhao)) && 替换凭证号
ENDIF
REPLACE 借方 WITH zza(i,6),贷方 WITH zza(i,7) && 替换字段
REPLACE 余额 WITH yu_e-zza(i,6)+zza(i,7) && 替换余额字段
BROWSE ;
NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE;
zza(i,9)+' '+zza(i,4)+zza(i,5) && 浏览
USE && 关闭表
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -