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

📄

📁 visualfoxpro企业会计电算化实例
💻
字号:
***************************************************************
*    凭证登帐子程序          凭证登帐.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 + -