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

📄 csyrw.prg

📁 不错的用电管理系统,用VFP6.0做的.大家可以下来看看哦
💻 PRG
字号:

*******************************************
* 程序功能:分类汇总抄收员任务(CSYRW.PRG) *
* 编 制 人:唐国春                       *
* 完成日期:2000年08月                   *
*******************************************

SET TALK OFF
SET SAFE OFF

CLOSE DATABASE
PUBLIC QH,S,SS,SSS,dytitle,RQ1,RQ2

SELE 0
USE TIME
TIME1=TIME.RQ
RQ1=SUBSTR(TIME1,1,4)
RQ2=SUBSTR(TIME1,5,2)
USE IN TIME


SS='RWSJ\RW'+SUBSTR(TIME1,3,4)
SSS=SS+'.DBF'

SS_BAK='RWSJ\RWB'+SUBSTR(TIME1,3,4)
SSS_BAK=SS_BAK+'.DBF'

QHK_BAK='RWSJ\SHK'+SUBSTR(TIME1,3,4)+'.DBF'
QHK_CDX='RWSJ\SHK'+SUBSTR(TIME1,3,4)+'.CDX'


IF .NOT. FILE ("&SSS")
	=MESSAGEBOX('还没有提取生成'+RQ1+'年'+RQ2+'月的电费数据资料!'+CHR(13)+CHR(13)+'请先提取生成电费数据资料!',0+16,'错误')
	CLOSE DATABASE
	SET CURSOR ON
	RETURN
ENDIF

************************生成所号库******************
if used("sh")
	use in sh
endif
if file("sh.cdx")
	dele file "sh.cdx"
endif
if file("sh.dbf")
	dele file "sh.dbf"
endif
creat table sh (a1 c(2),gds c(20)) &&建立表sh.dbf
sele sh
index on a1 tag a1 addi
index on gds tag gds addi
********************************************************
SELE 0
USE GDS
SELE 0
USE CSY
SELE 0
USE RWB
ZAP
SELE 0
USE KSK
GO TOP

**************************从 KSK 库提取供电所名称***************************

DO WHILE .NOT. EOF()
	SELE KSK
	S1=A1
	S2=ALLT(A2)
	SELE SH
	LOCA FOR ALLT(GDS)=S2
	IF .NOT. FOUND()
		INSERT INTO SH (A1,GDS) VALUE (S1,S2)
	ENDIF
	SELE KSK
	SKIP
ENDDO

**************************从 CSY 库提取供电所名称***************************

SELE CSY
GO TOP
DO WHILE .NOT. EOF()
	SELE CSY
	S1=A1
	S2=ALLT(A2)
	SELE SH
	LOCA FOR ALLT(GDS)=S2

	IF .NOT. FOUND()
		INSERT INTO SH (A1,GDS) VALUE (S1,S2)
	ENDIF

	SELE CSY
	SKIP
ENDDO

*****************************************************************************

SELE 1
USE &SSS
COPY TO tmp.DBF FOR .NOT. EMPTY(GDS)
SELE 0
USE tmp
SELE 0
USE YSDH

*******************************************************************

GO TOP
DO WHILE .NOT. EOF()
	SELE YSDH
	IF BS2=TIME1
		B1=A2
		B2=A3
		B3=A4
		B4=A5
		B5=A6
		B6=A7
		B7=A8
		B8=A9
		B9=B7+B8
		B10=BS1
		MM=ALLTRIM(XM)
		SELE KSK
		LOCA FOR A1=B10
		B11=A2
		INSERT INTO tmp (DD,JZDF,DLJJ,SXJJ,SZFJ,JQJJ,JBDF,CJFJ,JEHJ,GDS,CSY) VALUE (B1,B2,B3,B4,B5,B6,B7,B8,B9,B11,MM)
	ENDIF
	SELE YSDH
	SKIP
ENDDO

***********供电所手工报表、个人手工报表(老格式)数据处理************

SELE tmp
REPL ALL JEHJ WITH JBDF+CJFJ

SELE 0
USE YSDH_OLD
COPY TO TMP1 FOR BS2=TIME1
SELE 0
USE TMP1
*!*	APPE FROM YSDH_GR FOR BS2=TIME

*****************************************************************

SELE 0
USE RW_TMP
ZAP
SELE tmp
GO TOP
DO WHILE .NOT. EOF()
	SELE tmp
	Q1=QH
	Q2=ALLTRIM(CSY)
	Q3=DD
	Q4=JBDF
	Q5=CJFJ
	Q6=JEHJ
	Q7=GDS
	INSERT INTO RW_TMP (QH,XM,DD,JBDF,CJFJ,JEHJ,GDS) VALUE (Q1,Q2,Q3,Q4,Q5,Q6,Q7)
	SELE tmp
	SKIP
ENDDO

SELE TMP1
GO TOP
DO WHILE .NOT. EOF()
	SELE TMP1
	Q1=SPACE(3)
	Q2=ALLTRIM(XM)
	Q3=A2
	Q4=A10
	Q5=A11
	Q6=A12
	IF EMPTY(BS1)
		Q7=ALLTRIM(XM)+'(个人)'
	ELSE
		Q7=BS1
		SELE KSK
		LOCA FOR A1=Q7
		Q7=ALLT(A2)
	ENDIF
	INSERT INTO RW_TMP (QH,XM,DD,JBDF,CJFJ,JEHJ,GDS) VALUE (Q1,Q2,Q3,Q4,Q5,Q6,Q7)
	SELE TMP1
	SKIP
ENDDO

SELE RW_TMP
***************************生成个人库******************
if used("gr")
	use in gr
endif
if file("gr.cdx")
	dele file "gr.cdx"
endif
if file("gr.dbf")
	dele file "gr.dbf"
endif
creat table gr (xm c(8),gds c(20)) &&建立表sh.dbf
sele gr
index on xm tag xm addi
index on gds tag gds addi
SELE RW_TMP
GO TOP

DO WHILE .NOT. EOF()
	SELE RW_TMP
	S=ALLT(XM)
	S1=ALLT(GDS)
	SELE GR
	LOCA FOR ALLT(XM)=S
	IF .NOT. FOUND()
		INSERT INTO GR (XM,GDS) VALUE (S,S1)
	ENDIF
	SELE RW_TMP
	SKIP
ENDDO

SELE GR

********************!*删除总区数据*!***********************

*!*	SELE 0
*!*	USE shk
*!*	GO TOP

*!*	DO WHILE .NOT. EOF()
*!*		IF zqbz='*'
*!*			SELE RW_TMP
*!*			DELE ALL FOR SUBS(QH,1,4)==shk.QH
*!*			PACK
*!*		ENDIF
*!*		SELE shk
*!*		SKIP
*!*	ENDDO

****************************数据分类汇总********************

SELE GR
set order to tag xm
GO TOP

DO WHILE .NOT. EOF()
	SELE GR
	S=ALLTRIM(XM)
	S1=ALLT(GDS)
	SELE RW_TMP
	LOCA FOR ALLT(XM)=S
	IF FOUND()
		SUM DD,JBDF,CJFJ,JEHJ FOR ALLT(XM)==S TO Q1,Q2,Q3,Q4
		INSERT INTO RWB (XM,DD,JBDF,CJFJ,JEHJ,GDS) VALUE (S,Q1,Q2,Q3,Q4,S1)
	ENDIF
	SELE GR
	SKIP
ENDDO

SELE RW_TMP
SUM DD,JBDF,CJFJ,JEHJ FOR EMPTY(XM) TO Q1,Q2,Q3,Q4

IF Q1<>0 OR Q2<>0 OR Q3<>0 OR Q4>0
	INSERT INTO RWB (XM,DD,JBDF,CJFJ,JEHJ) VALUE ('(其他)',Q1,Q2,Q3,Q4)
ENDIF

SELE RWB
DELE ALL FOR EMPTY(XM)
PACK

COPY TO &SSS_BAK
*use in shk
COPY FILE SHK.DBF TO &QHK_BAK
COPY FILE SHK.CDX TO &QHK_CDX

S='rwb.dbf'

SET SAFE ON

DO FORM dy_rwb

*************************** 由区号对应生成姓名****************************
PROCEDURE REPL

SELE 0
USE shk
SELE 1
USE &SS
GO TOP
DO WHILE NOT EOF()
	S=QH
	SELE shk
	LOCA FOR A1=S
	IF FOUND()
		SELE 1
		REPL XM WITH shk->A3
	ENDIF
	SKIP
ENDDO
RETURN

⌨️ 快捷键说明

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