📄 dpcl1.prg
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: DPCL1.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PROCEDURE DPCL1
IF M_BH = '99'
DO .\src\prg\DPCL42
RETURN
ENDIF
DEFINE WINDOW WINDP_1 FROM 4 , 10 TO 25 , 80 COLOR RGB( 255 , 0 , 0 , 192 , 192 , 192) ;
TITLE '打平处理' PANEL
ACTIVATE WINDOW WINDP_1
PCL_NIAN = RIGHT(NIAN,2)
BDATNAME = 'B' + M_BH + PCL_NIAN + YUE
XMKNAME = 'XM' + M_BH
USE LIB\DP&M_BH..DAT IN 0
USE LIB\DP&M_BH.A.DAT IN 0
DIMENSION HJXDA1( M_LS )
DIMENSION QZXHJ( M_LS )
STORE 1 TO LIN
STORE 0 TO COL
@ 2 , 10 SAY ' 正在打平 ' + LTRIM(STR(M_DQDH)) + ' 地区'
M_DPBZ = 1
DPGSXH = ''
SELECT (BDATNAME)
COPY TO DPTMP FOR DQDH = M_DQDH
SELECT 0
USE DPTMP
INDEX ON XMDH TO DPTMP
SELE DP&M_BH
SCAN
@ 2 , 34 SAY '项目 ' + XMDH
STORE DP&M_BH->FH TO DSFH
HJXMDH = ' '
STORE 0 TO HJXDA1
DO DPLJS
SELE DP&M_BH.A
COPY TO DPGSR FOR XH=DP&M_BH->XH
SELECT 0
USE DPGSR
STORE 0 TO QZXHJ
DO DPRJS
FOR I = 1 TO M_LS
IF DP&M_BH->LS#0 AND DP&M_BH->LS # I
LOOP
ENDIF
SELECT DPTMP
IF FSIZE('DA' + LTRIM(STR(I))) > 6 AND UPPER(TYPE('DA' + LTRIM(STR(I)))) = 'N' AND ;
(MMBZ3 = .T. .OR. HJXDA1(I) = 0)
DO HJJS
ELSE
IF FSIZE("DA"+LTRI(STR(I))) > 6 AND UPPE(TYPE("DA"+LTRI(STR(I))))="N" AND HJXDA1(I)!&DSFH.QZXHJ(I)
CHASHU = ROUND(HJXDA1(I) - QZXHJ(I),2)
IF HJXDA1(I) > QZXHJ(I)
STORE '多' TO DUOSHAO
ELSE
STORE '少' TO DUOSHAO
ENDIF
?? CHR(7)
IF LIN > 13
@ 14 , 0 SAY ''
WAIT
@ 3 , 0 CLEAR TO 16 , 62
LIN = 1
ENDIF
@ LIN + 2 , COL SAY SPACE(55)
@ LIN + 2 , COL SAY ;
'(' + ALLTRIM(DPGSXH) + ') ' + '合计项 ' + HJXMDH + '第 ' + LTRIM(STR(I)) + ;
' 栏比其中项' + DUOSHAO
@ LIN + 2 , COL + 39 SAY ABS(CHASHU) PICTURE '999,999,999,999,999.99'
LIN = LIN + 1
M_DPBZ = 0
ENDIF
ENDIF
ENDFOR
SELECT DPGSR
USE
ENDSCAN
IF M_YCBZA = .T.
SELECT (XMKNAME)
SCAN FOR HDBZ = .T.
M_XMDH = XMDH
SELECT DPTMP
DO .\src\prg\DPCL2
SELECT (XMKNAME)
ENDSCAN
ENDIF
SELECT (BDATNAME)
REPLACE SJDW WITH M_DPBZ FOR ;
XMDH = 'dpbz' AND DQDH = M_DQDH AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
?? CHR(7)
?? CHR(7)
IF M_DPBZ = 1
@ 7 , 16 SAY ' 数 据 正 确!'
@ 14 , 16 SAY ' 打 平 完 毕!'
WAIT
ELSE
@ 12 , 16 SAY ' 打 平 完 毕!'
WAIT
ENDIF
DEACTIVATE WINDOW WINDP_1
RELEASE WINDOW WINDP_1
SELE DP&M_BH
USE
SELE DP&M_BH.A
USE
SELECT DPTMP
USE
RETURN
ENDPROC
*------
PROCEDURE DPLJS
SELECT DPTMP
SEEK DP&M_BH->XMDH
SCAN FOR XMDH=DP&M_BH->XMDH AND BLX1=M_BLX1 AND BLX2=M_BLX2
STORE XMDH TO HJXMDH
store str(dp&m_bh->xh,5) to dpgsxh
SCATTER MEMVAR
FOR I = 1 TO M_LS
IF DP&M_BH->LS # 0 AND DP&M_BH->LS # I
LOOP
ENDIF
IF FSIZE('DA' + LTRIM(STR(I))) > 6 AND UPPER(TYPE('DA' + LTRIM(STR(I)))) = 'N'
AA = 'M.DA' + LTRIM(STR(I))
HJXDA1(I)=&AA
ENDIF
ENDFOR
EXIT
ENDSCAN
ENDPROC
*------
PROCEDURE DPRJS
SCAN
SELECT DPTMP
SEEK DPGSR.XMDH
SCAN FOR XMDH = DPGSR.XMDH AND BLX1 = M_BLX1 AND BLX2 = M_BLX2
SCATTER MEMVAR
FOR I = 1 TO M_LS
IF DP&M_BH->LS # 0 AND DP&M_BH->LS # I
LOOP
ENDIF
IF FSIZE('DA' + LTRIM(STR(I))) > 6 AND UPPER(TYPE('DA' + LTRIM(STR(I)))) = 'N'
DO CASE
CASE DPGSR.FH = '+'
AA = 'M.DA' + LTRIM(STR(I))
QZXHJ(I)=ROUND(QZXHJ(I)+&AA,2)
CASE DPGSR.FH = '-'
AA = 'M.DA' + LTRIM(STR(I))
QZXHJ(I)=ROUND(QZXHJ(I)-&AA,2)
ENDCASE
ENDIF
ENDFOR
EXIT
ENDSCAN
ENDSCAN
RETURN
ENDPROC
*------
PROCEDURE HJJS
SELECT (BDATNAME)
DATX = 'DA' + LTRIM(STR(I))
REPL (DATX) WITH QZXHJ(I) FOR XMDH=DP&M_BH->XMDH AND DQDH=M_DQDH AND BLX1=M_BLX1 AND BLX2=M_BLX2
SELECT DPTMP
REPL (DATX) WITH QZXHJ(I) FOR XMDH=DP&M_BH->XMDH AND DQDH=M_DQDH AND BLX1=M_BLX1 AND BLX2=M_BLX2
RETURN
ENDPROC
*------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -