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

📄

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
		DO rk                                    && 键控过程,按Ctrl+End结束程序
		STORE zhai1(h) TO fkjf(i,1)              && 记下摘要
		DEAC WINDOW zyw                          && 挂起窗口
		@ 5+2.2*i,3.5 GET fkjf(i,1) SIZE 1,16    && 显示摘要,允许编辑
		READ                                     && 激活对象
		IF h>=2                                  && 如果选中第二以下的摘要
			FOR  w=h TO 2 STEP -1                && 循环
				zhai1(w)=zhai1(w-1)              && 向下递推
			NEXT                                 && 下一个FOR循环
		ENDIF
		zhai1(1)=fkjf(i,1)                       && 第一个摘要自动更新
		zhai1(20)='              '               && 第二十个为空
		@ 5+i*2.2,23 SAY '☆' SIZE 1,2,1         && 在结算方式处显示☆_,指示位置
		DEFI WINDOW zyw FROM 6,84 TO 26,103  TITLE " 结算方式 " ;
			ZOOM  MINIMIZE FLOAT DOUB            && 定义窗口
		ACTI WINDOW zyw                          && 激活窗口
		STORE 1 TO h                             && 初始化变量
		@ 1,1 GET h DEFA 1  FUNC '&t' FROM jsfs  && 结算方式List列表
		READ                                     && 激活对象
		STORE jsfs(h) TO fkjf(i,2)               && 记下结算方式 
		FOR kk=h TO 2 STEP -1                    && 循环
			jsfs(kk)=jsfs(kk-1)                  && 向下递推
		NEXT                                     && 下一个FOR循环
		jsfs(1)=fkjf(i,2)                        && 选中的放在第一位
		DEAC WINDOW zyw                          && 挂起窗口
		@ 5+i*2.2,22 GET fkjf(i,2) SIZE 1,8 DISABLE   && 显示结算方式,禁止编辑
		@ 5+i*2.2,32 GET fkjf(i,3) SIZE 1,4      && 编辑票号  
		READ                                     && 激活对象
		DO rk                                    && 键控过程,按Ctrl+End结束程序
	NEXT                                         && 下一个FOR循环
** 填写金额
	STORE .F. TO jc                                  && 初始化逻辑变量
	DO WHILE jc=.F.                                  && 循环
		STORE 0.00 TO fkdfzj,fkjfzj,jehj_m           && 初始化变量
		FOR i=1 TO MD                                && 循环,终值为贷方科目明细个数
			@ i*1.3+0.6,66 GET fkdf(i,4) SIZE 1,12 DEFA 0.00  && 编辑付款贷方金额
		NEXT                                         && 下一个FOR循环
		FOR i=1 TO m1                                && 循环,终值为借方科目明细个数
			@ 5+i*2.2,67 GET fkjf(i,6) SIZE 1,12     && 编辑付款借方金额
		NEXT                                         && 下一个FOR循环
		READ                                         && 激活对象
		DO rk                                        && 键控过程,按Ctrl+End结束程序
		FOR i=1 TO MD                                && 循环,终值为贷方科目明细个数
			fkdfzj=fkdfzj+fkdf(i,4)                  && 付款贷方总计
		NEXT                                         && 下一个FOR循环
		FOR i=1 TO m1                                && 循环,终值为借方科目明细个数
			fkjfzj=fkjfzj+fkjf(i,6)                  && 浮夸借方总计
		NEXT                                         && 下一个FOR循环
		@ 20,54 SAY fkdfzj SIZE 1,12 COLOR RGB(255,255,255,0,0,0)  && 显示贷方总计
		@ 20,67 SAY fkjfzj SIZE 1,12 COLOR RGB(255,255,255,0,0,0)  && 显示借方总计
		IF fkdfzj=fkjfzj                             && 如果贷方总计等于借方总计 
			jehj_m=fkdfzj                            && 记下总计
			kmmxgs=MD+m1                             && 记下贷方和借方科目和明细个数
			? '  正在登帐 请稍候 '                   && 显示信息
			STORE .T. TO jc                          && 逻辑变量赋真,跳出DO循环
		ELSE                                         && 否则	
			DEFI WINDOW jg FROM 6,80 TO 14,103  TITLE " 警告 "  ;
				ZOOM  MINIMIZE FLOAT DOUB  CLOSE     && 定义窗口
			ACTI WINDOW jg                           && 激活窗口
			@ 0,1 GET jg DEFA '借贷不相等, 请纠正' COLOR r/w    && 显示信息  
			FOR N=1 TO 1000 
				? CHR(7)                             && 笛声
			NEXT
			READ                                     && 激活对象
			DO rk                                    && 键控过程,按Ctrl+End结束程序
			DEAC WINDOW jg                           && 挂起窗口
			STORE .F. TO jc                          && 逻辑变量赋假,继续循环编辑金额
		ENDIF
	ENDDO                                            && 下一个DO循环

	FOR i=1 TO MD                                    && 循环,终值为贷方科目明细个数
		zza(i,1)=fkdf(i,1)                           && 摘要
		zza(i,3)=fkjf(i,3)                           && 票号同借方
		zza(i,4)=fkdf(i,2)                           && 总帐科目名称
		zza(i,5)=fkdf(i,3)                           && 明细名称
		zza(i,7)=fkdf(i,4)                           && 贷方金额
		zza(i,8)='贷'                                && 借贷标识
		zza(i,9)=fkdf(i,5)                           && 登帐数据库名
	NEXT                                             && 下一个FOR循环
	FOR i=1 TO m1                                    && 循环,终值为借方科目明细个数
		zza(i+MD,1)=fkjf(i,1)                        && 摘要
		zza(i+MD,2)=fkjf(i,2)                        && 结算方式
		zza(i+MD,3)=fkjf(i,3)                        && 票号
		zza(i+MD,4)=fkjf(i,4)                        && 总帐科目名称
		zza(i+MD,5)=fkjf(i,5)                        && 明细名称
		zza(i+MD,6)=fkjf(i,6)                        && 借方金额
		zza(i+MD,8)='借'                             && 借贷标识
		zza(i+MD,9)=fkjf(i,7)                        && 登帐数据库名
	NEXT                                             && 下一个FOR循环
	kmmxgs=MD+m1                                     && 贷方和借方的科目明细个数
ELSE                                                 && 否则,付款借方科目或明细个数大于6
	FOR i=1 TO MD                                    && 循环,终值为贷方科目明细个数
		zza(i,1)=fkdf(i,1)                           && 摘要
		zza(i,3)=fkjf(i,3)                           && 票号同借方
		zza(i,4)=fkdf(i,2)                           && 总帐科目名称
		zza(i,5)=fkdf(i,3)                           && 明细名称
		zza(i,7)=fkdf(i,4)                           && 贷方金额
		zza(i,8)='贷'                                && 借贷标识
		zza(i,9)=fkdf(i,5)                           && 登帐数据库名
	NEXT                                             && 下一个FOR循环
	FOR i=1 TO m1                                    && 循环,终值为借方科目明细个数
		zza(i+MD,1)=fkjf(i,1)                        && 摘要
		zza(i+MD,2)=fkjf(i,2)                        && 结算方式
		zza(i+MD,3)=fkjf(i,3)                        && 票号
		zza(i+MD,4)=fkjf(i,4)                        && 总帐科目名称
		zza(i+MD,5)=fkjf(i,5)                        && 明细名称
		zza(i+MD,6)=fkjf(i,6)                        && 借方金额
		zza(i+MD,8)='借'                             && 借贷标识
		zza(i+MD,9)=fkjf(i,7)                        && 登帐数据库名
	NEXT                                             && 下一个FOR循环
	DEFI WINDOW wbrow FROM 7,4 TO 27,106 TITLE '付款记账浏览窗口';
		ZOOM  MINIMIZE FLOAT DOUB  CLOSE        && 定义浏览窗口
	ACTI WINDOW wbrow                           && 激活窗口
	SET SAFE OFF                                && 关闭安全提示窗口
	USE 大被单表                                && 打开表
	ZAP                                         && 清除记录
	FOR i=1 TO MD+m1                               && 循环 
		APPEND BLANK                            && 追加空记录
		REPLACE 科目 WITH zza(i,4),明细 WITH zza(i,5)  && 替换字段
	NEXT                                        && 下一个FOR循环
	STORE .F. TO hj                             && 初始化逻辑变量
	DO WHILE hj=.F.                             && 循环
		GOTO TOP                                && 指针指向表顶
		BROW TITLE '输入摘要,借方,贷方'	FIELDS 科目:W=.F.:18,明细:W=.F.:20,;
			借方:W=IIF(ZZA(RECNO(),8)='借',.T.,.F.),;
			贷方:W=IIF(ZZA(RECNO(),8)='贷',.T.,.F.),;
			摘要:30: v=fzy():F    
			 && 在浏览窗口中输入摘要、借方、贷方,借方借允许,贷方贷允许,摘要自动点选
		SUM 借方,贷方 TO jhj,dhj                && 累加和
		IF jhj<>dhj                             && 如果借贷不相等
			FOR i=1 TO 500                       
				?? CHR(7)                       && 笛声
			NEXT
			STORE '借方:'+STR(jhj,13,2)+'  贷方:'+STR(dhj,13,2)+CHR(13)+'借贷不相等!' TO jg
			WAIT WINDOW jg                      && 警告信息  
		ELSE                                    && 否则
			STORE .T. TO hj                     && 逻辑变量为真,跳出DO循环
		ENDIF
	ENDDO                                       && 下一个DO循环
	@ 2,30 SAY '稍候'                           && 显示信息
	jehj_m=jhj                                  && 记下累加和
	FOR kk=1 TO m1                              && 循环  
		GOTO kk                                 && 移动指针
		zza(kk,1)=摘要                          && 给数组元素赋值,下同
		zza(kk,6)=借方
		zza(kk,7)=贷方
	NEXT                                        && 下一个FOR循环
	ZAP                                         && 删除全部记录
	SET SAFE ON                                 && 打开安全提示窗口
	USE                                         && 关闭表
	STORE MD+m1 TO kmmxgs                          && 记下科目明细个数
	DEACTI WINDOW wbrow                         && 挂起窗口
ENDIF
DO 摘要更新                                     && 过程
RETURN                                          && 付款记账凭证登录子程序结束

	PROC 摘要更新                              && 过程
		FOR K=1 TO 20
			ZHAI(K,1)=ZHAI1(K)                 && 更新数组
		NEXT
		SET SAFETY OFF                         && 关闭安全提示窗口
		IF USED('ZY')                          && 如果摘要文件打开
			SELECT 5                           && 激活工作区
		ELSE                                   && 否则 
			SELECT 5                           && 激活工作区
			USE ZY                             && 打开摘要文件
		ENDIF
		ZAP                                    && 清除纪录
		APPEND FROM ARRAY ZHAI                 && 从数组追加
 		RETURN                                 && 返回调用程序


	FUNCTION fzy                                && 摘要自动点选函数
		IF 摘要<>' '                            && 如果摘要栏里有内容
			zhai1(1)=摘要                       && 让该内容占据首位
			zhai1(20)='              '
		ELSE                                    && 否则
			DEFI WINDOW zyw FROM 1,96 TO 28,116  TITLE "摘要" ;
				 ZOOM  MINIMIZE FLOAT DOUB CLOSE  && 定义摘要窗口
			ACTI WINDOW zyw                     && 激活窗口
			STORE 1 TO hekh000s                 && 初始化变量
			@ 0,1 GET hekh000s DEFA 1  FUNC '&t ' FROM zhai1   && List列表,列出摘要内容
			READ  CYCLE                         && 激活对象
			REPLACE 摘要 WITH zhai1(hekh000s)   && 替换字段
			IF hekh000s>=2                      && 如果点选的是第二以下的内容
				FOR  w=hekh000s TO 2 STEP -1    && 循环
					zhai1(w)=zhai1(w-1)         && 下推
				NEXT                            && 下一个FOR循环  
				zhai1(1)=摘要                   && 让中选者占据首位
				zhai1(20)='              '      && 末位为空
			ENDIF	
		ENDIF
		DEAC WINDOW zyw                         && 挂起窗口
	RETURN                                      && 函数返回真

PROC rk                                         && 键控过程
	IF READKEY()=270                            && 如果按了Ctrl+End 结束程序
		CLEAR ALL                               && 释放变量、窗口,关闭表
		CANCEL                                  && 停止当前程序的执行
	ENDIF
	RETURN                                      && 返回调用程序

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -