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

📄 -i+

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
		DO rk                                        && 键控过程,按Ctrl+End结束程序
		STORE zhai1(h) TO skdf(i,1)                  && 记下摘要
		IF h>=2                                      && 如果选中第二以下的摘要
			FOR  w=h TO 2 STEP -1                    && 循环
				zhai1(w)=zhai1(w-1)                  && 向下递推
			NEXT                                     && 下一个FOR循环
		ENDIF
		zhai1(1)=skdf(i,1)                           && 第一个摘要自动更新         **
		zhai1(20)='              '                   && 第二十个为空
		DEAC WINDOW zyw                              && 挂起摘要窗口
		@ 4.4+i*2.2,3.5 GET skdf(i,1) SIZE 1,14      && 编辑摘要
		@ 4.4+i*2.2,23 GET z3 DEFAULT '☆' SIZE 1,2,1 DISABLE && 在显示结算方式之处显示☆
		DEFI WINDOW zyw FROM 6,77 TO 16,103  TITLE " 结算方式 " ;
			ZOOM  MINIMIZE FLOAT DOUB  CLOSE         && 定义窗口
		ACTI WINDOW zyw                              && 激活窗口
		STORE 1 TO h                                 && 初始化变量
		@ 1,1 GET h DEFA 2  FUNC '&t' FROM jsfs      && 结算方式List列表
		READ                                         && 激活对象
		STORE jsfs(h) TO skdf(i,2)                   && 记下结算方式
		FOR h1=h TO 2 STEP -1                        && 循环
			jsfs(h1)=jsfs(h1-1)                      && 结算方式递推
		NEXT                                         && 下一个FOR循环
		jsfs(1)=skdf(i,2)                            && 第一个总是刚选过的
		DEAC WINDOW zyw                              && 挂起窗口

		@ 4.4+i*2.2,22 GET skdf(i,2) SIZE 1,8 DISABLE  && 显示结算方式,禁止编辑
		@ 4.4+i*2.2,32 GET skdf(i,3) SIZE 1,4        && 编辑票号
		READ                                         && 激活对象 
		DO rk                                        && 键控过程,按Ctrl+End结束程序
	NEXT                                             && 下一个FOR循环

** 填写收款借方和贷方的金额金额
	STORE .F. TO jc                                  && 初始化逻辑变量
	DO WHILE jc=.F.                                  && 循环  
		STORE 0.00 TO skjfzj,jehj_m                  && 初始化变量
		FOR i=1 TO mj                                && 循环,终值为借方个数
			@ i*1.2+0.4,66 GET skjf(i,4) SIZE 1,12 DEFA 0.00 FONT '宋体',11  && 编辑借方金额
		NEXT                                         && 下一个FOR循
		FOR i=1 TO m1                                && 循环
			@ 4.4+i*2.2,67 GET skdf(i,6) SIZE 1,12 FONT '宋体',11  && 编辑贷方金额
		NEXT                                         && 下一个FOR循
		READ                                         && 激活对象
		DO rk                                        && 键控过程,按Ctrl+End结束程序
		STORE 0 TO skjfzj                            && 收款借方总计变量清零
		FOR i=1 TO mj                                && 循环
			skjfzj=skjfzj+skjf(i,4)                  && 累加  
		NEXT                                         && 下一个FOR循
		STORE 0 TO skdfzj                            && 收款贷方总计变量清零
		FOR i=1 TO m1                                && 循环
			skdfzj=skdfzj+skdf(i,6)                  && 累加  
		NEXT                                         && 下一个FOR循环
		@ 20,54 GET skjfzj SIZE 1,12 DISABLE         && 显示收款借方总计,禁止编辑
		@ 20,67 GET skdfzj SIZE 1,12 DISABLE         && 显示收款贷方总计,禁止编辑
		READ                                         && 激活对象
		IF skjfzj=skdfzj                             && 如果借方总计等于贷方总计
			jehj_m=skjfzj                            && 记下金额合计
			kmmxgs=mj+m1                             && 记下借方和贷方科目和明细个数
			? '  正在登帐 请稍候 '                   && 显示信息
			STORE .T. TO jc                          && 逻辑变量为真,跳出DO循环
		ELSE                                         && 否则
			DEFI WINDOW jg FROM 6,80 TO 12,103  TITLE " 警告 " ;
			 ZOOM  MINIMIZE FLOAT DOUB CLOSE         && 定义窗口
			ACTI WINDOW jg                           && 激活窗口
			@ 1,1 GET jg DEFA '借贷不相等, 请纠正' COLOR r/w  && 出错信息
			FOR N=1 TO 1000                          && 循环
				?? CHR(7)                            && 笛声
			NEXT                                     && 下一个FOR循环
			READ                                     && 激活对象
			DEAC WINDOW jg                           && 挂起窗口
			STORE .F. TO jc
		ENDIF
	ENDDO                                            && 下一个DO循环,重新填写金额
	DEAC WINDOW skjzpz                               && 挂起收款记账凭证窗口

	FOR i=1 TO mj                                    && 循环,终值为收款借方科目和明细个数
		zza(i,1)=skjf(i,3)                           && 摘要
		zza(i,4)=skjf(i,1)                           && 科目名称
		zza(i,5)=skjf(i,2)                           && 明细名称
		zza(i,6)=skjf(i,4)                           && 借方金额
		zza(i,8)='借'                                && 借贷标识
		zza(i,9)=skjf(i,5)                           && 登张数据表名 
	NEXT                                             && 下一个FOR循环
	FOR i=1 TO m1                                    && 循环,终值为收款贷方科目和明细个数
		zza(i+mj,1)=skdf(i,1)                        && 摘要
		zza(i+mj,2)=skdf(i,2)                        && 结算方式
		zza(i+mj,3)=skdf(i,3)                        && 票号
		zza(i+mj,4)=skdf(i,4)                        && 科目名称
		zza(i+mj,5)=skdf(i,5)                        && 明细名称
		zza(i+mj,7)=skdf(i,6)                        && 贷方金额
		zza(i+mj,8)='贷'                             && 借贷标识
		zza(i+mj,9)=skdf(i,7)                        && 登张数据表名
	NEXT                                             && 下一个FOR循环
	kmmxgs=mj+m1                                     && 科目明细个数
ELSE                                             && 否则 收款贷方科目明细个数大于6
	FOR i=1 TO mj                                    && 循环,终值为收款借方科目和明细个数
		zza(i,1)=skjf(i,3)                           && 摘要
		zza(i,4)=skjf(i,1)                           && 科目名称
		zza(i,5)=skjf(i,2)                           && 明细名称
		zza(i,6)=skjf(i,4)                           && 借方金额
		zza(i,8)='借'                                && 借贷标识
		zza(i,9)=skjf(i,5)                           && 登张数据表名 
	NEXT                                             && 下一个FOR循环
	FOR i=1 TO m1                                    && 循环,终值为收款贷方科目和明细个数
		zza(i+mj,1)=skdf(i,1)                        && 摘要
		zza(i+mj,2)=skdf(i,2)                        && 结算方式
		zza(i+mj,3)=skdf(i,3)                        && 票号
		zza(i+mj,4)=skdf(i,4)                        && 科目名称
		zza(i+mj,5)=skdf(i,5)                        && 明细名称
		zza(i+mj,7)=skdf(i,6)                        && 贷方金额
		zza(i+mj,8)='贷'                             && 借贷标识
		zza(i+mj,9)=skdf(i,7)                        && 登张数据表名
	NEXT                                             && 下一个FOR循环
	DEFI WINDOW wbrow FROM 7,4 TO 27,106 CLOSE  && 定义浏览窗口
	ACTI WINDOW wbrow                           && 激活浏览窗口
	SET SAFE OFF                                && 关闭安全提示窗口
	USE 大被单表                                && 打开表
	ZAP                                         && 清除记录
	FOR i=1 TO 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 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 + -