bcl7.prg

来自「使用VFP编写的信用社系统专用会计报表系统,可上报,汇总,打印.是一款优秀的信用」· PRG 代码 · 共 518 行

PRG
518
字号
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: BCL7.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 SET TALK OFF
 SET CONSOLE OFF
 SET EXACT ON
 SET SAFETY OFF
 IF 1 = 0
 SET DEFAULT TO \xbbjs
 MMBZ4 = '4'
 NIAN = '1998'
 YUE = '12'
 ENDIF 
 XSLJ = ''
 XSBM = ''
 XSYK = ''
 XSLX = ''
 XSDQ = ''
 STORE '  ' TO M_BH , M_BM , FF , DD , M_DQMC
 STORE '0' TO M_BLX1 , M_BLX2 , SCWJPD
 M_LX = .F.
 M_LXM = ''
 SELNO = .F.
 CLOSE DATABASES 
 DO WHILE .T.
 SZ1 = 0
 DO FORM .\src\form\bcl7
 IF SZ1 = 0
 EXIT 
 ENDIF 
 IF SZ1 = 3
 DO FORM .\src\form\sblx
 FF = '  '
 DD = 'A'
 DO FORM .\src\form\bcl71
 IF SELNO = .F.
 DO BCL71 WITH SZ1 , FF , DD , M_BLX1
 ELSE 
 EXIT 
 ENDIF 
 ELSE 
 DO SZ
 ENDIF 
 ENDDO 
 CLOSE DATABASES 
 RETURN 

PROCEDURE SZ
 DO WHILE .T.
 M_LX = .F.
 M_BH = '00'
 DO SZBB
 IF M_BH = '00'
 EXIT 
 ENDIF 
 IF M_LX = .T.
 DO WHILE .T.
 M_BLX2 = '0'
 DO SZLX2
 IF M_BLX2 = '0'
 EXIT 
 ENDIF 
 M_BLX1 = '0'
 DO SZLX1
 IF M_BLX1 = '0'
 EXIT 
 ENDIF 
 IF SZ1 = 1
 DO SB
 ELSE 
 DO DSB
 ENDIF 
 ENDDO 
 ELSE 
 M_BLX1 = '0'
 DO SZLX1
 IF M_BLX1 = '0'
 LOOP 
 ENDIF 
 IF SZ1 = 1
 DO SB
 ELSE 
 DO DSB
 ENDIF 
 ENDIF 
 ENDDO 
ENDPROC
*------
PROCEDURE SZBB
 DO FORM .\src\form\GONG2
 IF M_BH = '00'
 CLOSE DATABASES 
 RETURN 
 ENDIF 
 IF  .NOT. USED('BZL')
 USE IN 0 LIB\BZL.DAT
 ENDIF 
 SELECT BZL
 LOCATE FOR BH = M_BH
 M_LX = LX
 M_BM = BM
 USE 
ENDPROC
*------
PROCEDURE SZLX2
 M_LXM = '   '
 M_BLX2 = '0'
 DO FORM .\src\form\BLX
 RETURN 
ENDPROC
*------
PROCEDURE SZLX1
 M_BLX1 = '0'
 DO FORM .\src\form\sblx
 RETURN 
ENDPROC
*------
PROCEDURE SB
 DELPD = 0
 DO WHILE .T.
 FF = '  '
 DD = 'A'
 DO FORM .\src\form\bcl7a
 DD = LEFT(DD,1)
 IF FF = '  '
 EXIT 
 ENDIF 
 WAIT WINDOW NOCLEAR NOWAIT ' 请稍候 ..... '
 WJPD = 0
 DELPD = 0
 DO SBWJPD
 IF WJPD = 1
 EXIT 
 ENDIF 
 DO JLSBWJ
 WAIT WINDOW '上报完毕!!!'
 EXIT 
 ENDDO 
 CLOSE DATABASES 
 DELETE File TMP.IDX
 IF DELPD = 1
 DELETE File HTMP.DBF
 ENDIF 
 RETURN 
ENDPROC
*------
PROCEDURE SBWJPD
 CL_NIAN = RIGHT(NIAN,2)
  HZWJ="dat\H&M_BH&cl_NIAN..dat"
 IF  .NOT. FILE(HZWJ)
 WAIT WINDOW '无汇总数据,不能上报!'
 WJPD = 1
 RETURN 
 ENDIF 
  USE dat\H&M_BH&cl_NIAN..dat
 INDEX ON DQDH TO TMP
 LOCATE FOR  ;
      DQDH = VAL(YUE) AND XMDH = 'dpbz' AND BLX1 = M_BLX1 AND BLX2 = M_BLX2 AND DA1 = 0
 IF  .NOT. FOUND()
 WAIT WINDOW '无全部地区汇总数据,不能上报!'
 WJPD = 1
 RETURN 
 ENDIF 
 IF SJDW = 0
 WAIT WINDOW '汇总文件不平,不能上报'
 WJPD = 1
 RETURN 
 ENDIF 
ENDPROC
*------
PROCEDURE JLSBWJ
 COPY TO HTMP FOR DQDH = VAL(YUE) AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
 USE HTMP
 DO WHILE .T.
 LOCATE FOR  ;
      DQDH = VAL(YUE) AND XMDH = 'dpbz' AND BLX1 = M_BLX1 AND BLX2 = M_BLX2 AND DA1 <> 0
 IF FOUND()
 DELETE 
 SKIP 
 DO WHILE  .NOT. EOF()
 IF XMDH <> 'dpbz'
 DELETE 
 SKIP 
 ELSE 
 EXIT 
 ENDIF 
 ENDDO 
 PACK 
 ELSE 
 EXIT 
 ENDIF 
 ENDDO 
  if file("lib\zh&m_bh..dat")
  use lib\zh&m_bh..dat in 0 alia zhwh1
  use lib\zh&M_bh.a.dat in 0 alia zhwh2 
 USE IN 0 lib\bzl.dat
 SELECT BZL
 LOCATE FOR BH = M_BH
 LSH = LS
 SELECT ZHWH1
 SCAN 
 YXMDH = XMDH
 SELECT ZHWH2
 FOR MK = 1 TO LSH
 DH = ALLTRIM(STR(MK))
  ss&dh=0
 ENDFOR 
 SCAN FOR XH = ZHWH1.XH
 FHD = FH
 SELECT HTMP
 LOCATE FOR XMDH = ZHWH2.XMDH
 FOR MK = 1 TO LSH
 DH = ALLTRIM(STR(MK))
  ss&dh=ss&dh.&fhd.da&dh
 ENDFOR 
 IF XMDH <> YXMDH
 DELETE 
 PACK 
 ENDIF 
 ENDSCAN 
 SELECT HTMP
 LOCATE FOR XMDH = YXMDH
 FOR MK = 1 TO LSH
 DH = ALLTRIM(STR(MK))
  repl da&dh with ss&dh
 ENDFOR 
 ENDSCAN 
 ENDIF 
 CL_NIAN = RIGHT(NIAN,2)
  DATWJ="&DD.:S&cl_NIAN&FF&M_BH..dat"
 IF FILE(DATWJ)
 SELECT 0
  USE &DD.:S&cl_NIAN&FF&M_BH..dat
 DELETE FOR DQDH <> VAL(YUE)
 PACK 
 LOCATE FOR DQDH = VAL(YUE) AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
 IF FOUND()
 DELETE FOR DQDH = VAL(YUE) AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
 PACK 
 ENDIF 
 APPEND FROM HTMP.DBF FOR DQDH = VAL(YUE) AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
 ELSE 
 SELECT HTMP
  COPY TO &DD.:S&cl_NIAN&FF&M_BH..dat FOR DQDH=val(YUE) AND BLX1=M_BLX1 AND BLX2=M_BLX2 
 ENDIF 
 SELECT HTMP
 USE 
 DELETE File HTMP.DBF
ENDPROC
*------
PROCEDURE DSB
 DO WHILE .T.
 M_DEMC = ''
 WJPD = 0
 SCWJPD = 0
 DD = 'A'
 DO SBDQPD
 IF WJPD = 1
 EXIT 
 ENDIF 
 WAIT WINDOW NOCLEAR NOWAIT ' 请稍候...... '
 WJPD = 0
 DO DSBWJPD
 IF WJPD = 1
 EXIT 
 ENDIF 
 DO LXXG
 WJPD = 0
 SCWJPD = 0
 CL_NIAN = RIGHT(NIAN,2)
  IF !FILE("dat\B&M_BH&cl_NIAN&YUE..dat")
  DO WJ2 WITH "B&M_BH&cl_NIAN&YUE","&M_BH"
 ENDIF 
 DO DSBWJ
 IF WJPD = 1
 EXIT 
 ENDIF 
  IF !USED("B&M_BH&cl_NIAN&YUE")
  USE dat\B&M_BH&cl_NIAN&YUE..dat IN 0
 ENDIF 
  SELE B&M_BH&cl_NIAN&YUE
  use lib\xm&M_bh..dat in 99
 SELECT STMP
 LOCATE FOR XMDH = 'dpbz'
  SELE B&M_BH&cl_NIAN&YUE
 APPEND FROM dat\stmp.dat FOR XMDH = 'dpbz'
 GO TOP
 SELECT 99
 COUNT TO S99
 GO TOP
 FOR I = 1 TO S99
 XMDHXMH = XMDH
 SELECT STMP
 LOCATE FOR XMDH = XMDHXMH
 IF XMDH = XMDHXMH
  SELE B&M_BH&cl_NIAN&YUE
 APPEND FROM dat\stmp.dat FOR XMDH = XMDHXMH
 ELSE 
  SELE B&M_BH&cl_NIAN&YUE
  appe from lib\xm&M_BH..dat for xmdh=xmdhxmh
 SELECT STMP
 GO 2
  SELE B&M_BH&cl_NIAN&YUE
 REPLACE DQDH WITH STMP.DQDH , BLX1 WITH STMP.BLX1 , BLX2 WITH STMP.BLX2 , SJDW WITH  ;
      STMP.SJDW
 ENDIF 
 SELECT 99
 SKIP 
 ENDFOR 
 SELECT STMP
 USE 
 SELECT 99
 USE 
 WAIT WINDOW ' 上报读取完毕  '
 CLOSE DATABASES 
 DELETE File dat\stmp.dat
 DELETE File tmp.IDX
 EXIT 
 ENDDO 
 CLOSE DATABASES 
 IF SCWJPD = 1
 DELETE File tmp.tmp
 DELETE File t001.dbf
 ENDIF 
 RETURN 
ENDPROC
*------
PROCEDURE WJ2
 PARAMETER DATNAME , M_BH
 SCWJPD = 1
 IF  .NOT. USED('blk')
 USE IN 0 lib\BLK.dat
 ENDIF 
 SELECT BLK
 COPY TO t001 STRUCTURE EXTENDED 
 SELECT 0
 USE t001
 ZAP 
 SELECT FIELD_NAME , FIELD_TYPE , FIELD_LEN , FIELD_DEC WHERE BH = (M_BH) INTO TABLE  ;
      tmp.tmp FROM blk
 SELECT T001
 APPEND FROM tmp.tmp
  CREATE dat\&datname FROM t001
 USE 
  RENAME DAT\&DATNAME..DBF TO DAT\&DATNAME..DAT
 SELECT BLK
 USE 
 SELECT TMP
 USE 
 RETURN 
ENDPROC
*------
PROCEDURE SBDQPD
 FF = '  '
 DO FORM .\src\form\bcl7a
 DD = LEFT(DD,1)
 SELECT 0
 USE LIB\DQK.DAT
 LOCATE FOR DQDH = VAL(FF) AND KHBZ = .T.
 IF  .NOT. FOUND()
 WAIT WINDOW '    无此地区代号      '
 WJPD = 1
 RETURN 
 ENDIF 
 M_DQMC = DQMC
ENDPROC
*------
PROCEDURE DSBWJPD
 CL_NIAN = RIGHT(NIAN,2)
  IF !FILES("&DD.:S&cl_NIAN&FF&M_BH..dat")
 WAIT WINDOW '上报数据不存在    '
 WJPD = 1
 RETURN 
 ENDIF 
 SELECT 0
  USE &DD.:S&cl_NIAN&FF&M_BH..DAT 
 COPY TO dat\stmp.dat FOR BLX1 = M_BLX1 AND BLX2 = M_BLX2
 SELECT 0
 USE dat\stmp.dat
 SELECT STMP
 IF EOF()
 WAIT WINDOW '    上报数据不存在    '
 WJPD = 1
 USE 
 DELETE File dat\stmp.dat
 RETURN 
 ENDIF 
  IF DQDH#&YUE
 WAIT WINDOW '上报文件非本月数据'
 WJPD = 1
 USE 
 DELETE File dat\stmp.dat
 RETURN 
 ENDIF 
  REPLACE ALL DQDH WITH &FF			
ENDPROC
*------
PROCEDURE LXXG
 DO WHILE .T.
 MSGTTL = '上报数据类型修改'
 SELECT STMP
 GO TOP
  Messgtxt = M_BM + "&NIAN" +"年"+"&YUE" +"月" + chr(13) + "地区代号:"	+ "&FF" + M_DQMC + "报表类型:"
 DO CASE 
 CASE BLX1 = '1'
 MESSGTXT = MESSGTXT + '月  报'
 CASE BLX1 = '2'
 MESSGTXT = MESSGTXT + '季  报'
 CASE BLX1 = '3'
 MESSGTXT = MESSGTXT + '年  报'
 ENDCASE 
 MESSGTXT = MESSGTXT + CHR(13) + '盈亏类型:'
 M_BLX2 = BLX2
 DO SZLX2A
 MESSGTXT = MESSGTXT + M_LXM + CHR(13) + CHR(13) + '是否修改?'
 IF MESSAGEBOX(MESSGTXT,36,MSGTTL) = 6
 DO SZLX
 ELSE 
 EXIT 
 ENDIF 
 ENDDO 
ENDPROC
*------
PROCEDURE SZLX
 MYWORD = ' '
 MYWORD1 = ' '
 SEL = 1
 DO X1
 SELECT STMP
 REPLACE BLX1 WITH (MYWORD)
 SELECT 0
 IF M_LX = .T.
 M_BLX2 = '0'
 DO SZLX2B
 SELECT STMP
 REPLACE BLX2 WITH (MYWORD1)
 ENDIF 
ENDPROC
*------
PROCEDURE X1
 SEL = 0
 DO FORM .\src\form\bcl7b
 MYWORD = LTRIM(STR(SEL))
 RETURN 
ENDPROC
*------
PROCEDURE x2
 DIMENSION OP( 4 )
 OP( 1 ) = '1.合并表'
 OP( 2 ) = '2.盈余表'
 OP( 3 ) = '3.亏损表'
 OP( 4 ) = '4.联社表'
 @ 8 , 28 MENU OP , 4 , 4 TITLE '类型选择'
 READ MENU TO SEL1
 MYWORD1 = LTRIM(STR(SEL1))
 RETURN 
ENDPROC
*------
PROCEDURE DSBWJ
 CL_NIAN = RIGHT(NIAN,2)
  USE dat\B&M_BH&cl_NIAN&YUE..dat IN 0
  SELE B&M_BH&cl_NIAN&YUE
 INDEX ON XMDH TO TMP
  LOCATE FOR DQDH=&FF .AND. BLX1=STMP->BLX1 AND BLX2=STMP->BLX2	
 IF FOUND()
 MSGTTL = '上报数据'
 MESSGTXT = '此地区数据己存在,是否覆盖?'
 IF MESSAGEBOX(MESSGTXT,292,MSGTTL) = 7
 CLOSE DATABASES 
 DELETE File dat\stmp.dat
 DELETE File tmp.IDX
 WJPD = 1
 WAIT CLEAR
 RETURN 
 ELSE 
  DELE FOR DQDH=&FF .AND. BLX1=STMP->BLX1 AND BLX2=STMP->BLX2	
 PACK 
 ENDIF 
 ELSE 
 MSGTTL = '上报数据'
 MESSGTXT = '是否读入上报数据?'
 IF MESSAGEBOX(MESSGTXT,36,MSGTTL) = 7
 CLOSE DATABASES 
 DELETE File dat\stmp.dat
 DELETE File tmp.IDX
 WAIT CLEAR
 WJPD = 1
 RETURN 
 ENDIF 
 ENDIF 
ENDPROC
*------
PROCEDURE SZLX2A
 M_LXM = '   '
 SELECT 0
 USE lib\blx.dat
 LOCATE FOR BH = M_BH AND DH = VAL(M_BLX2)
 M_LXM = MC
 SELECT BLX
 USE 
 RETURN 
ENDPROC
*------
PROCEDURE SZLX2B
 M_LXM = '   '
 M_BLX2 = '0'
 DO FORM .\src\form\BLX
 MYWORD1 = M_BLX2
 IF USED('blx')
 SELECT BLX
 USE 
 ENDIF 
 RETURN 
ENDPROC
*------*

⌨️ 快捷键说明

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