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

📄 +

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 2 页
字号:
********************************************************
**          栏目填写子程序  栏目填写.PRG              **
**          调用程序      记账主程序.PRG              **
********************************************************

FOR i=1 TO kmmxgs                                       && 循环 终值为科目和明细个数
	IF ALLTRIM(zza(i,4))='库存商品'                       && 如果科目是库存商品
		DEFI WINDOW ccp TITLE ' '+zza(i,4)+' '+zza(i,5)+'    输入数量和型号 ';
			FROM 1,10 TO 26,70  CLOSE                   && 定义窗口
		ACTI WINDOW ccp                                 && 激活窗口
		STORE 0 TO ccpshuliang(i)                       && 初始化数量数组元素
*		STORE 0.00 TO ccpdj(i)                          && 初始化单价数组元素
		@ 2,10 SAY '请输入'+zza(i,5)+'数量' GET ccpshuliang(i) SIZE 1,4 && 编辑数量
		STORE ' ' TO ccpxh(i)                           && 初始化型号数组元素
		@ 6,10 SAY '请输入'+zza(i,5)+'产品型号' GET ccpxh(i) SIZE 1,10  DISABLE
		@ 20,40 GET kk DEFA 1 FUNC'*th 确认;取销' SIZE 2,4,4  && 命令按钮
		READ CYCLE                                      && 激活对象 
		IF kk=2                                         && 如果选择了取消
			CLEAR ALL                                   && 释放变量、窗口,关闭表
			CANCEL                                      && 终止程序的执行
		ENDIF
		DEFI WINDOW zyw FROM 0,70 TO 26,103  TITLE ' 产品型号 ';
		  ZOOM  MINIMIZE FLOAT DOUB                     && 定义窗口
		ACTI WINDOW zyw                                 && 激活窗口
		STORE 1 TO h                                    && 初始化变量
		@ 1,1 GET h DEFA 1  FUNC '&t' FROM cpxh         && 产品型号List列表   
		READ                                            && 激活对象,选择型号
		DEAC WINDOW zyw                                 && 挂起窗口
		ccpxh(i)=cpxh(h)                                && 型号自动赋值
		@ 6,10 SAY '请输入'+zza(i,5)+'产品型号' GET ccpxh(i) SIZE 1,10 && 编辑型号
		@ 20,1 CLEAR TO 21,60                           && 清除部分区域(清除上一个命令按钮)
		@ 20,40 GET kk DEFA 1 FUNC'*th 确认;取销' SIZE 2,4,4  && 命令按钮
		READ CYCLE                                      && 激活对象
		IF kk=2                                         && 如果选择了取消
			CLEAR ALL                                   && 释放变量、窗口,关闭表
			CANCEL                                      && 终止程序的执行
		ENDIF
		DEAC WINDOW ccp                                 && 挂起窗口
	ENDIF                                               && 库存商品栏目编辑结束

 	IF ALLTRIM(zza(i,4))='生产成本'.OR.ALLTRIM(zza(i,4))='财务费用'.OR.;
 		ALLTRIM(zza(i,4))='制造费用'.OR.ALLTRIM(zza(i,4))='管理费用'.OR.;
 		ALLTRIM(zza(i,4))='应付福利费'                  && 如果科目是这五个  
		IF zza(i,6)<>0                                  && 如果借方的值不等于零
			DEFI WINDOW sccb TITLE ' '+zza(i,4)+zza(i,5)+'栏目选摘 ';
				FROM 0,10 TO 26,70 CLOSE                && 定义窗口
			ACTI WINDOW sccb                            && 激活窗口
			CLEAR                                       && 清窗口
			IF USED('kmhmx')=.T.                        && 如果打开了科目或明细表
				SELECT kmhmx                            && 激活工作区
				USE &zza(i,9)                           && 打开表
			ELSE                                        && 否则
				SELECT 0                                && 激活工作区
				USE &zza(i,9) ALIAS kmhmx               && 打开表
			ENDIF
			FOR j=4 TO 30                               && 循环,查找借方字段
				IF ALLTRIM(FIELD(j))='借方'             && 如果找到借方
					cbfyend(i)=j-4                      && 记下(成本费用)借方与摘要相隔的字段数(栏目数)
					EXIT                                && 出口,不再查找
				ENDIF
				cbfyfield(i,j-3)=FIELD(j)              
				 && 记下(成本费用)某科目或明细的摘要与借方之间的各个字段名(不包括摘要和借方本身) 
			NEXT                                        && 下一个FOR循环
			FOR j=1 TO cbfyend(i)                       && 循环,终值为(成本费用)借方与摘要相隔的字段数(栏目数)
				cbfyxh(i,j)=0                           && 初始化(成本费用)摘要与借方之间的各个字段(栏目)的序号
			NEXT                                        && 下一个FOR循环
			FOR j=1 TO cbfyend(i)                       && 循环,终值为(成本费用)借方与摘要相隔的字段数(栏目数)
				@ j,5 GET cbfyxh(i,j) FUNC '*c '+cbfyfield(i,j) && 列出(成本费用)字段名复选框,供复选
			NEXT                                        && 下一个FOR循环
			@ 20,40 GET kk DEFA 1 FUNC'*th 确认;取销' SIZE 2,4,4   && 命令按钮
			READ CYCLE                                  && 激活对象
			IF kk=2                                     && 如果选择了取消
				CLEAR ALL                               && 释放变量、窗口,关闭表
				CANCEL                                  && 终止程序的执行
			ENDIF
			FOR j=1 TO 30                               && 循环
				cbfyfieldje(i,j)=0.00                   && 初始化(成本费用)摘要与借方之间的各个字段(栏目)的值
			NEXT                                        && 下一个FOR循环
			DO WHILE .T.                                && 循环
				ACTI WINDOW sccb                        && 激活窗口
				CLEAR                                   && 清窗口
				FOR j=1 TO cbfyend(i)                   && 循环,,终值为(成本费用)借方与摘要相隔的字段数(栏目数)
					IF cbfyxh(i,j)=1                    && 如果(成本费用)摘要与借方之间某各个字段(栏目)的序号等于1
						@ j,5 SAY cbfyfield(i,j) GET cbfyfieldje(i,j)  && 编辑摘要与借方之间的各个字段(栏目)的金额
					ELSE                                && 否则
						@ j,5 SAY cbfyfield(i,j) GET cbfyfieldje(i,j) DISA  && 禁止编辑
					ENDIF 
				NEXT                                    && 下一个FOR循环
				@ 20,40 GET kk DEFA 1 FUNC'*th 确认;取销' SIZE 2,4,4  && 命令按钮
				READ CYCLE                              && 激活对象
				IF kk=2                                 && 如果选择了取消
					CLEAR ALL                           && 释放变量、窗口,关闭表
					CANCEL                              && 终止程序的执行
				ENDIF
				STORE 0 TO cbfyhj                       && 初始化(成本费用)合计变量  
				FOR j=1 TO cbfyend(i)                   && 循环,终值为(成本费用)借方与摘要相隔的字段数(栏目数)
					cbfyhj=cbfyhj+cbfyfieldje(i,j)      && (成本费用)合计
				NEXT                                    && 下一个FOR循环
				IF cbfyhj<>zza(i,6)                     && 如果(成本费用)合计与借方金额不等
					FOR k=1 TO 1000                     && 循环                       
						?? CHR(7)                       && 笛声
					NEXT                                && 下一个FOR循环
					@ 0,10 SAY '金额合计不等' COLOR r+/w   && 显示信息
				ELSE                                    && 否则
					EXIT                                && 出口
				ENDIF
			ENDDO                                       && 下一个DO循环
			DEAC WINDOW sccb                            && 挂起窗口
		ENDIF
	ENDIF
	USE                                                 && 关闭表

	IF ALLTRIM(zza(i,4))='主营业务收入'                 && 如果科目是主营业务收入
		IF zza(i,7)<>0                                  && 如果贷方的值不等于零
			DEFI WINDOW sccb TITLE ' '+zza(i,4)+zza(i,5)+'栏目选摘 ';
				FROM 0,20 TO 26,100 CLOSE                && 定义窗口
			ACTI WINDOW sccb                            && 激活窗口
			CLEAR                                       && 清窗口
			IF USED('kmhmx')=.T.                        && 如果打开了科目或明细表
				SELECT kmhmx                            && 激活工作区
				USE &zza(i,9)                           && 打开表
			ELSE                                        && 否则
				SELECT 0                                && 激活工作区
				USE &zza(i,9) ALIAS kmhmx               && 打开表
			ENDIF
			FOR j=4 TO 30                               && 循环,查找借方字段
				IF ALLTRIM(FIELD(j))='借方'             && 如果找到借方
					cbfyend(i)=j-4                      && 记下借方与摘要相隔的字段数(栏目数)
					EXIT                                && 出口,不再查找
				ENDIF
				cbfyfield(i,j-3)=FIELD(j)              
				 && 记下明细的摘要与借方之间的各个字段名(不包括摘要和借方本身) 
			NEXT                                        && 下一个FOR循环
			FOR j=1 TO cbfyend(i)                       && 循环,终值为借方与摘要相隔的字段数(栏目数)
				cbfyxh(i,j)=0                           && 初始化摘要与借方之间的各个字段(栏目)的序号
			NEXT                                        && 下一个FOR循环
			FOR j=1 TO cbfyend(i)                       && 循环,终值为借方与摘要相隔的字段数(栏目数)
				@ j,5 GET cbfyxh(i,j) FUNC '*c '+cbfyfield(i,j) && 列出字段名复选框,供复选
			NEXT                                        && 下一个FOR循环
			@ 20,40 GET kk DEFA 1 FUNC'*th 确认;取销' SIZE 2,4,4   && 命令按钮
			READ CYCLE                                  && 激活对象
			IF kk=2                                     && 如果选择了取消
				CLEAR ALL                               && 释放变量、窗口,关闭表
				CANCEL                                  && 终止程序的执行
			ENDIF
			FOR j=1 TO 30                               && 循环
				cbfyfieldje(i,j)=0                   && 初始化摘要与借方之间的各个字段(栏目)的值
			NEXT                                        && 下一个FOR循环
			DO WHILE .T.                                && 循环
				DEFI WINDOW sccb TITLE ' '+zza(i,4)+zza(i,5)+'填写数量 ';
					FROM 0,20 TO 26,100 CLOSE                && 定义窗口
				ACTI WINDOW sccb                        && 激活窗口
				CLEAR                                   && 清窗口
				FOR j=1 TO cbfyend(i)                   && 循环,终值为借方与摘要相隔的字段数(栏目数)
					IF cbfyxh(i,j)=1                    && 如果摘要与借方之间的某个字段(栏目)的序号等于1,意味着复选时选中
						@ j,5 SAY cbfyfield(i,j) GET cbfyfieldje(i,j)  && 编辑摘要与借方之间的各个字段(栏目)的数量
					ELSE                                && 否则
						@ j,5 SAY cbfyfield(i,j) GET cbfyfieldje(i,j) DISA  && 禁止编辑

⌨️ 快捷键说明

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