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

📄 +

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 2 页
字号:
**************************************************************
*     固定资产累计折旧程序         累计折旧.PRG              *
**************************************************************
SET TALK OFF                                                 && 阻止对话结果传送到窗口
SET CENTURY ON                                               && 指定用四位数表示年 
SET DATE ANSI                                                && 日期格式yy.mm.dd
SET DEVI TO SCREEN                                           && 将@ … say输出定向到屏幕 
SET PRINT OFF                                                && 不允许输出结果发送到打印机
CLEAR                                                        && 清屏幕
CLOSE DATA ALL                                               && 关闭数据库
DEFI WINDOW ljzj FROM 5,20 TO 15,60 TITLE ' 固定资产累计折旧 ' CLOSE && 定义窗口	
ACTI WINDOW ljzj                                             && 激活窗口
@ 1,5 SAY '是否逐项进行固定资产累计折旧?' COLOR RGB(255,0,0) && 输出信息,前景红色
@ 3,4 GET h DEFA 1 FUNC '*ht 取消;确认' SIZE 2,4,20          && 命令按钮
READ                                                         && 激活对象
IF h=1                                                       && 如果选择了取消
	CLEAR ALL                                                && 释放变量、窗口,关闭表
	CANCEL                                                   && 终止程序的执行
ENDIF
PUBLIC begin,the_end                                         && 定义公共变量 
DO FORM 表单2 NAME 记账开始结束时间 LINK                     && 执行表单
READ EVENTS                                                  && 激活事件
STORE 0 TO yf                                                && 初始化变量
@ 3,4 SAY '                        '                         && 清半行
STORE 1 TO g                                                 && 初始化变量  
@ 3,4 GET g DEFA 1 FUNC '*ht 按月;按季' SIZE 2,4,20          && 命令按钮
READ                                                         && 激活对象
IF g=1                                                       && 如果选择按月 
	@ 2,12 SAY '请输入月份:' GET yf DEFA 0 SIZE 1,2 RANGE 1,12  && 编辑月份
	READ                                                     && 激活对象
	USE mx1501  && 打开固定资产及折旧明细联系表,参见第二十二章第三节专用明细库名表结构
	COPY TO ARRAY gdzc                                       && 复制到gdzc固定资产数组
	STORE RECC() TO N                                        && 记下纪录个数
	STORE 0.00 TO sumyjje,sumydje,sumljzj,sumlye,sumyyje,sumjz,sumlzjf,sumlzdf  && 初始化变量
	STORE DATE() TO riqi                                     && 记下当日日期
	CLEAR                                                    && 清窗口
	@ 2,12 SAY '请输入日期:' GET riqi SIZE 1,10 DEFA DATE()  && 编辑日期
	READ                                                     && 激活对象
	DEAC WINDOW ljzj                                         && 挂起窗口 
	SET DEVI TO PRINT                                        && 输出结果定向到打印机
	SET PRINT ON                                             && 允许输出到打印机
	? '  '+ALLTRIM(STR(yf,2))+'月份累计折旧'                 && 输出表达式的值,下同
	? '原值' AT 45,'月折旧 ' AT 65,'累折余额' AT 85,'净值'   AT 100
	FOR i=1 TO N-1                                          && 循环,N为纪录个数
		USE &gdzc(i,2)                                       && 打开表,固定资产实体表
		GOTO BOTTOM                                          && 指针指向纪录末
		STORE 原值余额 TO yyje_m                             && 记下原值余额
		IF 净值=0.OR.原值余额=0                              && 如果设备已经卖了或报废
			REPLACE 累折余额 WITH 0.00                       && 替换字段,下同
			REPLACE 净值 WITH 0.00
	    ENDIF

		DO CASE                                              && 根据情况判断处理
			CASE 日期=the_end.AND.z='z'                      && 本月折旧过(为了重复打印)  
				SUM 累折借方 TO lzjf FOR 日期>=BEGIN .AND. 日期<=the_end  && 累加
				GOTO BOTTOM                                  && 指针指向纪录末
				REPLACE  日期 WITH the_end,摘要 WITH ALLTRIM(STR(yf))+'月份折旧' && 替换字段
				sumyjje=sumyjje+原值借方                     && 原借金额累加
				sumydje=sumydje+原值贷方                     && 原贷金额累加
				sumyyje=sumyyje+yyje_m                       && 原值余额累加
				sumlzjf=sumlzjf+lzjf                         && 累折借方累加和的累加
				sumljzj=sumljzj+累折贷方                     && 累折贷方累加
				sumlye=sumlye+累折余额                       && 累折余额累加
				sumjz=sumjz+净值                             && 净值累加
				? ALLTRIM(STR(i)),ALLTRIM(gdzc(i,1)),ALLTRIM(STR(yf))+'月折旧:',;
				 ALLTRIM(STR(yyje_m,10,2)) AT 45,ALLTRIM(STR(累折贷方,10,2)) AT 65,;
				 ALLTRIM(STR(累折余额,10,2)) AT 85,ALLTRIM(STR(净值,10,2)) AT 100 && 输出到打印机
				BROW TITLE gdzc(i,1)+gdzc(i,2) TIMEOUT 0.01  && 瞬间浏览
			CASE  日期=GOMONTH(the_end,-1).AND.z='z'         && 上月折旧(这是正常情况)   
				GOTO BOTTOM                                  && 指针指向纪录末
				STORE 累折余额 TO ljzjye                     && 记下累计折旧余额
				STORE 净值 TO jingzhi                        && 记下净值
				DO CASE                                      && 根据情况判断处理
					CASE 净值<=gdzc(i,9)                     && 当净值小于等于残值
						STORE 0 TO ljzjdf                    && 累折贷方变量赋0
					CASE 净值-gdzc(i,9)>=gdzc(i,10)          && 当净值减残值大于等于月折旧额
						STORE gdzc(i,10) TO ljzjdf           && 月折旧额赋给累折贷方变量
					CASE 净值-gdzc(i,9)<gdzc(i,10)           && 当净值减残值小于月折旧额
						STORE 净值-gdzc(i,9) TO ljzjdf       && 净值减残值赋给累折贷方变量
				ENDCASE
				APPEND BLANK                                 && 追加空纪录
				REPLACE  日期 WITH the_end,摘要 WITH ALLTRIM(STR(yf))+'月份折旧',;
					累折贷方 WITH ljzjdf,;
					累折余额 WITH ljzjye+累折贷方,;
					净值 WITH jingzhi-累折贷方               && 替换字段 
				REPLACE 原值余额 WITH yyje_m                 && 替换字段
				REPLACE z WITH 'z'                           && 已经折旧的标识
				sumyyje=sumyyje+yyje_m                       && 原值余额累加
				sumljzj=sumljzj+累折贷方                     && 累折贷方累加
				sumlye=sumlye+累折余额                       && 累折余额累加
				sumjz=sumjz+净值                             && 净值累加
				? ALLTRIM(STR(i)),ALLTRIM(gdzc(i,1)),ALLTRIM(STR(yf))+'月折旧:',;
				 ALLTRIM(STR(yyje_m,10,2)) AT 45,ALLTRIM(STR(累折贷方,10,2)) AT 65,;
				 ALLTRIM(STR(累折余额,10,2)) AT 85,ALLTRIM(STR(净值,10,2)) AT 100 && 输出到打印机
				BROW TITLE gdzc(i,1)+gdzc(i,2) TIMEOUT 0.01  && 瞬间浏览
			CASE z#'z'.AND.日期>=BEGIN .AND. 日期<=the_end   && 新增加的固定资产,当月不折旧
				SUM 累折借方 TO lzjf FOR 日期>=BEGIN .AND. 日期<=the_end && 累加和,下同
				SUM 原值借方 TO yzjf FOR 日期>=BEGIN .AND. 日期<=the_end
				SUM 原值贷方 TO yzdf FOR 日期>=BEGIN .AND. 日期<=the_end
				GOTO BOTTOM                                  && 指针指向纪录末
				STORE 累折余额 TO ljzjye                     && 字段值存到变量中,下同
				STORE 净值 TO jingzhi
				STORE 原值借方 TO yuanjieje
				STORE 0 TO ljzjdf                            && 累折贷方变量赋0,当月不折旧
				APPEND BLANK                                 && 追加空纪录
				REPLACE  日期 WITH the_end,摘要 WITH ALLTRIM(STR(yf))+'当月不折旧',;
					累折贷方 WITH ljzjdf,;
					累折余额 WITH ljzjye+累折贷方,;
					净值 WITH jingzhi-累折贷方               && 替换字段,下同
				REPLACE 原值借方 WITH yzjf                   
				REPLACE 原值贷方 WITH yzdf
				REPLACE 原值余额 WITH yyje_m
				REPLACE z WITH 'z'                           && 已经折旧的标识,为下月计
				sumyjje=sumyjje+原值借方                     && 累加和,下同
				sumydje=sumydje+原值贷方
				sumyyje=sumyyje+yyje_m
				sumlzjf=sumlzjf+lzjf
				sumljzj=sumljzj+累折贷方
				sumlye=sumlye+累折余额
				sumjz=sumjz+净值
				? ALLTRIM(STR(i)),ALLTRIM(gdzc(i,1)),ALLTRIM(STR(yf))+'月折旧:',;
				 ALLTRIM(STR(yyje_m,10,2)) AT 45,ALLTRIM(STR(累折贷方,10,2)) AT 65,;
				 ALLTRIM(STR(累折余额,10,2)) AT 85,ALLTRIM(STR(净值,10,2)) AT 100 && 输出到打印机 
				BROW TITLE gdzc(i,1)+gdzc(i,2)  TIMEOUT 0.01 && 瞬间浏览
			CASE z#'z'.AND.日期>=GOMONTH(BEGIN,-1) .AND. 日期<=GOMONTH(the_end,-1)
			                                                 && 如果上逢上个月忘了折旧的

⌨️ 快捷键说明

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