📄
字号:
***************************************************************
* 凭证登帐子程序 凭证登帐.PRG *
* 调用程序 记账主程序.PRG *
***************************************************************
SET TALK OFF && 阻止对话结果转送到窗口
DEAC WINDOW all && 使所有的窗口失效
Y=MONTH(the_end) && 月函数
STORE ' ' TO yue && 初始化变量
yue = STR(Y) && 月转换为字符串
IF Y<10 && 如果月份小于10
yue = '0'+ALLTRIM(yue) && 月字符串去掉空格前添0
ELSE && 否则
yue = ALLTRIM(yue) && 月字符串去掉空格
ENDIF
STORE ' ' TO pzwjm,pznrwjm && 初始化变量,
*IF s=1 && 转账凭证单独装钉时用此语句
IF s=1.OR.s=2.OR.s=3 && 三种凭证合订时用此语句
************************************************************************************
* 各单位会计习惯不同,
* 转账凭证单独装钉时使用 IF s=1 语句,将 IF s=1.OR.s=2.OR.s=3 语句之前加‘*’号
* 三种凭证合订时用 IF s=1.OR.s=2.OR.s=3 语句,将 IF s=1 语句之前加‘*’号
************************************************************************************
zzpz='zz'+RIGHT(STR(YEAR(the_end)),2)+yue
&& 转账凭证装订成册的文件名,这是一个父表
zzpznr='zz'+RIGHT(STR(YEAR(the_end)),2)+yue+'nr'
&& 转账凭证内容装订成册的文件名,这是一个子表
SELECT 6 && 激活工作区
IF .NOT.(USED(zzpz+'.dbf').AND.USED(zzpz+'.cdx')) && 如果不是转账凭证表与索引文件均打开
IF FILE(zzpz+'.dbf') && 如果转账凭证表存在
IF FILE(zzpz+'.cdx') && 如果也索引文件存在
USE &zzpz ALIAS zzpz ORDER TAG &zzpz && 打开转账凭证表及其索引
ELSE && 否则
USE &zzpz ALIAS zzpz && 打开转账凭证表
INDEX ON 凭证编号 TAG &zzpz && 进行索引
ENDIF
ELSE && 否则
USE 转账凭证库结构 && 打开转账凭证库结构文件
COPY STRU TO &zzpz && 复制表结构
USE &zzpz ALIAS zzpz && 打开转账凭证表
INDEX ON 凭证编号 TAG &zzpz && 进行索引
ENDIF
ENDIF
GOTO BOTTOM && 指针指向纪录末
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,凭证编号 WITH bianhao,凭证类别 WITH pingzlb,;
金额合计 WITH jehj_m,附单据张数 WITH fudanjzs && 替换字段
REPLACE 会计主管人 WITH kuaijizg,记账 WITH jizhang,稽核 WITH jihe,;
制单 WITH zhidan,出纳 WITH chuna,领款人 WITH lingkr && 替换字段
BROWSE ;
NOAPPEND NODELETE NOMODIFY TITLE ' 转帐凭证库 ';
IN SCREEN WIDTH 100 NORMAL && 浏览
USE && 关闭表
***************** 以上是转账凭证通项,父表;以下是转账凭证内容,子表 **************
SELECT 7 && 激活工作区
IF FILE(zzpznr+'.dbf') && 如果转账凭证内容表存在
IF FILE(zzpznr+'.cdx') && 如果转账凭证表索引也存在存在
USE &zzpznr ALIAS zzpznr ORDER &zzpznr && 打开转账凭证内容表及其复合索引
ELSE && 否则
USE &zzpznr ALIAS zzpznr && 打开转账凭证内容表
INDEX ON 凭证编号 TAG &zzpznr && 进行复合索引
ENDIF
ELSE && 否则
USE 转账凭证内容库结构 && 打开转账凭证内容库结构文件
COPY STRU TO &zzpznr && 复制表结构
USE &zzpznr ALIAS zzpznr && 打开转账凭证内容表
INDEX ON 凭证编号 TAG &zzpznr && 进行复合索引
ENDIF
GOTO BOTTOM && 指针指向纪录末
i=1 && 初始化变量
DO WHILE LEN(ALLTRIM(zza(i,4)))<>0 && 数组元素(科目名称)不为空
GOTO BOTTOM && 指针指向纪录末
APPEND BLANK && 追加空纪录
REPLACE 凭证编号 WITH bianhao,日期 WITH riqi,摘要 WITH zza(i,1),;
结算方式 WITH zza(i,2),票号 WITH zza(i,3) && 替换字段
REPLACE 总账科目 WITH zza(i,4),明细科目 WITH zza(i,5) && 替换字段
IF zza(i,8)='借' && 如果借或贷为借
REPLACE 借方 WITH zza(i,6) && 替换借方金额
ELSE && 否则
REPLACE 贷方 WITH zza(i,7) && 替换贷方金额
ENDIF
REPLACE 借或贷 WITH zza(i,8),分录库名 WITH zza(i,9) && 替换字段
i=i+1 && 计数器加1
ENDDO && 下一个DO循环
BROWSE && 浏览
USE && 关闭表
ELSE && 否则(只有在转账凭证单独装钉,收付凭证也另行装订时)
sfpz='sf'+RIGHT(STR(YEAR(the_end)),2)+yue
&& 收付凭证装订成册的文件名,这是一个父表
sfpznr='sf'+RIGHT(STR(YEAR(the_end)),2)+yue+'nr'
&& 收付凭证内容装订成册的文件名,这是一个子表
SELECT 6 && 激活工作区
IF FILE(sfpz+'.dbf') && 如果收付凭证表存在
IF FILE(sfpz+'.idx') && 如果收付凭证索引文件也存在
USE &sfpz ALIAS sfpz INDEX &sfpz && 打开收付凭证表及其索引
ELSE && 否则
USE &sfpz ALIAS &sfpz && 打开收付凭证表
INDEX ON 凭证编号 TO &sfpz && 进行索引
ENDIF
ELSE && 否则
USE 收付凭证库结构 && 打开收付凭证库结构
COPY STRU TO &sfpz && 复制收付凭证表结构
USE &sfpz ALIAS sfpz && 打开收付凭证表
INDEX ON 凭证编号 TO &sfpz && 进行索引
ENDIF
APPEND BLANK && 追加空纪录
REPLACE 日期 WITH riqi,凭证编号 WITH bianhao,凭证类别 WITH pingzlb,;
金额合计 WITH jehj_m,附单据张数 WITH fudanjzs && 替换字段
REPLACE 会计主管人 WITH kuaijizg,记账 WITH jizhang,稽核 WITH jihe,;
制单 WITH zhidan,出纳 WITH chuna,领款人 WITH lingkr && 替换字段
BROWSE ;
NOAPPEND NODELETE NOMODIFY TITLE ' 收付款凭证库 ';
IN SCREEN WIDTH 100 NORMAL && 浏览
USE && 关闭表
***************** 以上是收付凭证通项,父表;以下是收付凭证内容,子表 **************
SELECT 7 && 激活工作区
IF FILE(sfpznr+'.dbf') && 如果收付凭证内容表存在
IF FILE(sfpznr+'.idx') && 如果收付凭证内容索引文件也存在
USE &sfpznr INDEX &sfpznr ALIAS sfpznr && 打开收付凭证内容表及其索引
ELSE && 否则
USE &sfpznr ALIAS sfpznr && 打开收付凭证内容表
INDEX ON 凭证编号 TO &sfpznr && 进行索引
ENDIF
ELSE && 否则
USE 收付凭证内容库结构 && 打开收付凭证内容库结构
COPY STRU TO &sfpznr && 复制表结构
USE &sfpznr ALIAS sfpznr && 打开收付凭证内容表
INDEX ON 凭证编号 TO &sfpznr && 进行索引
ENDIF
i=1 && 初始化计数器
DO WHILE LEN(ALLTRIM(zza(i,4)))<>0 && 数组元素(科目名称)不为空
APPEND BLANK && 追加空纪录
REPLACE 凭证编号 WITH bianhao,日期 WITH riqi,摘要 WITH zza(i,1),;
结算方式 WITH zza(i,2),票号 WITH zza(i,3) && 替换字段
REPLACE 总账科目 WITH zza(i,4),明细科目 WITH zza(i,5) && 替换字段
IF zza(i,8)='借' && 如果借或贷为借
REPLACE 借方 WITH zza(i,6) && 替换借方金额
ELSE && 否则
REPLACE 贷方 WITH zza(i,7) && 替换贷方金额
ENDIF
REPLACE 借或贷 WITH zza(i,8),分录库名 WITH zza(i,9) && 替换字段
i=i+1 && 计数器加1
ENDDO && 下一个DO循环
BROWSE ;
NOAPPEND NODELETE NOMODIFY TITLE ' 收付款凭证内容库 ';
IN SCREEN WIDTH 100 && 浏览
USE && 关闭表
ENDIF
RETURN && 子程序结束,返回子程序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -