📄 jscl.prg
字号:
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* 文件名: JSCL.PRG <-- 本文件由 UnFoxAll 创建
* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PARAMETER J_BH , J_LX , J_YK , J_YEA , J_MON , J_ARE1
IF LEN(J_YEA) > 2
J_YEA = SUBSTR(J_YEA,3)
ENDIF
JSF_B = '.\LIB\JS1.DAT'
JSF_Z = '.\LIB\JS2.DAT'
JSF_M = '.\LIB\JS3.DAT'
OPBZLBZ = 0
IF .NOT. FILE(JSF_B)
?? CHR(7)
?? CHR(7)
WAIT WINDOW '计算文件SJ1不存在!'
RETURN
ENDIF
IF .NOT. FILE(JSF_Z)
?? CHR(7)
?? CHR(7)
WAIT WINDOW '计算文件JS2不存在!'
RETURN
ENDIF
IF .NOT. FILE(JSF_M)
?? CHR(7)
?? CHR(7)
WAIT WINDOW '计算文件JS3不存在!'
RETURN
ENDIF
IF .NOT. USED('BZL')
SELECT 0
USE ('.\LIB\BZL.dat')
OPBZLBZ = 1
ENDIF
SELECT BZL
GO TOP
LOCATE FOR BH = J_BH
STORE LX TO YK
USE IN 0 (JSF_B)
USE IN 0 (JSF_Z)
USE IN 0 (JSF_M)
SELECT JS1
LOCATE FOR BH = J_BH
IF FOUND()
WAIT WINDOW NOCLEAR NOWAIT '正在进行比率计算, 请稍候 ... '
ENDIF
SCAN FOR BH = J_BH
DO CASE
CASE DW = 0
BIDW = 1
CASE DW = 1
BIDW = 0
CASE DW = 2
BIDW = 2
CASE DW = 3
BIDW = 3
CASE DW = 4
BIDW = -1
ENDCASE
STORE 0 TO FENZI , FENMU , YICI
FU1 = 0
DO JS2_SUM
IF FU1 = 1
EXIT
ENDIF
FU1 = 0
DO JS3_SUM
IF FU1 = 1
EXIT
ENDIF
IF FENMU <> 0
BI = ROUND(FENZI * 100 ** (BIDW) / FENMU,2)
ELSE
BI = 0
ENDIF
SELE B&J_BH&J_YEA&J_MON
GO TOP
IF YK = .T.
LOCATE FOR DQDH = J_ARE1 AND BLX1 = J_LX AND BLX2 = J_YK AND XMDH = JS1.XMDH
ELSE
LOCATE FOR DQDH = J_ARE1 AND XMDH = JS1.XMDH AND BLX1 = J_LX
ENDIF
IF .NOT. EOF()
SCATTER TO B_DAT
STORE BI TO B_DAT( 5 + JS1.LS )
GATHER FROM B_DAT
ENDIF
SELECT JS1
ENDSCAN
WAIT CLEAR
IF OPBZLBZ = 1
SELECT BZL
USE
ENDIF
SELECT JS1
USE
SELECT JS2
USE
SELECT JS3
USE
RETURN
PROCEDURE JS2_SUM
SELECT JS2
SCAN FOR XH = JS1.XH
JSFH = FH
SELECT BZL
LOCATE FOR BH = JS2.BH
STORE LX TO Z_YK
SJWJ = 'B' + JS2.BH + J_YEA + J_MON
IF !USED("&SJWJ")
IF !FILE("DAT\&SJWJ..DAT")
?? CHR(7)
?? CHR(7)
WAIT WINDOW (SJWJ) + '文件不存在,比率不能计算!'
FU1 = 1
RETURN
ELSE
USE DAT\&SJWJ..DAT IN 0
ENDIF
ENDIF
SELE &SJWJ
GO TOP
IF Z_YK = .T.
LOCATE FOR DQDH = J_ARE1 AND BLX1 = J_LX AND BLX2 = J_YK AND XMDH = JS2.XMDH
ELSE
LOCATE FOR DQDH = J_ARE1 AND XMDH = JS2.XMDH AND BLX1 = J_LX
ENDIF
SCATTER TO Z_DAT
IF YICI = 0
STORE JS2.DW TO YICI
ENDIF
CHA = YICI - JS2.DW
DO CASE
CASE CHA > 0
Z_DAT( 5 + JS2.LS ) = Z_DAT(5 + JS2.LS) / 10 ** CHA
CASE CHA = 0
Z_DAT( 5 + JS2.LS ) = Z_DAT(5 + JS2.LS)
CASE CHA < 0
Z_DAT( 5 + JS2.LS ) = Z_DAT(5 + JS2.LS) / 10 ** CHA
ENDCASE
FENZI=ROUND(FENZI&JSFH+Z_DAT(5+JS2->LS),2)
IF JS1.BH <> JS2.BH
USE
ENDIF
ENDSCAN
ENDPROC
*------
PROCEDURE JS3_SUM
SELECT JS3
SCAN FOR XH = JS1.XH
JSFH = FH
SELECT BZL
LOCATE FOR BH = JS3.BH
STORE LX TO M_YK
SJWJ = 'B' + JS3.BH + J_YEA + J_MON
IF !USED("&SJWJ")
IF !FILE("DAT\&SJWJ..DAT")
?? CHR(7)
?? CHR(7)
WAIT WINDOW (SJWJ) + '文件不存在,比率不能计算!!'
FU1 = 1
RETURN
ELSE
USE DAT\&SJWJ..DAT IN 0
ENDIF
ENDIF
SELE &SJWJ
GO TOP
IF M_YK = .T.
LOCATE FOR DQDH = J_ARE1 AND BLX1 = J_LX AND BLX2 = J_YK AND XMDH = JS3.XMDH
ELSE
LOCATE FOR DQDH = J_ARE1 AND XMDH = JS3.XMDH AND BLX1 = J_LX
ENDIF
SCATTER TO M_DAT
IF YICI = 0
STORE JS3.DW TO YICI
ENDIF
CHA = YICI - JS3.DW
DO CASE
CASE CHA > 0
M_DAT( 5 + JS3.LS ) = M_DAT(5 + JS3.LS) / 10 ** CHA
CASE CHA = 0
M_DAT( 5 + JS3.LS ) = M_DAT(5 + JS3.LS)
CASE CHA < 0
M_DAT( 5 + JS3.LS ) = M_DAT(5 + JS3.LS) / 10 ** CHA
ENDCASE
FENMU=ROUND(FENMU&JSFH+M_DAT(5+JS3->LS),2)
IF JS1.BH <> JS3.BH
USE
ENDIF
ENDSCAN
ENDPROC
*------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -