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

📄

📁 visualfoxpro企业会计电算化实例
💻
📖 第 1 页 / 共 3 页
字号:
							 TITLE zza(i,2)+' '+zza(i,6)+'月合计 ' && TIMEOUT 1 && 浏览			
							USE                              && 关闭表
				        ELSE
							WAIT WINDOW '月份不符'           && 提示信息 
							BROW TITLE zza(i,2)+zza(i,6)+'合计' && 浏览,观察问题之所在				    		
				    	ENDIF
	                ENDIF
	                	
	                ************************ ‘选用明细’的处理 **********************
			    ELSE                                         && 否则,是选用明细
					USE &zza(i,4)                            && 打开‘名细库名’表,联系表
					STORE RECC() TO N                        && 记下纪录个数
					COPY TO ARRAY mx                         && 复制到数组 
					USE &zza(i,3)                            && 打开‘科目库名’表
					SET SAFETY OFF                           && 关闭安全提示窗口
                    COPY STRUCTURE TO TEMP0                  && 复制表结构
					FOR jf=1 TO N-1                          && 循环,末纪录总是‘创建或增添新名细’,不计 
? zza(i,1),zza(i,2),mx(jf,1),mx(jf,2)
						USE mx(jf,2)                         && 打开单项明细表
						GOTO BOTTOM                          && 指针指向末纪录
						STORE 余额 TO yu_e                   && 记下余额
						SET FILTER TO 日期>=BEGIN.AND.日期<=the_end && 按日期范围过滤
						COPY TO TEMP1                        && 复制到表
						USE TEMP1                            && 打开表
			            IF RECC()#0                          && 如果纪录个数不等于0
							GOTO BOTTOM                      && 指针指向末纪录
							STORE 余额 TO yu_e               && 记下余额
	                    ENDIF						
						USE                                  && 关闭表
						ALTER TABLE TEMP1 ADD COLUMN X C(1)  && 增加一列,为了统计,SQL语句
		                CLOSE DATA	                         && 关闭当前数据库和表
						USE TEMP1                            && 打开表
						TOTAL ON X TO TEMP2  && 计算数值字段的总和,只有一行;增加之列用在此
						USE TEMP2                            && 打开表

						DIME ATEMP2(1,FCOUNT())              && 定维数组
						STORE 0 TO ATEMP2                    && 初始化数组
						COPY TO ARRAY ATEMP2                 && 复制到数组
						USE TEMP0                            && 打开表
						APPEND FROM TEMP2                    && 追加一行,从TEMP2
						**************** 处理单项明细月合计表 ********************
						USE mx(jf,3)                         && 打开明细月合计表
						GOTO BOTTOM                          && 指针指向末纪录
						IF 日期=GOMONTH(the_end,-1)    && 日期是上月末期,这是正常情况
							APPEND BLANK                     && 追加空纪录
							FOR j=1 TO FCOUNT()              && 循环,终值为字段个数
								IF TYPE(FIELD(j))='N'.AND.ATEMP2(1,j)#0  && 如果字段类型为数值且不等于0
									REPLACE (FIELD(j)) WITH ATEMP2(1,j)  && 替换字段
											&& FIELD(j)是字段名,(FIELD(j))是名表达式
								ENDIF	
							NEXT
							REPLACE 日期 WITH the_end        && 替换字段,下同
							REPLACE 摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 凭证号 WITH ' '
							IF zza(i,7)='借'                 && 如果余额方向为借
								REPLACE 余额 WITH yu_e+借方-贷方
                            ELSE		
								REPLACE 余额 WITH yu_e-借方+贷方
				       		ENDIF
				       		FOR j=1 TO FCOUNT()              && 循环,终值为字段个数
				       			IF FIELD(j)='借或贷'         && 如果'借或贷'字段存在
									IF zza(i,7)='借'         && 如果余额方向为借
										REPLACE 借或贷 WITH '借' && 替换字段用借
				        			ELSE		             && 否则
										REPLACE 借或贷 WITH '贷' && 替换字段用贷
				       				ENDIF
				       			ENDIF
				       		NEXT                             && 下一个FOR循环
*							BROWSE NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
*							 TITLE zza(i,2)+' '+mx(jf,3)+'月合计 '	&& 浏览,调程序时需要浏览			
							USE                                     && 关闭表				        
				    	ELSE
				    		IF 日期=the_end                  && 如果是本月记账末期,说明做过月合计
				    			GOTO BOTTOM                  && 指针指向末纪录
								FOR j=1 TO FCOUNT()          && 循环,终值为字段个数
									IF TYPE(FIELD(j))='N'.AND.ATEMP2(1,j)#0  && 如果字段类型为数值且不等于0
										REPLACE (FIELD(j)) WITH ATEMP2(1,j)  && 替换字段
												&& FIELD(j)是字段名,(FIELD(j))是名表达式
									ENDIF	
								NEXT
								REPLACE 日期 WITH the_end           && 替换字段,下同
								REPLACE 摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
								REPLACE 凭证号 WITH ' '				    		
								IF zza(i,7)='借'            && 如果余额方向为借
									REPLACE 余额 WITH yu_e+借方-贷方
				 		  	  	ELSE		
									REPLACE 余额 WITH yu_e-借方+贷方
				    	    	ENDIF
				       			FOR j=1 TO FCOUNT()          && 循环,终值为字段个数
				       				IF FIELD(j)='借或贷'     && 如果'借或贷'字段存在
										IF zza(i,7)='借'     && 如果余额方向为借
											REPLACE 借或贷 WITH '借' && 替换字段用借
				        				ELSE		         && 否则
											REPLACE 借或贷 WITH '贷' && 替换字段用贷
				       					ENDIF
				       				ENDIF
				       			NEXT                             && 下一个FOR循环
*								BROWSE NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
*								 TITLE zza(i,2)+' '+mx(jf,3)+'月合计 '	&& 浏览			
								USE                                     && 关闭表
				       		 ELSE
								WAIT WINDOW '月份不符'              && 提示信息 
								BROW TITLE zza(i,2)+zza(i,6)+'合计' && 浏览,观察问题之所在				    		
				    	 	ENDIF
						ENDIF			
					NEXT				
					**************** 处理月合计表 ********************
					USE TEMP0                               && 打开表,此表追加了各明细的统计内容
					ALTER TABLE TEMP0 ADD COLUMN X C(1)     && 增加一列,为了统计,SQL语句
	                CLOSE DATA	                            && 关闭当前数据库和表
					USE TEMP0                               && 打开表
					TOTAL ON X TO TEMP2   && 计算数值字段的总和,只有一行;增加之列用在此
					USE TEMP2                               && 打开表
					DIME ATEMP2(1,FCOUNT())              && 定维数组
					store 0 to ATEMP2
					COPY TO ARRAY ATEMP2                    && 复制到数组
					USE zza(i,6)                            && 打开科目月合计表
					GOTO BOTTOM                             && 指针指向末纪录
					STORE 余额 TO yu_e                      && 记下余额
					IF 日期=GOMONTH(the_end,-1)             && 日期是上月末期,这是正常情况
						APPEND BLANK                        && 追加空纪录
						FOR j=1 TO FCOUNT()                 && 循环,终值为字段个数
							IF TYPE(FIELD(j))='N'.AND.ATEMP2(1,j)#0  && 如果字段类型为数值且不等于0
								REPLACE (FIELD(j)) WITH ATEMP2(1,j)  && 替换字段
										&& FIELD(j)是字段名,(FIELD(j))是名表达式
							ENDIF	
						NEXT                                && 下一个FOR循环
						REPLACE 日期 WITH the_end           && 替换字段,下同
						REPLACE 摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
						REPLACE 凭证号 WITH ' '
						IF zza(i,7)='借'                    && 如果余额方向为借
							REPLACE 余额 WITH yu_e+借方-贷方
				        ELSE		
							REPLACE 余额 WITH yu_e-借方+贷方
				        ENDIF
				 		FOR j=1 TO FCOUNT()                 && 循环,终值为字段个数
				 			IF FIELD(j)='借或贷'            && 如果'借或贷'字段存在
								IF zza(i,7)='借'            && 如果余额方向为借
									REPLACE 借或贷 WITH '借' && 替换字段用借
				   				ELSE		                && 否则
									REPLACE 借或贷 WITH '贷' && 替换字段用贷
				   				ENDIF
				    		ENDIF 
				     	NEXT                                && 下一个FOR循环
						BROWSE NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
						 TITLE zza(i,2)+' '+zza(i,6)+'月合计 '	&& TIMEOUT 1 && 浏览			
						USE                                     && 关闭表				        
				    ELSE
				    	IF 日期=the_end                     && 如果是本月记账末期,说明做过月合计
				    		SKIP -1                         && 指针移动-1
				    		STORE 余额 TO yu_e              && 记下余额
				    		GOTO BOTTOM                     && 指针指向末纪录 
							FOR j=1 TO FCOUNT()             && 循环,终值为字段个数
								IF TYPE(FIELD(j))='N'.AND.ATEMP2(1,j)#0  && 如果字段类型为数值且不等于0
									REPLACE (FIELD(j)) WITH ATEMP2(1,j)  && 替换字段
											&& FIELD(j)是字段名,(FIELD(j))是名表达式
								ENDIF	
							NEXT                            && 下一个FOR循环
							REPLACE 日期 WITH the_end       && 替换字段,下同
							REPLACE 摘要 WITH ALLTRIM(STR(yuefen))+'月份合计'
							REPLACE 凭证号 WITH ' '				    		
							IF zza(i,7)='借'                && 如果余额方向为借
								REPLACE 余额 WITH yu_e+借方-贷方
				   	   	 	ELSE		
								REPLACE 余额 WITH yu_e-借方+贷方
				    	    ENDIF
				       		FOR j=1 TO FCOUNT()             && 循环,终值为字段个数
				       			IF FIELD(j)='借或贷'        && 如果'借或贷'字段存在
									IF zza(i,7)='借'        && 如果余额方向为借
										REPLACE 借或贷 WITH '借' && 替换字段用借
				        			ELSE		            && 否则
										REPLACE 借或贷 WITH '贷' && 替换字段用贷
				       				ENDIF
				       			ENDIF
				       		NEXT                             && 下一个FOR循环
							BROWSE NOAPPEND NODELETE NOMODIFY IN SCREEN WIDTH 100 ;
							 TITLE zza(i,2)+' '+zza(i,6)+'月合计 ' && TIMEOUT 1	&& 浏览			
							USE                              && 关闭表
				        ELSE
							WAIT WINDOW '月份不符'           && 提示信息 
							BROW TITLE zza(i,2)+zza(i,6)+'合计' && 浏览,观察问题之所在				    		
				    	ENDIF				    
				    ENDIF
				ENDIF
		ENDCASE
	ENDIF
NEXT
SET SAFETY OFF                                               && 打开安全提示窗口
CLEAR ALL                                                    && 释放内存变量、窗口,关闭表
RETURN                                                       && 程序结束

⌨️ 快捷键说明

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