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

📄

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 2 页
字号:
**************************************************************
*                        月合计.PRG                          *
**************************************************************
SET TALK OFF                                                 && 阻止对话结果传送到窗口
SET CENTURY ON                                               && 指定用四位数表示年 
SET DATE ANSI                                                && 日期格式yy.mm.dd
CLEAR                                                        && 请屏幕
PUBLIC BEGIN,the_end                                         && 定义公共日期变量 
DO FORM 表单2 NAME 记账开始结束时间 LINK                     && 执行表单
READ EVENTS                                                  && 激活事件CLEAR
STORE GOMONTH(the_end,-1) TO syhjrq                          && 上月合计日期
STORE MONTH(the_end) TO yuefen                               && 月份
DEFI WINDOW yhj FROM 5,20 TO 15,70 TITLE ' 进行月合计 ' CLOSE   && 定义窗口
ACTI WINDOW yhj                                              && 激活窗口
@ 4,5 SAY '几月份合计?' GET yuefen DEFA 0 SIZE 1,2           && 编辑月份
READ                                                         && 激活对象
IF USED('ZK67')                                              && 如果表已打开	
	SELECT ZK67                                              && 激活工作区
ELSE                                                         && 否则
	SELECT 3                                                 && 激活工作区
   	USE 科目总控!zk85                        && 打开表‘ZK85’(总控85,内含85个科目)
ENDIF
COPY TO ARRAY zza                                            && 复制到总帐数组
STORE RECC() TO zkn                                          && 记下纪录个数
CLEAR                                                        && 请屏幕
@ 1,10 SAY '是否逐项进行月合计?'                             && 提示信息 
@ 3,9 SAY '逐项    单项    单项'
STORE 2 TO h
@ 3,9 GET h FUNC '*ht 逐项;单项;取消' SIZE 2,6,6 DEFA 2
READ
DO CASE
	CASE h=1
		STORE 1 TO b
		STORE zkn TO e
	CASE h=2
		DIME m(zkn)
		FOR i=1 TO zkn
			m(i)=zza(i,1)+' '+zza(i,2)
		NEXT
		DEFI WINDOW lst FROM 1,51 TO 20,79 TITLE '单项月合计科目选择'
		ACTI WINDOW lst
		STORE 1 TO s
		@ 0,0 GET s FROM m FUNC '&t' DEFA 1
		READ CYCLE
		DEAC WINDOW lst
		STORE s TO b,e
	CASE h=3
		CLEAR ALL
		CANCEL
ENDCASE
DEACTI WINDOW yhj

DIME mx(300,3)
FOR i=b TO e
	IF zza(i,5)<>'暂不使用'
		DO CASE
			CASE ALLTRIM(zza(i,2))='现金'.OR.ALLTRIM(zza(i,2))='其他货币资金'
				IF FILE(zza(i,3)+'.dbf')
					USE &zza(i,3)
				ENDIF
				STORE 0 TO jhj,dhj
				SUM 借方,贷方 FOR 日期>=BEGIN.AND.日期<=the_end TO jhj,dhj
				USE &zza(i,6)
				GOTO BOTTOM
				STORE 余额 TO yu_e
				IF 日期<>syhjrq
					IF 日期=the_end
						GOTO RECC()-1
						STORE 余额 TO yu_e
						GOTO BOTT
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhj
						REPLACE 贷方 WITH dhj
						REPLACE 余额 WITH yu_e+jhj-dhj
						BROWSE ;
							NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
						DO rk
						USE
					ELSE
						WAIT WINDOW '月份不符'
						BROW TITLE zza(i,2)+zza(i,6)+'合计'
					ENDIF
				ELSE
					APPEND BLANK
					REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
					REPLACE 借方 WITH jhj
					REPLACE 贷方 WITH dhj
					REPLACE 余额 WITH yu_e+jhj-dhj
					BROWSE ;
						NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
					DO rk
					USE
				ENDIF

&& 资产__科目:123,133,139,151,169 损益:512,542,550,504
			CASE zza(i,5)='选用科目'.AND.;
					(ALLTRIM(zza(i,2))='应收帐款';
					.OR.ALLTRIM(zza(i,2))='应收票据';
					.OR.ALLTRIM(zza(i,2))='短期投资';
					.OR.ALLTRIM(zza(i,2))='坏帐准备';
					.OR.ALLTRIM(zza(i,2))='预付帐款';
					.OR.ALLTRIM(zza(i,2))='其他应收款';
					.OR.ALLTRIM(zza(i,2))='材料采购';
					.OR.ALLTRIM(zza(i,2))='原材料';
					.OR.ALLTRIM(zza(i,2))='包装务';
					.OR.ALLTRIM(zza(i,2))='低值易耗品';
					.OR.ALLTRIM(zza(i,2))='材料成本差异';
					.OR.ALLTRIM(zza(i,2))='委托加工材料';
					.OR.ALLTRIM(zza(i,2))='自制半成品';
					.OR.ALLTRIM(zza(i,2))='待摊费用';
					.OR.ALLTRIM(zza(i,2))='长期投资';
					.OR.ALLTRIM(zza(i,2))='累计折旧';
					.OR.ALLTRIM(zza(i,2))='在建工程';
					.OR.ALLTRIM(zza(i,2))='无形资产';
					.OR.ALLTRIM(zza(i,2))='固定资产清理';
					.OR.ALLTRIM(zza(i,2))='待处理财产损益';
					.OR.ALLTRIM(zza(i,2))='产成品';
					.OR.ALLTRIM(zza(i,2))='生产成本';
					.OR.ALLTRIM(zza(i,2))='其他业务支出';
					.OR.ALLTRIM(zza(i,2))='营业外支出';
					.OR.ALLTRIM(zza(i,2))='所得税';
					.OR.ALLTRIM(zza(i,2))='产品销售成本';
					.OR.ALLTRIM(zza(i,2))='产品销售费用';
					.OR.ALLTRIM(zza(i,2))='财务费用';
					.OR.ALLTRIM(zza(i,2))='产品销售锐金及附加')

				IF FILE(zza(i,3)+'.dbf')
					USE &zza(i,3)

					STORE 0 TO jhj,dhj
					SUM 借方,贷方 FOR 日期>=BEGIN.AND.日期<=the_end TO jhj,dhj
					USE &zza(i,6)
					GOTO BOTTOM
					STORE 余额 TO yu_e
					IF 日期<>syhjrq
						IF 日期=the_end
							GOTO RECC()-1
							STORE 余额 TO yu_e
							GOTO BOTT
							REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 借方 WITH jhj
							REPLACE 贷方 WITH dhj
							REPLACE 余额 WITH yu_e+jhj-dhj
							BROWSE ;
								NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
							DO rk
							USE
						ELSE
							WAIT WINDOW '月份不符'
							BROW TITLE zza(i,2)+zza(i,6)+'合计'
						ENDIF
					ELSE
						APPEND BLANK
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhj
						REPLACE 贷方 WITH dhj
						REPLACE 余额 WITH yu_e+jhj-dhj
						BROWSE ;
							NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
						DO rk
						USE
					ENDIF
				ENDIF

&& 负债或所有者权益__科目:负债 201,204,211,214,231 所有者权益 313,321,322 损益 511,531,541
			CASE ALLTRIM(zza(i,5))='选用科目'.AND.;
					(ALLTRIM(zza(i,2))='短期借款';
					.OR.ALLTRIM(zza(i,2))='应付票据';
					.OR.ALLTRIM(zza(i,2))='应付帐款';
					.OR.ALLTRIM(zza(i,2))='预收帐款';
					.OR.ALLTRIM(zza(i,2))='其他应付款';
					.OR.ALLTRIM(zza(i,2))='应付工资';
					.OR.ALLTRIM(zza(i,2))='应付福利费';
					.OR.ALLTRIM(zza(i,2))='应交税金';
					.OR.ALLTRIM(zza(i,2))='产品销售收入';
					.OR.ALLTRIM(zza(i,2))='应付利润';
					.OR.ALLTRIM(zza(i,2))='其他应交款';
					.OR.ALLTRIM(zza(i,2))='预提费用';
					.OR.ALLTRIM(zza(i,2))='待扣税金';
					.OR.ALLTRIM(zza(i,2))='长期借款';
					.OR.ALLTRIM(zza(i,2))='应付债券';
					.OR.ALLTRIM(zza(i,2))='长期应付款';
					.OR.ALLTRIM(zza(i,2))='实收资本';
					.OR.ALLTRIM(zza(i,2))='资本公积';
					.OR.ALLTRIM(zza(i,2))='盈余公积';
					.OR.ALLTRIM(zza(i,2))='本年利润';
					.OR.ALLTRIM(zza(i,2))='利润分配';
					.OR.ALLTRIM(zza(i,2))='其他业务收入';
					.OR.ALLTRIM(zza(i,2))='营业外收入' )
				IF FILE(zza(i,3)+'.dbf')
					USE &zza(i,3)

					STORE 0 TO jhj,dhj
					SUM 借方,贷方 FOR 日期>=BEGIN.AND.日期<=the_end TO jhj,dhj
					USE &zza(i,6)
					GOTO BOTTOM
					IF 日期<>syhjrq
						IF 日期=the_end
							GOTO RECC()-1
							STORE 余额  TO yu_e
							GOTO BOTT
							REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 借方 WITH jhj
							REPLACE 贷方 WITH dhj
							REPLACE 余额 WITH yu_e-jhj+dhj
							BROWSE ;
								NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
							DO rk
							USE
						ELSE
							WAIT WINDOW '月份不符'
							BROW TITLE zza(i,2)+zza(i,6)+'合计'
						ENDIF
					ELSE
						STORE 余额 TO yu_e
						APPEND BLANK
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhj
						REPLACE 贷方 WITH dhj
						REPLACE 余额 WITH yu_e-jhj+dhj
						BROWSE ;
							NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月计 '
						DO rk
						USE
					ENDIF
				ENDIF

&& 资产科目(有明细):102
			CASE (ALLTRIM(zza(i,2))='银行存款').AND.ALLTRIM(zza(i,5))='选用明细'
				USE &zza(i,4)
				STORE RECC() TO N
				COPY TO ARRAY mx
				STORE 0 TO jhj,dhj,jhjz,dhjz
				FOR j=1 TO N-1
					USE &mx(j,2)
					STORE 0 TO jhj,dhj
					SUM 借方,贷方 FOR 日期>=BEGIN.AND.日期<=the_end TO jhj,dhj
					jhjz=jhjz+jhj
					dhjz=dhjz+dhj
					USE &mx(j,3)
					GOTO BOTTOM
					STORE 余额  TO yu_e
					IF 日期<>syhjrq
						IF 日期=the_end
							GOTO RECC()-1
							STORE 余额  TO yu_e
							GOTO BOTT
							REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 借方 WITH jhj
							REPLACE 贷方 WITH dhj
							REPLACE 余额 WITH yu_e+jhj-dhj
						ELSE
							WAIT WINDOW '月份不符'
							BROW TITLE mx(j,1)+mx(j,3)+'合计'
						ENDIF
					ELSE
						APPEND BLANK
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhj
						REPLACE 贷方 WITH dhj
						REPLACE 余额 WITH yu_e+jhj-dhj
					ENDIF
				NEXT
*  总帐

				USE &zza(i,6)
				GOTO BOTTOM
				STORE 余额  TO yu_e
				IF 日期<>syhjrq
					IF 日期=the_end
						GOTO RECC()-1
						STORE 余额  TO yu_e
						GOTO BOTT
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhjz
						REPLACE 贷方 WITH dhjz
						REPLACE 余额 WITH yu_e+jhjz-dhjz
						BROWSE ;
							NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月合计 '
						DO rk
						USE
					ELSE
						WAIT WINDOW '月份不符'
						BROW TITLE zza(i,2)+zza(i,6)+'合计'
					ENDIF
				ELSE
					APPEND BLANK
					REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
					REPLACE 借方 WITH jhjz
					REPLACE 贷方 WITH dhjz
					REPLACE 余额 WITH yu_e+jhjz-dhjz
					BROWSE ;
						NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 TITLE zza(i,2)+' '+zza(i,6)+'月合计 '
					DO rk
					USE
				ENDIF



&& 资产科目(有明细):113,119,123,139,502
			CASE ALLTRIM(zza(i,5))='选用明细'.AND.;
					(ALLTRIM(zza(i,2))='应收帐款';
					.OR.ALLTRIM(zza(i,2))='银行存款';
					.OR.ALLTRIM(zza(i,2))='应收票据';
					.OR.ALLTRIM(zza(i,2))='短期投资';
					.OR.ALLTRIM(zza(i,2))='坏帐准备';
					.OR.ALLTRIM(zza(i,2))='预付帐款';
					.OR.ALLTRIM(zza(i,2))='其他应收款';
					.OR.ALLTRIM(zza(i,2))='材料采购';
					.OR.ALLTRIM(zza(i,2))='原材料';
					.OR.ALLTRIM(zza(i,2))='包装务';
					.OR.ALLTRIM(zza(i,2))='低值易耗品';
					.OR.ALLTRIM(zza(i,2))='材料成本差异';
					.OR.ALLTRIM(zza(i,2))='委托加工材料';
					.OR.ALLTRIM(zza(i,2))='自制半成品';
					.OR.ALLTRIM(zza(i,2))='待摊费用';
					.OR.ALLTRIM(zza(i,2))='长期投资';
					.OR.ALLTRIM(zza(i,2))='累计折旧';
					.OR.ALLTRIM(zza(i,2))='在建工程';
					.OR.ALLTRIM(zza(i,2))='无形资产';
					.OR.ALLTRIM(zza(i,2))='固定资产清理';
					.OR.ALLTRIM(zza(i,2))='待处理财产损益';
					.OR.ALLTRIM(zza(i,2))='产成品';
					.OR.ALLTRIM(zza(i,2))='生产成本';
					.OR.ALLTRIM(zza(i,2))='其他业务支出';
					.OR.ALLTRIM(zza(i,2))='营业外支出';
					.OR.ALLTRIM(zza(i,2))='所得税';
					.OR.ALLTRIM(zza(i,2))='产品销售成本';
					.OR.ALLTRIM(zza(i,2))='产品销售费用';
					.OR.ALLTRIM(zza(i,2))='管理费用';
					.OR.ALLTRIM(zza(i,2))='财务费用';
					.OR.ALLTRIM(zza(i,2))='产品销售锐金及附加')
*? zza(i,4)
*wait
				USE &zza(i,4)
				STORE RECC() TO N
				COPY TO ARRAY mx
				STORE 0 TO jhj,dhj,jhjz,dhjz
				FOR j=1 TO N-1
					? j,mx(j,2)
* wait
					USE &mx(j,2)
					STORE 0 TO jhj,dhj
					SUM 借方,贷方 FOR 日期>=BEGIN.AND.日期<=the_end TO jhj,dhj
					jhjz=jhjz+jhj
					dhjz=dhjz+dhj
					USE &mx(j,3)
					GOTO BOTTOM
					STORE 余额  TO yu_e
					IF 日期<>syhjrq
						IF 日期=the_end
							GOTO RECC()-1
							STORE 余额  TO yu_e
							GOTO BOTT
							REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 借方 WITH jhj
							REPLACE 贷方 WITH dhj
							REPLACE 余额 WITH yu_e+jhj-dhj
						ELSE
*             wait window '月份不符'
*             brow title mx(j,1)+mx(j,3)+'合计'
						ENDIF
					ELSE
						APPEND BLANK
						REPLACE 日期 WITH the_end,摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 借方 WITH jhj
						REPLACE 贷方 WITH dhj
						REPLACE 余额 WITH yu_e+jhj-dhj
					ENDIF
				NEXT
*  总帐

⌨️ 快捷键说明

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