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

📄

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 2 页
字号:
*************************************************************
**                      添加新明细.PRG                     **
*************************************************************
STORE ' ' TO mxj,mxj1                                     && 初始化数组,下同
STORE 0 TO a                                    
STORE .T. TO tf                                           && 初始化逻辑变量
DO WHILE tf=.T.                                           && 循环
	IF USED('mx')=.F.                                     && 如果明细库名没有打开
		SELECT 4                                          && 激活工作区
		USE  &zka(h,4) ALIAS mx                           && 打开明细库名
	ELSE                                                  && 否则
		SELECT mx                                         && 选择明细工作区
	ENDIF
	STORE RECC() TO rec                                   && 纪录个数

	IF rec=1                   && 如果明细库名表中只有一个记录‘创建和添加新明细’
		IF zka(h,2)='固定资产'                      && 如果科目为固定资产
			STORE 'mx'+ALLTRIM(STR(VAL(RIGHT(zka(h,3),7))+1,7,0)) TO xxmkm && 新细目库名			
			STORE 'mj'+ALLTRIM(STR(VAL(RIGHT(zka(h,3),7))+1,7,0)) TO xyhjk && 新月合计库名
			CLEAR                                         && 清窗口 
			STORE ' ' TO xxmmc                            && 初始化变量
			@ 1,4 SAY '末页明细科目及库名:'+'  '+ALLTRIM(明细名称)+'  '+明细库名
			@ 3,4 SAY '新明细帐页细目名称:' GET xxmmc DEFA ' ' SIZE 1,40
			@ 4,4 SAY '新明细帐页细目库名:' GET xxmkm DEFA ' ' SIZE 1,12
			READ                                          && 激活编辑对象
			INSERT BLANK BEFO                     && 在‘创建和添加新明细’之前插入空记录
			REPLACE 明细名称 WITH xxmmc,明细库名  WITH xxmkm  && 替换字段,下同
			STORE xxmmc TO mxj1(rec)                      && 赋值,下同
			STORE xxmkm TO mxj(rec,2)
			BROW                                          && 浏览
			IF USED('mx')                                 && 如果文件打开
				SELECT mx                                 && 激活该工作区
			ELSE                                          && 否则
				SELECT 0                                  && 激活工作区
				USE &zka(h,4) ALIAS mx                    && 打开名细库名文件
			ENDIF
* 固定资产明细通项
			DEFI WINDOW jg FROM 4,1 TO 16,100 TITLE '请输入固定资产明细通项数据   ';
		    	+'警告:必须输入原值、使用年限和残值,否则将无法进行累计折旧!' ;
				CLOSE ZOOM MINI FLOAT                     && 定义窗口
			ACTI WINDOW jg                                && 激活窗口
			CHANGE IN jg FIELDS 明细名称,编号,规格,型号,;
					原值:v=原值>0:F:e='原值必须大于零',;
				使用年限:v=使用年限>0:F:e='使用年限必须大于零',;
				残值:v=cf():F,月折旧额:v=F():F            && 编辑字段,F强制校验
			a(rec)=1                                      && 相当于这个纪录被选中
			DEAC WINDOW jg                                && 挂起窗口
		ELSE                                 && 否则 (非固定资产的其他科目的明细)
          IF zka(h,2)='长期待摊费用'
			DO CASE                                       && 根据情况判断处理
				CASE rec>1                                && 当记录个数大于1				
					GOTO rec-1                            && 指针指向末记录的前一个记录
					STORE 明细库名 TO xmkm1               && 字段值赋给变量,下同
					STORE 月合计库 TO yhjk1
				CASE rec<=1                               && 当记录个数小于等于
					STORE 'mx'+RIGHT(zka(h,3),7) TO xmkm1 && 把科目库名km转换为明细表名mx
					STORE 'mj'+RIGHT(zka(h,3),7) TO yhjk1 && km变mj
			ENDCASE
			STORE LEFT(xmkm1,2)+ALLTRIM(STR(VAL(RIGHT(xmkm1,7))+1,7,0)) TO xxmkm
			                                && 明细表名顺序号加1,成为新明细表名 
			STORE LEFT(yhjk1,2)+ALLTRIM(STR(VAL(RIGHT(yhjk1,7))+1,7,0)) TO xyhjk
			                                && 月合计表名顺序号加1,成为新月合计表名
			DEFI WINDOW xmx FROM 4,20 TO 15,90 TITLE ' 新明细添加 ' DOUBLE CLOSE
			ACTI WINDOW xmx                               && 定义并激活窗口
			CLEAR                                         && 清窗口
			STORE ' ' TO xxmmc                            && 初始化变量
			@ 1,4 SAY '末页明细科目及库名:'+'  '+ALLTRIM(明细名称)+'  '+明细库名
			@ 3,4 SAY '新明细帐页细目名称:' GET xxmmc DEFA ' ' SIZE 1,40
			@ 4,4 SAY '新明细帐页细目库名:' GET xxmkm DEFA ' ' SIZE 1,12 DISA
			READ                                          && 激活对象
			INSERT BLANK                                  && 插入空记录
			REPLACE 明细名称 WITH xxmmc,明细库名 WITH xxmkm,月合计库 WITH xyhjk && 替换字段
			STORE xxmmc TO mxj1(rec)                      && 给数组变量赋值,下同
			STORE xxmkm TO mxj(rec,2)
			DEFI WINDOW jg FROM 4,1 TO 16,100 TITLE ;
				'请输入长期待摊费用明细通项数据   警告:必须输入原值,'+;
				'否则将无法进行累计折旧!' 	CLOSE ZOOM MINI FLOAT  && 定义窗口
			ACTI WINDOW jg                                && 激活窗口
			BROW                                          && 浏览
			USE &xmkm1                                    && 打开名细表名
			COPY STRU TO &xxmkm                           && 赋值表结构,下同
			COPY STRU TO &xyhjk
			USE &xxmkm                                    && 打开新名细表
			APPEND BLANK                                  && 追加空记录
			REPLACE 日期  WITH GOMONTH(the_end,-1)  && 用上月记帐末日替换字段
			REPLACE 摘要 WITH '新建明细'                  && 替换字段
			USE &xyhjk                                    && 打开月合计表
			APPEND BLANK                                  && 追加空记录 
			REPLACE 日期  WITH GOMONTH(the_end,-1)  && 用上月记帐末日替换字段
			REPLACE 摘要 WITH '新建明细'                  && 替换字段
			USE                                           && 关闭表
			a(rec)=1                                     && 相当于这个纪录被选中
			DEAC WINDOW jg          
          ELSE                    && 否则 (非固定资产和长期待摊费用的其他科目的明细)
			STORE 'mx'+ALLTRIM(STR(VAL(RIGHT(zka(h,3),7))+1,7,0)) TO xxmkm  && 新细目表名
			STORE 'mj'+ALLTRIM(STR(VAL(RIGHT(zka(h,3),7))+1,7,0)) TO xyhjk  && 新月合计表名
			CLEAR                                         && 清窗口 
			STORE ' ' TO xxmmc                            && 初始化变量
			@ 1,4 SAY '末页明细科目及库名:'+'  '+ALLTRIM(明细名称)+'  '+明细库名
			@ 3,4 SAY '新明细帐页细目名称:' GET xxmmc DEFA ' ' SIZE 1,40
			@ 4,4 SAY '新明细帐页细目库名:' GET xxmkm DEFA ' ' SIZE 1,12 DISA
			READ                                          && 记过对象,编辑变量
			INSERT BLANK BEFO               && 在‘创建和添加新明细’之前插入空记录
			REPLACE 明细名称 WITH xxmmc,明细库名  WITH xxmkm,月合计库 WITH xyhjk && 替换字段
			a(rec)=1                                     && 相当于这个纪录被选中
			STORE xxmmc TO mxj1(rec)                      && 赋值,下同
			STORE xxmkm TO mxj(rec,2)
			BROW                                          && 浏览
			SELECT &zka(h,3)                              && 选择科目库名工作区
			COPY STRU TO &xxmkm                           && 复制新细目表名表结构
			USE &xxmkm                                    && 打开新细目表
			APPEND BLANK                                  && 追加空记录
			REPLACE 日期 WITH GOMONTH(the_end,-1)         && 用上月记帐末日替换字段,下同
			REPLACE 摘要 WITH '结转'			          
			COPY STRU TO &xyhjk                           && 复制新月合计表结构
			USE &xyhjk                                    && 打开新月合计表
			APPEND BLANK                                  && 追加空记录
			REPLACE 日期 WITH GOMONTH(the_end,-1)         && 用上月记帐末日替换字段,下同
			REPLACE 摘要 WITH '结转'
			USE                                           && 关闭表
		  ENDIF	
		ENDIF
		STORE .F. TO tf                                   && 初始化逻辑变量
		CLEAR                                             && 清窗口
		@ 2,20 SAY '继续添加新明细吗? '                   && 显示文本 
		@ 5,15 GET t1 DEFA 1 FUNC '*ht 添加 ; 取消' SIZE 2,4,30  && 命令按钮
		READ                                              && 激活对象
		CLEAR                                             && 清窗口
		IF t1=1                                           && 如果选择了添加
			tf=.T.                                        && 赋值
			rec=rec+1                                     && 记录个数加一
			SELECT mx                                     && 激活工作区
		ELSE                                              && 否则
			DEAC WINDOW xmx                               && 挂起窗口
			EXIT                                          && 跳出DO循环
		ENDIF
	ELSE                                    && 否则(说明明细库名表中已有多个记录)
      DO CASE   
		CASE zka(h,2)='固定资产'                   && 如果科目为固定资产
			GOTO rec-1                                    && 移动记录指针
			STORE 明细库名 TO xmkm1                       && 记下明细表名
			STORE LEFT(明细库名,2)+ALLTRIM(STR(VAL(RIGHT(明细库名,7))+1,7,0)) TO xxmkm
														  && 新细目表明
			DEFI WINDOW xmx FROM 4,20 TO 15,90 TITLE ' 新明细添加 ' DOUBLE CLOSE
			ACTI WINDOW xmx                               && 定义并激活窗口
			CLEAR                                         && 清窗口
			STORE ' ' TO xxmmc                            && 出事换变量
			@ 1,4 SAY '末页明细科目及库名:'+'  '+ALLTRIM(明细名称)+'  '+明细库名
			@ 3,4 SAY '新明细帐页细目名称:' GET xxmmc DEFA ' ' SIZE 1,40

⌨️ 快捷键说明

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