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

📄 άi-

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
*************************************************************
*      转帐凭证登录子程序        转帐凭证登录.PRG            *
*                调用程序    记账主程序.PRG                  *
*************************************************************
DO FORM 转账记账凭证.scx                         && 执行转账记账凭证登录表单
STORE '转帐' TO pingzlb                          && 凭证类别
STORE {  .  .  } TO riqi                         && 初始化日期为空
@ 0.2,67 GET riqi SIZE 1,10 RANGE BEGIN,the_end ;
	VALID riqi<>{  .  .  } ERROR '日期不可空'    && 编辑日期
@ 1.7,67 GET bianhao SIZE 1,5 DEFAULT 0 ;
	VALID bianhao<>0 ERROR '编号不可为零'        && 编辑编号
@ 19.6,13 GET fudanjzs SIZE 1,3 DEFAULT 0        && 编辑附单据张数
@ 22.2,68 GET jizhang SIZE 1,10 DEFAULT "" DISABLE  && 记账禁止编辑
READ                                             && 激活对象
DO rk                                            && 键控过程,按Ctrl+End结束程序
DIME zhuan(6),hh(6)                              && 定维转帐凭证数组
STORE ' ' TO zhuan                               && 初始化数组
STORE 0 TO hh
FOR i=1 TO 100                                   && 循环
	STORE '              ' TO zza(i,1)           && 摘要
	STORE '  '   TO zza(i,2)                     && 结算方式
	STORE '  '   TO zza(i,3)                     && 票号
	STORE '  '   TO zza(i,4)                     && 总帐科目
	STORE '  '   TO zza(i,5)                     && 明细科目
	STORE 0.00   TO zza(i,6)                     && 借方
	STORE 0.00   TO zza(i,7)                     && 贷方
	STORE '  '   TO zza(i,8)                     && 借贷标识
	STORE '  '   TO zza(i,9)                     && 登帐数据库名
	STORE '转帐' TO zza(i,10)                    && 凭证种类
NEXT                                             && 下一个 FOR 循环

* 处理借方科目
ACTI WINDOW zwj                                  && 激活转账借方窗口,复选科目
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 zwj                                  && 挂起转账借方复选科目窗口

STORE 0 TO m,m1                                  && 初始化变量                  
FOR i=1 TO 85                                    && 循环
	IF a(i)=1                                    && 如果复选科目时选中
		m=m+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)               && 定位会计科目名
	IF 选用与否='选用明细'                       && 如果 选用与否='选用明细'
		STORE 明细库名 TO mx                     && 赋值
		SELECT 4                                 && 激活工作区
		USE &mx ALIAS mx                         && 打开联系表
		PUBLIC mxj(300,2),mxj1(300),a(300)      && 定维数组
		COPY TO ARRAY mxj                        && 复制到数组
		STORE 0 TO rec                           && 初始化变量
		rec=RECC()                               && 记下记录个数
		IF zhuan(i)='固定资产'             && 如果 会计科目名='固定资产'
			FOR kk=1 TO rec                      && 循环
				STORE mxj(kk,1) TO mxj1(kk)      && 赋值给一维数组
			NEXT                                 && 下一个 FOR 循环
		ELSE                                     && 否则
			FOR kk=1 TO rec                      && 循环
				STORE ALLTRIM(mxj(kk,1)) TO mxj1(kk)  && 赋值给一维数组
			NEXT                                 && 下一个 FOR 循环
		ENDIF
		IF rec<=21                               && 如果记录个数小于等于21
        	DEFI WINDOW zwjmx1 FROM 0,0 TO 26,36  TITLE ' '+zhuan(i)+" 借方明细 " ;
        		ZOOM  MINIMIZE FLOAT DOUB  CLOSE && 定义窗口
			ACTI WINDOW zwjmx1                   && 激活窗口
			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 zwjmx1                   && 挂起窗口
		ELSE                                     && 否则
			DEFI WINDOW zwjmx1 FROM 0,0 TO 26,67  TITLE ' '+zza(i,3)+" 借方明细 ";
				ZOOM  MINIMIZE FLOAT DOUB CLOSE  && 定义窗口
			ACTI WINDOW zwjmx1                   && 激活窗口
			STORE 0 TO a                         && 初始化数组
			IF zhuan(i)='固定资产'         && 如果 会计科目名='固定资产'
				STORE 1 TO hekh000s              && 初始化变量
				DEAC WINDOW zwjmx1               && 挂起窗口
				DEFI WINDOW swjmx FROM 0,0 TO 28,300 TITLE ' 借方科目:'+zhuan(i)+;
				 ' 左右拖动此线 ───── 选择明细'+' ────────── '+;
				 '移动此线 ────────────────     移动此线 ─── ';
				 FLOAT CLOSE DOUB                && 定义浮动窗口
				ACTI WINDOW swjmx                && 激活窗口
				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 swjmx                && 挂起窗口
			ELSE                                 && 否则
				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,26 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                        
					CASE REC<=80                    && 否则 明细个数大于42
						DEAC WINDOW zwjmx1           && 挂起窗口
						DEFI WINDOW swjmx FROM 0,0 TO 28,300 TITLE ' 借方科目:'+;
				 		 zhuan(i)+' 左右拖动此线 ───── 选择明细 ─────────'+;
						 ' 移动此线 ────────────────    移动此线 ─── ';
						 FLOAT CLOSE DOUB            && 定义浮动窗口
						ACTI WINDOW swjmx            && 激活窗口
						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 swjmx            && 挂起窗口
					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    && 冲零 

⌨️ 快捷键说明

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