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

📄 bcl71.prg

📁 使用VFP编写的信用社系统专用会计报表系统,可上报,汇总,打印.是一款优秀的信用社会计报表系统
💻 PRG
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*  文件名: BCL71.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 PARAMETER SZ1 , FF , DD , M_BLX1
 SET COLOR OF SCHEME 3 TO RGB( 0 , 0 , 0 , 192 , 192 , 192) 
 DEFINE WINDOW BCL FROM 1 , 10 TO 20 , 70 COLOR SCHEME 3 TITLE '       批量读入上报数据'  ;
      DOUBLE
 MOVE WINDOW BCL CENTER 
 ACTIVATE WINDOW BCL
 STORE '  ' TO M_BH , M_BM , M_DQMC
 STORE '0' TO M_BLX2 , SCWJPD , M_BLX11 , M_BLX22
 M_LX = .F.
 M_LXM = ''
 M_BH = '00'
 IF  .NOT. USED('BZL')
 USE IN 0 LIB\BZL.DAT
 ENDIF 
 SELECT BZL
 SET FILTER TO BBZL = '1'
 GO TOP
 DO WHILE  .NOT. EOF()
 BZL_REC = RECNO()
 M_BH = BZL.BH
 M_LX = BZL.LX
 M_BM = BZL.BM
 M_BLX22 = '        '
 CL_NIAN = RIGHT(NIAN,2)
 IF M_LX = .T.
 IF  .NOT. USED('BLX')
 USE IN 0 lib\blx.dat
 ENDIF 
 SELECT BLX
 SET FILTER TO BH = M_BH
 GO TOP
 DO WHILE  .NOT. EOF()
 BLX_REC = RECNO()
 M_BLX2 = ALLTRIM(STR(DH))
 M_BLX22 = MC
 IF SZ1 = 1
 DO SB
 ELSE 
 DO DSB
 ENDIF 
 SELECT BLX
 GO BLX_REC
 SKIP 
 ENDDO 
 SELECT BLX
 USE 
 ELSE 
 M_BLX2 = '0'
 IF SZ1 = 1
 DO SB
 ELSE 
 DO DSB
 ENDIF 
 ENDIF 
 IF USED('STMP')
 SELECT STMP
 USE 
 ERASE DAT\STMP.DAT
 ENDIF 
 IF USED('T001')
 SELECT STMP
 USE 
 ERASE DAT\T001.TMP
 ENDIF 
 IF USED('BLK')
 SELECT STMP
 USE 
 ENDIF 
 SELECT BZL
 GO BZL_REC
 SKIP 
 ENDDO 
 WAIT WINDOW '批量上报数据读入完毕,请击任意键返回!!'
 DEACTIVATE WINDOW BCL
 RELEASE WINDOW BCL

PROCEDURE SB
 DELPD = 0
 DO WHILE .T.
 CLEAR 
 @ 9 , 6 SAY '      请稍候       '
 WJPD = 0
 DELPD = 0
 DO SBWJPD
 IF WJPD = 1
 USE 
 EXIT 
 ENDIF 
 DO JLSBWJ
 ?? CHR(7)
 @ 9 , 6 SAY '      上报完毕      '
 = INKEY(2)
 EXIT 
 ENDDO 
 DELETE File TMP.IDX
 IF DELPD = 1
 DELETE File HTMP.DBF
 ENDIF 
 RETURN 
ENDPROC
*------
PROCEDURE SBWJPD
  HZWJ="dat\H&M_BH&cl_nian..dat"
 IF  .NOT. FILE(HZWJ)
 @ 0 , 10 SAY '无汇总数据,不能上报!'
 ?? CHR(7)
 = INKEY(2)
 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()
 @ 0 , 10 SAY '无全部地区汇总数据,不能上报!'
 ?? CHR(7)
 = INKEY(2)
 WJPD = 1
 RETURN 
 ENDIF 
 IF SJDW = 0
 @ 0 , 10 SAY '汇总文件不平,不能上报'
 ?? CHR(7)
 = INKEY(2)
 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 
 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 
  DATWJ="&DD.:S&cl_nian&FF&M_BH..dat"
 IF FILE(DATWJ)
 SELECT 0
  USE &DD.:S&cl_nian&FF&M_BH..dat ALIAS SSS
 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
 SELECT ZHWH1
 USE 
 SELECT ZHWH2
 USE 
 SELECT SSS
 USE 
ENDPROC
*------
PROCEDURE DSB
 DO WHILE .T.
 M_DEMC = ''
 WJPD = 0
 SCWJPD = 0
 IF WJPD = 1
 EXIT 
 ENDIF 
 @ 12 , 8 SAY '正在读入' + FF + '地区' + M_BH + '表' + M_BLX11 + M_BLX22
 WJPD = 0
 DO DSBWJPD
 IF WJPD = 1
 @ 12 , 8 SAY SPACE(53)
 @ 12 , 8 SAY  ;
      '正在读入' + FF + '地区' + M_BH + '表' + M_BLX11 + M_BLX22 + ' 读入错误'
 SCROLL 0 , 0 , 12 , 56 , 1
 EXIT 
 ENDIF 
 WJPD = 0
 SCWJPD = 0
  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
 APPEND FROM DAT\STMP.DAT
 @ 12 , COL() + 1 SAY '读取完毕'
 SCROLL 1 , 0 , 12 , 56 , 1
 ?? CHR(7)
 = INKEY(2)
  SELE B&M_BH&cl_nian&YUE
 USE 
 SELECT STMP
 USE 
 DELETE File dat\stmp.dat
 DELETE File tmp.IDX
 EXIT 
 ENDDO 
 IF SCWJPD = 1
 DELETE File tmp.tmp
 DELETE File t001.tmp
 ENDIF 
 RETURN 
ENDPROC
*------
PROCEDURE WJ2
 PARAMETER DATNAME , M_BH
 SCWJPD = 1
 SELECT 0
 USE lib\BLK.dat
 COPY TO t001.tmp STRUCTURE EXTENDED 
 SELECT 0
 USE t001.tmp ALIAS 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..dat FROM t001.tmp
 SELECT T001
 USE 
 SELECT BLK
 USE 
 SELECT TMP
 USE 
 RETURN 
ENDPROC
*------
PROCEDURE DSBWJPD
  IF !FILES("&DD.:S&cl_nian&FF&M_BH..dat")
 @ 0 , 8 SAY '      上报数据不存在                '
 ?? CHR(7)
 = INKEY(2)
 WJPD = 1
 RETURN 
 ENDIF 
 SELECT 0
  USE &DD.:S&cl_nian&FF&M_BH..DAT  alias sss
 COPY TO dat\stmp.dat FOR BLX1 = M_BLX1 AND BLX2 = M_BLX2
 USE 
 SELECT 0
 USE dat\stmp.dat
 SELECT STMP
 IF EOF()
 @ 0 , 8 SAY '       上报数据不存在               '
 ?? CHR(7)
 = INKEY(2)
 WJPD = 1
 USE 
 DELETE File dat\stmp.dat
 USE 
 RETURN 
 ENDIF 
  IF DQDH#&YUE
 @ 0 , 10 SAY '上报文件非本月数据            '
 ?? CHR(7)
 = INKEY(2)
 WJPD = 1
 USE 
 DELETE File dat\stmp.dat
 SELECT SSS
 USE 
 RETURN 
 ENDIF 
  REPLACE ALL DQDH WITH &FF			
ENDPROC
*------
PROCEDURE DSBWJ
  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=M_BLX1 AND BLX2=M_BLX2	
 IF FOUND()
 YY = 'N'
 ?? CHR(7)
 @ 13 , 2 SAY '此地区数据己存在,是否覆盖(Y/N)?'
 @ 13 , 33 GET YY
 READ 
 @ 13 , 0
 @ 12 , 8 SAY SPACE(53)
 @ 12 , 8 SAY '正在读入' + FF + '地区' + M_BH + '表' + M_BLX11 + M_BLX22
 IF YY = 'N' .OR. YY = 'n'
 @ 12 , COL() + 1 SAY '没有读入'
 SCROLL 0 , 0 , 12 , 56 , 1
 IF USED('STMP')
 SELECT STMP
 USE 
 ENDIF 
  SELE B&M_BH&cl_nian&YUE
 USE 
 DELETE File dat\stmp.dat
 DELETE File tmp.IDX
 WJPD = 1
 RETURN 
 ELSE 
  DELE FOR DQDH=&FF .AND. BLX1=M_BLX1 AND BLX2=M_BLX2	
 PACK 
 ENDIF 
 ENDIF 
ENDPROC
*------*

⌨️ 快捷键说明

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