📄 dfjs.bak
字号:
**********************************
* *
* 电费计算过程文件 dfjs.dbf *
* *
**********************************
PUBLIC MHH,MREC
PROC CB_JSSYDL &&****** 计算实用电量*******************************************************************************
PRIV BRL
SELE LS_DF &&LS_DF.DBF
REPL DL WITH 0
REPL DF WITH 0
REPL FJF1 WITH 0
REPL FJF2 WITH 0
REPL FJF3 WITH 0
REPL FJF4 WITH 0
REPL FJF5 WITH 0
REPL FJF6 WITH 0
REPL FJF7 WITH 0
REPL FJF8 WITH 0
REPL JBDF WITH 0
REPL TZDF WITH 0
REPL SYDL WITH 0
REPL FBDL WITH 0
REPL BS WITH 0
REPL XS WITH 0
REPL WGBS WITH 0
If UPPER(ZBBZ)=='1'
REPL SYDL WITH (CM2-ZB+CB-CM1)*VAL(BL)*DLB/100
Else
BRL=0
IF CM2<CM1
IF CM1<=1000
BRL=1000
Endi
IF CM1>1000 .AND. CM1<=10000
BRL=10000
ENDI
IF CM1>10000
BRL=100000
ENDI
ENDI
REPL SYDL WITH (CM2+BRL-CM1)*VAL(BL)*DLB/100
Endi
RELEASE BRL
ENDPROC
PROC CB_JSYGDL &&******* 计算总有功电量*******************************************************************************
PRIV FN,MHH,FBDL1,MREC
SELE LS_DF
IF UPPER(YGBZ)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SELE 9
USE
USE YG1
if used ("ls_js")
use in ls_js
endif
copy to ls_js for ALLT(BELONG)==MHH
sele 8
use
use ls_js
go top
FBDL1=0
DO WHILE !EOF()
SELE LS_DF
LOCA FOR ALLT(HH)==ALLT(LS_JS.HH) && 8
IF FOUND()
FBDL1=FBDL1+SYDL+XS
SELE YG1
LOCA FOR ALLT(HH)==ALLT(LS_DF.HH)
REPL SYDL WITH LS_DF.SYDL+LS_DF.XS
ENDI
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
REPL SYDL WITH SYDL+FBDL1
ENDIF
ENDPROC
PROC CB_JSFBDL &&****** 计算分表电量*******************************************************************************
PRIV BB,MHH,FILE9,FBDL1,BCZMFB1
SELE LS_DF
IF UPPER(FBBZ)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SELE 9
USE
USE FB1.DBF
if used ("ls_js")
use in ls_js
endif
copy to ls_js for ALLT(BELONG)==MHH
sele 8
use
use ls_js
go top
FBDL1=0
BCZMFB1=0
DO WHILE !EOF()
SELE FB1
loca for ALLT(hh)==MHH
REPL SYDL WITH 0
SELE LS_DF
LOCA FOR ALLT(HH)==ALLT(LS_JS.HH)
IF FOUND() .AND. ZBBZ<>"N"
FBDL1=FBDL1+SYDL+GSDD+ZBDL &&实用电量+固收电度+追补电量
SELE FB1
LOCA FOR ALLT(HH)==ALLT(LS_DF.HH)
REPL SYDL WITH A.SYDL+A.GSDD+A.ZBDL
ENDI
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
REPL FBDL WITH FBDL1
ENDIF
ENDPROC
PROC CB_JSWGDL &&********* 计算无功电量*******************************************************************************
PRIV MHH,FILE9,FBDL1,WGFBDL1
SELE LS_DF
IF UPPER(WGBZ)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SELE 9
USE
USE WG1.DBF
if used ("ls_js")
use in ls_js
endif
copy to ls_js for ALLT(BELONG)==MHH
sele 8
use
use ls_js
go top
FBDL1=0
WGFBDL1=0
DO WHILE !EOF()
SELE LS_DF
LOCA FOR ALLT(HH)==ALLT(LS_JS.HH)
IF FOUND()
FBDL1=FBDL1+SYDL+GSDD+GSBS+ZBDL
WGFBDL1=WGFBDL1+FBDL
SELE WG1
LOCA FOR ALLT(HH)==ALLT(LS_DF.HH)
REPL SYDL WITH LS_DF.SYDL+LS_DF.GSDD+LS_DF.GSBS+LS_DF.ZBDL
ENDI
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
REPL WGDL WITH FBDL1
REPL WGFBDL WITH WGFBDL1
ENDIF
ENDPROC
PROC CB_JSBS &&****** 计算变损*******************************************************************************
PRIV MHH,RL1,SYDL1,BYQXH1
PRIV LS,BS1,BS2
******** 查变损,用FILE1传递区号文件名
SELE LS_DF
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
RL1=BZRL
SYDL1=SYDL
BYQXH1=ALLT(BYQXH)
SELE 9
USE
USE BYQ
LOCA FOR ALLT(BZ)==BYQXH1
IF FOUND() .AND. RL1>0
SELE 9
USE
LS='TAB'+BYQXH1
USE &LS
LOCA FOR RL>=RL1 .AND. YL>=SYDL1
BS1=YG
BS2=WG
SELE LS_DF
LOCA FOR ALLT(HH)==MHH
REPL BS WITH BS1*(30-tdts)/30
REPL WGBS WITH BS2*(30-tdts)/30
ENDI
USE IN 9
SELE LS_DF
GO MREC
ENDPROC
PROC CB_FTBS1 &&****** 变损分摊1*******************************************************************************
PRIV FILE1,MHH,SYDL1 && ******** 将变损BS1.DBF 填上实用电度SYDL
SELE LS_DF
IF UPPER(BSFTBZ)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SELE 9
USE
USE BS1.DBF
if used("ls_js")
use in ls_js
endif
copy to ls_js for allt(BELONG)==MHH
sele 8
use
use ls_js
go top
DO WHILE !EOF()
SELE LS_DF
LOCA FOR allt(HH)==allt(LS_JS.HH)
IF FOUND()
SYDL1=SYDL-FBDL+ZBDL
SELE BS1
LOCA FOR ALLT(HH)==ALLT(LS_DF.HH)
REPL SYDL WITH SYDL1
ENDIF
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
ENDIF
ENDPROC
PROC CB_FTBS2 &&****** 变损分摊2*******************************************************************************
PRIV MHH,FILE1,BSDL1,ZDL
******** 用变损BS.DBF 实用电度SYDL 进行变损分摊
SELE LS_DF
IF UPPER(BSFTBZ)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
BSDL1=BS+GSBS
QH1=SUBS(HH,1,4)
SELE 9
USE
USE BS1.DBF EXCL
SUM SYDL TO ZDL for allt(belong)==MHH
IF ZDL<>0
REPL ALL BS WITH VAL(STR(BSDL1*SYDL/ZDL,8)) for allt(belong)==MHH
ENDI
if used ("ls_js")
use in ls_js
endif
copy to ls_js for allt(BELONG)==MHH
sele 8
use
use ls_js
go top
DO WHILE !EOF()
SELE LS_DF
LOCA FOR allt(HH)==allt(LS_JS.HH)
IF FOUND()
REPL BS WITH LS_JS.BS
ENDI
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
ENDIF
ENDPROC
PROC CB_FTXS1 &&****** 计算线损并分摊1*******************************************************************************
PRIV MHH,FILE1,SYDL1
******** 将线损XS.DBF 填上实用电度SYDL
SELE LS_DF
IF UPPER(XSZB)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SELE 9
USE
USE XS1.DBF
if used ("ls_js")
use in ls_js
endif
copy to ls_js for allt(BELONG)==MHH
sele 8
use
use ls_js
go top
DO WHILE !EOF()
SELE LS_DF
LOCA FOR allt(HH)==allt(LS_JS.HH)
IF FOUND()
SYDL1=SYDL-FBDL+ZBDL
SELE XS1
LOCA FOR ALLT(HH)==ALLT(LS_DF.HH)
REPL SYDL WITH SYDL1
sele LS_JS
SKIP
ENDIF
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
ENDIF
ENDPROC
PROC CB_FTXS2 &&****** 计算线损并分摊2*******************************************************************************
PRIV MHH,FILE1,SYDL1,ZXS,ZDL,XS1
SELE LS_DF
IF UPPER(XSZB)=='1'
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
SYDL1=(SYDL+zbdl)-FBDL
SELE 9
USE
USE XS1.DBF EXCL
SUM SYDL TO ZDL FOR allt(BELONG)==MHH
ZXS=SYDL1-ZDL
IF ZXS<0
ZXS=0
ENDI
IF ZDL<>0
REPL ALL XS WITH VAL(STR(ZXS*SYDL/ZDL,8)) FOR allt(BELONG)==MHH
ENDIF
if used ("ls_js")
use in ls_js
endif
copy to ls_js for allt(BELONG)==MHH
sele 8
use
use ls_js
go top
DO WHILE !EOF()
SELE LS_DF
LOCA FOR allt(HH)==allt(LS_JS.HH)
IF FOUND()
REPL XS WITH LS_JS.XS
ENDI
SELE LS_JS
SKIP
ENDDO
USE IN 9
USE IN 8
SELE LS_DF
GO MREC
ENDIF
ENDPROC
PROC CB_JSLL &&****** 计算力率.比值.调整率*******************************************************************************
PRIV MHH
********* 王志华1994年7月29日说: 无论分表是本厂的还是其他转供表,
********* 在计算力率时一律不减分表
********* 蒋林峰 1994.8.29 不是本厂的, 要减, 是本厂的, 不减!
********* 终于在1994.11.11 王中志华写来条子, 罗桂新签字同意, 以下
********* 算法就是根据条子来计算的(线损不参加力调)
SELE LS_DF
IF upper(jfbz)<>"N" .and. upper(zbbz)<>"N"
MREC=RECNO()
MHH=ALLT(LS_DF.HH)
IF UPPER(WGBZ)=='1' .AND. !EMPTY(LLBZ)
******* 计算比值
REPL bz with 0
REPL LL WITH 0
REPL TZL WITH 0
REPL TZDF WITH 0
IF VAL(LLBZ)<>0 .AND. (SYDL+bs+gsdd+gsbs-fbdl+bczmfb)<>0
REPL BZ WITH (WGDL+WGBS-WGFBDL)/(SYDL+BS+GSDD+gsbs-FBDL+BCZMFB+XS)
ENDIF
IF BZ>199.9976
REPL BZ WITH 199.9976
ENDIF
IF BZ<0
REPL BZ WITH 0
ENDIF
********* 查力率
MLS="TZ"+LS_DF.LLBZ
SELE 9
USE
USE TAB EXCL
LOCA FOR BZ>=LS_DF.BZ
SELE LS_DF
LOCA FOR ALLT(HH)==MHH
REPL LL WITH TAB.LL/100.00
REPL TZL WITH TAB.&MLS/100.00
USE IN 9
ENDIF
SELE LS_DF
GO MREC
ENDIF
ENDPROC
PROC CB_JSDD &&******计算计费电度*******************************************************************************
SELE LS_DF
IF BSL<>0 .AND. SYDL>=VAL(DD)
REPL BS WITH SYDL*BSL/100
ENDIF
REPL DL WITH (SYDL+BS+XS+GSDD+GSBS+ZBDL-FBDL)
IF (SYDL+GSDD+ZBDL)<VAL(DD) .AND. ZBDL>=0
REPL DL WITH VAL(DD)+BS+XS+GSBS
ENDIF
IF (SYDL+GSDD)<VAL(DD) .AND. ZBDL<0
REPL DL WITH VAL(DD)+BS+XS+GSBS
ENDIF
IF DL<=VAL(DD)
REPL DL WITH VAL(DD)
ENDIF
IF UPPER(JFBZ)="N" .OR. DL<=0 .OR. UPPER(ZBBZ)="N"
REPL DL WITH 0
ENDIF
ENDPROC
PROC CB_JSDF &&******计算电费*******************************************************************************
PRIV YEAR,MONTH,DAY
YEAR=SUBS(DTOC(DATE()),7,2)
MONTH=SUBS(DTOC(DATE()),1,2)
DAY=SUBS(DTOC(DATE()),4,2)
SELE LS_DF
if upper(jfbz)<>"N" .and. upper(zbbz)<>"N"
REPL JBDF WITH JFRL*RLDJ*(30-tdts)/30
REPL DDDF WITH DL*DDDJ
REPL FJF1 WITH DL*FJDJ1
REPL FJF2 WITH DL*FJDJ2
REPL FJF3 WITH (DL-ydq)*FJDJ3
if fjf3<0
repl fjf3 with 0
endi
IF (SYDL+BS)=0
REPL LL WITH 0
REPL TZL WITH 0
ENDI
REPL FJF4 WITH DL*FJDJ4
REPL FJF5 WITH DL*FJDJ5
JZDF=FJDJ2*DL
REPL TZDF WITH (JBDF+JZDF)*TZL/100.00
REPL FJF6 WITH dl*fjdj6
REPL FJF7 WITH DL*FJDJ7
repl fjf8 with dl*fjdj8
*************四舍五入调整***************************************
REPL FJF2 WITH DL*(FJDJ1+FJDJ2+FJDJ3+FJDJ4+FJDJ5+FJDJ6+FJDJ7+FJDJ8)-(FJF1+FJF3+FJF4+FJF5+FJF6+FJF7+FJF8) &&在基准电价项中调整
****************************************************************
*************力率调整电费只罚不奖*******************************
* 2002.07.18上午10:00,龙子勋(客户服务中心主任)
* 打电话说经蒋士斌(分管副总经理)同意力率调整电费只罚不奖。
****************************************************************
* 2003.01.03下午16:00,龙子勋(客户服务中心主任)
* 相关厂矿已安装新的无功计量表,取消只罚不奖的计算方式。
****************************************************************
*!* IF TZDF<0
*!* REPL TZDF WITH 0,TZL WITH 0
*!* ENDIF
****************************************************************
REPL DF WITH DDDF+FJF1+FJF2+FJF3+FJF4+FJF5+FJF6+JBDF+TZDF+FJF7+FJF8
YEAR1=STR(YEAR(DATE()),4) &&系统日期
IF MONTH(DATE())<10
MONTH1='0'+ALLTRIM(STR(MONTH(DATE()),2))
ELSE
MONTH1=STR(MONTH(DATE()),2)
ENDIF
IF DAY(DATE())<10
DAY1='0'+ALLT(STR(DAY(DATE()),2))
ELSE
DAY1=STR(DAY(DATE()),2)
ENDIF
REPL N WITH subs(YEAR1,3,2)
REPL Y WITH MONTH1
REPL R WITH DAY1
ENDIF
ENDPROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -