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

📄 άi-

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
						ENDFOR                       && 下一个FOR循环
						GOTO TOP                     && 指针指向文件顶
						DO 浏览复选框                && 运行校验框子程序
						FOR kk=1 TO rec              && 循环
							GOTO KK                  && 移动指针
							STORE 校验框 TO a(kk)    && 字段值(1或0)赋给数组元素
						NEXT	 	                 && 下一个FOR循环
			 	ENDCASE 		      
			ENDIF
			DEAC WINDOW zwjmx1                   && 挂起窗口
		ENDIF

		IF a(rec)=1                              && 如果选了末记录:添加新明细
		    h=hh(i)                              && 选中科目的记录号1-85
			DO 添加新明细                        && 运行子程序
		ENDIF

		FOR kk=1 TO rec                          && 循环
			IF a(kk)=1                           && 如果明细被选中
				m1=m1+1                          && 个数累加器 
				STORE zhuan(i) TO zza(m1,4)      && 记下科目名称
				STORE mxj1(kk) TO zza(m1,5)      && 记下明细名称
				STORE '借' TO zza(m1,8)          && 借贷标识
				STORE mxj(kk,2) TO zza(m1,9)     && 记下明细表名
			ENDIF
		NEXT                                     && 下一个 FOR 循环
	ELSE                                         && 否则,是仅选中了科目
		m1=m1+1                                  && 个数累加器
		STORE zhuan(i) TO zza(m1,4)              && 记下科目名称
		STORE '借' TO zza(m1,8)                  && 借贷标识
		SELECT zk85                              && 激活工作区
		LOCATE FOR 会计科目名=zza(m1,4)          && 根据科目名称定位
		STORE 科目库名 TO zza(m1,9)              && 记下科目表名
	ENDIF
NEXT                                             && 下一个 FOR 循环

* 处理贷方科目
ACTI WINDOW zwd                                  && 激活转账凭证贷方科目窗口
STORE 0 TO a                                     && 数组清零
FOR i=1 TO 23                                    && 循环
	IF b(i,5)='暂不使用'                         && 如果选用与否为暂不使用
		@ i-1,0 GET a(i) FUNC "*C "+b1(i) DISA   && 列出复选框,禁止选用
	ELSE                                         && 否则
		@ i-1,0 GET a(i) FUNC "*C "+b1(i)        && 列出复选框
	ENDIF
NEXT                                             && 下一个 FOR 循环
FOR i=24 TO 46                                   && 循环
	IF b(i,5)='暂不使用'                         && 如果选用与否为暂不使用
		@ i-24,22 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
	ELSE                                         && 否则
		@ i-24,22 GET a(i) FUNC "*C "+b1(i)      && 列出复选框
	ENDIF
NEXT                                             && 下一个 FOR 循环
FOR i=47 TO 67                                   && 循环
	IF b(i,5)='暂不使用'                         && 如果选用与否为暂不使用
		@ i-47,44 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
	ELSE                                         && 否则
		@ i-47,44 GET a(i) FUNC "*C "+b1(i)      && 列出复选框
	ENDIF
NEXT       
FOR i=68 TO 85                                   && 循环
	IF b(i,5)='暂不使用'                         && 如果选用与否为暂不使用
		@ i-68,66 GET a(i) FUNC "*C "+b1(i) DISA && 列出复选框,禁止选用
	ELSE                                         && 否则
		@ i-68,66 GET a(i) FUNC "*C "+b1(i)      && 列出复选框
	ENDIF
NEXT                                       && 下一个 FOR 循环
@ 21,55 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,6,4     && 命令按钮
READ CYCLE                                       && 激活对象
DO rk                                            && 键控过程,按Ctrl+End结束程序
IF kk=2                                          && 如果选择了取消
	CLEAR ALL                                    && 释放变量、窗口,关闭表
	CANCEL                                       && 终止程序的执行
ENDIF
DEAC WINDOW zwd                                  && 挂起转账贷方复选科目窗口

STORE 0 TO m                                     && 初始化变量
FOR i=1 TO 85                                    && 循环
	IF a(i)=1                                    && 如果是选中科目
		m=m+1                                    && 个数累加1
		zhuan(m)=b1(i)                           && 转账科目名称
		hh(m)=i                                  && 记下选中科目的记录号1-85
	ENDIF
NEXT                                             && 下一个 FOR 循环

* 处理贷方明细
FOR i=1 TO m                                     && 循环
	IF USED('zk85')                              && 如果表已打开	
		SELECT zk85                              && 激活工作区
	ELSE                                         && 否则
		SELECT 3                                 && 激活工作区
    	USE 科目总控!zk85                        && 打开表‘zk85’(总控85,内含85个科目)
	ENDIF
	LOCATE FOR 会计科目名=zhuan(i)               && 按科目名称定位
	STORE 明细库名 TO mx                         && 记下名细表名
	IF 选用与否='选用明细'                       && 如果 选用与否='选用明细'
		SELECT 4                                 && 激活工作区
		USE &mx ALIAS mx                         && 打开名细库联系表
		COPY TO ARRAY mxj                        && 复制到数组
		rec=RECC()                               && 记下记录个数
		FOR kk=1 TO rec                          && 循环
			STORE ALLTRIM(mxj(kk,1)) TO mxj1(kk) && 明细名称存入一维数组
		NEXT                                     && 下一个 FOR 循环
		IF rec<=21                               && 如果记录个数小于等于21
			DEFI WINDOW zwdmx1 FROM 1,60 TO 27,95  TITLE ' '+zhuan(i)+" 贷方明细 " ;
			 ZOOM  MINIMIZE FLOAT DOUB           && 定位窗口
			ACTI WINDOW zwdmx1                   && 激活窗口
			STORE 0 TO a                         && 给数组清零
			FOR kk=1 TO rec                      && 循环
				@ kk-1,0 GET a(kk) FUNC "*c "+ mxj1(kk)  && 排布名细名称复选框
			NEXT                                 && 下一个 FOR 循环    
			@ 22,5 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4  && 命令按钮
			READ CYCLE                           && 激活对象
			DO rk                                && 键控过程,按Ctrl+End结束程序
			IF kk=2                              && 如果选择了取消
				CLEAR ALL                        && 释放变量、窗口,关闭表
				CANCEL                           && 终止程序的执行
			ENDIF
			DEAC WINDOW zwdmx1                   && 挂起窗口
		ELSE                                     && 否则 是记录个数大于21
			DEFI WINDOW zwdmx1 FROM 0,26 TO 26,113  TITLE zhuan(i)+" 贷方明细 ";
			  ZOOM  MINIMIZE FLOAT DOUB  CLOSE   && 定义窗口
			ACTI WINDOW zwdmx1                   && 激活窗口
			STORE 0 TO a                         && 给数组清零
			DO CASE
				CASE rec<=42                         && 当明细个数小于42
					FOR kk=1 TO 21                   && 循环
						@ kk-1,0 GET a(kk) FUNC "*c "+ mxj1(kk)   && 排布名细名称复选框
					NEXT                             && 下一个 FOR 循环
					FOR kk=22 TO rec                 && 循环
						@ kk-22,28 GET a(kk) FUNC "*c "+ mxj1(kk) && 排布名细名称复选框
					NEXT                             && 下一个 FOR 循环
					@ 22,5 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4  && 命令按钮
					READ CYCLE                       && 激活对象
					DO rk                            && 键控过程,按Ctrl+End结束程序
					IF kk=2                          && 如果选择了取消
						CLEAR ALL                    && 释放变量、窗口,关闭表
						CANCEL                       && 终止程序的执行
					ENDIF
					DEAC WINDOW zwdmx1               && 挂起窗口
				CASE rec<=80                         && 当记录个数小于等于80
					DEFI WINDOW zwdmx1 FROM 0,0 TO 28,300 FLOAT  CLOSE;
						TITLE ' 贷方科目:'+zhuan(i)+' 左右拖动此线 ───── 选择明细'+;
						' ────────── 移动此线 ────────────────'+;
						'    移动此线 ─── '       && 定义浮动窗口
					ACTI WINDOW zwdmx1               && 激活窗口
					STORE 0 TO a                     && 给数组清零
					FOR kk=1 TO rec                  && 循环
						@ kk%22,INT(kk/22)*30 GET a(kk) FUNC '*c '+mxj1(kk)  && 排布名细名称复选框
					NEXT                             && 下一个 FOR 循环
					@ 23,80 GET kk DEFA 1 FUNC '*th 确认;取消' SIZE 2,4,4  && 命令按钮
					READ CYCLE                       && 激活对象 
					DO rk                            && 键控过程,按Ctrl+End结束程序
					IF kk=2                          && 如果选择了取消
						CLEAR ALL                    && 释放变量、窗口,关闭表
						CANCEL                       && 终止程序的执行
					ENDIF
					DEAC WINDOW zwdmx1               && 挂起窗口
				OTHERWISE                        && 其他(当明细个数大于80)
					IF USED('明细复选框表')        && 如果校验框表已经打开
					   SELECT 明细复选框表         && 激活校验框表工作区
					ELSE                         && 否则
						SELECT 0                 && 激活工作区
				   		USE 明细复选框表         && 打开校验框表文件
					ENDIF                        && 
					SET SAFETY OFF               && 关闭安全提示窗口
					ZAP                          && 清除全部记录
					SET SAFETY ON                && 打开安全提示窗口
					FOR kk=1 TO rec              && 循环
					 	APPEND BLANK             && 追加空记录
				 		REPLACE 明细名称 WITH MXJ1(KK)  && 替换字段
				 		REPLACE 校验框 WITH 0    && 冲零 
					ENDFOR                       && 下一个FOR循环
					GOTO TOP                     && 指针指向文件顶
					DO 浏览复选框                && 运行校验框子程序
					FOR kk=1 TO rec              && 循环
						GOTO KK                  && 移动指针
						STORE 校验框 TO a(kk)    && 字段值(1或0)赋给数组元素
					NEXT	 	                 && 下一个FOR循环
					DEAC WINDOW zwdmx1                   && 挂起窗口
			ENDCASE 		      
		ENDIF
*		ENDIF

		IF a(rec)=1                              && 选择了末记录 添加新明细
		    h=hh(i)                              && 选中科目的记录号1-85
		    DO 添加新明细                        && 运行子程序
		ENDIF

		FOR kk=1 TO rec                          && 循环
			IF a(kk)=1                           && 如果明细被选中
				m1=m1+1                          && 个数累加器
				STORE mxj1(kk) TO zza(m1,5)      && 记下明细名称
				STORE zhuan(i) TO zza(m1,4)      && 记下科目名称
				STORE '贷' TO zza(m1,8)          && 记下借贷标识
				STORE mxj(kk,2) TO zza(m1,9)     && 记下明细表名

⌨️ 快捷键说明

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