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

📄 άi-

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
			ENDIF
		NEXT                                     && 下一个 FOR 循环
	ELSE                                         && 否则,是仅选中了科目
		m1=m1+1                                  && 个数累加器
		STORE zhuan(i) TO zza(m1,4)              && 记下科目名称
		STORE '贷' TO zza(m1,8)                  && 记下借贷标识
		SELECT  3                                && 激活工作区
		LOCATE FOR 会计科目名=zza(m1,4)          && 根据科目名称定位
		STORE  科目库名 TO zza(m1,9)             && 存入科目表名
	ENDIF
NEXT                                             && 下一个 FOR 循环

*  在转账记账凭证登录表单上显示借方和贷方科目及明细的名称
IF m1<7                            && 如果借方和贷方科目及明细的个数小于7
	FOR i=1 TO m1                                && 循环
		IF zza(i,8)='借'                         && 如果余额方向是借方
			@ 4+i*2.2,22 SAY zza(i,4) SIZE 1,10,1  && 显示科目名称
			@ 4+i*2.2,34 SAY zza(i,5) SIZE 1,10,1  && 显示明细名称
		ENDIF
		IF zza(i,8)='贷'                           && 如果余额方向是贷方
			@ 4+i*2.2,45 SAY zza(i,4) SIZE 1,10,1  && 显示科目名称
			@ 4+i*2.2,56 SAY zza(i,5) SIZE 1,10,1  && 显示明细名称
		ENDIF
	NEXT                                        && 下一个 FOR 循环   

&& 在转账记账凭证登录表单上填写摘要
	FOR i=1 TO m1                               && 循环
		IF USED('zk85')                              && 如果表已打开	
			SELECT zk85                              && 激活工作区
		ELSE                                         && 否则
			SELECT 3                                 && 激活工作区
    		USE 科目总控!zk85                        && 打开表‘zk85’(总控85,内含85个科目)
		ENDIF
		LOCATE FOR 会计科目名=zza(i,4)          && 根据科目名称定位
		@ 4+i*2.2,3 SAY '☆_'                   && 显示一个星,定位
		DEFI WINDOW zyw FROM 0,70 TO 26,103  TITLE ' '+zza(i,2)+" 摘要";
			ZOOM  MINIMIZE FLOAT DOUB           && 定义摘要窗口
		ACTI WINDOW zyw                         && 激活窗口
		STORE 1 TO h                            && 初始化变量
		@ 1,1 GET h DEFA 1  FUNC '&t' FROM zhai1    && 例List列表,各种摘要的内容
		READ                                    && 激活对象,双击摘要的内容
		DO rk                                   && 键控过程,按Ctrl+End结束程序
		STORE zhai1(h) TO zza(i,1)              && 记下摘要的内容
		DEAC WINDOW zyw                         && 挂起摘要窗口
		@ 4+i*2.2,3 GET zza(i,1) SIZE 1,16      && 再星处显示摘要内容
		READ                                    && 激活对象
		DO rk                                   && 键控过程,按Ctrl+End结束程序
		IF h>=2                                 && 如果摘要的内容次序是1之后 
			FOR  w=h TO 2 STEP -1               && 循环 步长为-1
				zhai1(w)=zhai1(w-1)             && 摘要的内容次序向后推移
			NEXT                                && 下一个 FOR 循环
		ENDIF
		zhai1(1)=zza(i,1)                       && 摘要第一个内容是刚选过的
		zhai1(20)='              '              && 第二十内容为空
		                                        && 空也是供选择的,选空允许会计随意填写
	NEXT                                        && 填写摘要的下一个FOR循环

* 在转账记账凭证登录表单上填写金额
	STORE .F. TO jc                             && 初始化逻辑变量
	STORE 0 TO jehj_m                           && 初始化变量,金额合计
	DO WHILE jc=.F.                             && DO循环
		FOR i=1 TO m1                           && FOR循环
			IF zza(i,8)='借'                    && 如果余额方向是借方
				@ i*2.2+4,67 GET zza(i,6) DEFA 0.00 SIZE 1,12,1  && 编辑借方金额
			ENDIF
			IF zza(i,8)='贷'                    && 如果余额方向是贷方
				@ i*2.2+4,67 GET zza(i,7) DEFA 0.00 SIZE 1,12,1  && 编辑贷方金额
			ENDIF
		NEXT                                    && 填写金额的下一个FOR循环
		READ                                    && 激活对象
		DO rk                                   && 键控过程,按Ctrl+End结束程序
		FOR i=1 TO 9                            && FOR循环
			zza(10,6)=zza(10,6)+zza(i,6)        && 对借方金额进行累加 
			zza(10,7)=zza(10,7)+zza(i,7)        && 对待方金额进行累加
		NEXT                                    && 下一个FOR循环
		@ 20,54 SAY zza(10,6) SIZE 1,12         && 显示借方累加和
		@ 20,67 SAY zza(10,7) SIZE 1,12         && 显示贷方累加和
		IF zza(10,6)=zza(10,7)                  && 如果借贷相等
			jehj_m=zza(10,6)                    && 记下金额合计
			STORE m1 TO kmmxgs                  && 记下科目明细个数  
			? '   正在登帐 请稍候   '           && 显示信息
			DO rk                               && 键控过程,按Ctrl+End结束程序
			STORE .T. TO jc                     && 逻辑变量为真,跳出DO循环
		ELSE                                    && 否则 是借贷不相等
			DEFI WINDOW jg FROM 2,77 TO 6,97  TITLE " 警告 "  ZOOM  MINIMIZE FLOAT DOUB
			ACTI WINDOW jg                      && 定义并激活窗口
			@ 0,1 GET jg DEFAULT '借贷不相等, 请纠正' ;
				COLOR RGB(255,0,0,255,255,255)  && 警告信息
			FOR N=1 TO 500                      
				? CHR(7)                        && 笛声
			NEXT
			READ                                && 激活对象
			DO rk                               && 键控过程,按Ctrl+End结束程序
			DEAC WINDOW jg                      && 挂起窗口
			STORE .F. TO jc                     && 逻辑变量为假,继续DO循环
			STORE 0 TO zza(10,6),zza(10,7)      && 借贷合计清零    
		ENDIF
	ENDDO                                       && 下一个DO循环
ELSE                                  && 否则,借方和贷方科目及明细的个数不小于7
	WAIT WIND '借方和贷方科目及明细的个数m1='+STR(m1,10)   && 等待信息窗口
	DEAC WINDOW zwjg                            && 挂起窗口
	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 + -