📄 n-zz.zrg
字号:
*********************
* *
* ZZDBASE 语言 *
* *
* 抄表程序 *
* *
* 兴安县供公司 *
* *
*********************
*****数据库结构说明*****
DEFINE database a
hh:c,8
hm:c,20
dz:c,20
gh:c,5
dl1:c,3
dl2:c,2
bh:c,8
ch:c,5
rq:c,6
cm1:n,9,2
cm2:n,9,2
zbbz:c,1
zb:n,8,2
zbdl:n,8
df:n,10,2
cb:n,8,2
dddj:n,7,5
bl:c,5
DL:N,8
SYDL:N,8
zdj:n,10,8
dd:c,5
gsbs:n,5
FJDJ1:N,7,5
FJDJ2:N,7,5
FJDJ3:N,7,5
FJDJ4:N,7,5
FJDJ5:N,7,5
FJDJ6:N,2
FJDJ7:N,7,5
enddef
*****变量设定****
DEFINE VAR
HH1:C,8
CH1:C,5
BH1:C,8
SYBZ:C,1
FLAG:N,1,0
NUM:N,3,0
C:N,3,0
RR:N,3,0
KEY:C,1
KEY1:C,1
KEY2:C,1
KEY3:C,1
KEY4:C,1
KEY5:C,1
C1:C,1
C2:C,1
QH1:C,3
HH2:C,8
DF1:N,10,2
DF2:N,10,2
DF3:N,10,2
DF4:N,10,2
DF5:N,10,2
DF6:N,10,2
DF7:N,10,2
CHOISE:C,1
DL3:N,8,1
SYDL1:N,8
ZBDL1:N,8
BW:N,1
BL1:C,5
I:N,1
N:N,1
jqh:C,8
ENDDEF
*****抄表子程序*****
PROCEDURE M
SELECT A
SET MODE TO 1
CLEAR
@ 0,0 SAY HH
@ 0,9 SAY "号"
@ 0,12 SAY "厂号:"+CH
@ 1,0 SAY "表号"+BH
@ 1,11 SAY "价"+STR(ZDJ,7,5)
@ 2,0 SAY DZ
*****SYBZ判断子程序*****
SYBZ=ZBBZ
REPLACE ZBBZ WITH "N"
IF SYBZ="1"
@2,0 SAY "该户上月换表!"
ENDIF
IF SYBZ="2"
@2,0 SAY "该户上月估抄!"
ENDIF
IF SYBZ="3"
@2,0 SAY "该户表不见!"
ENDIF
IF SYBZ="4"
@2,0 SAY "该户上月私自移表!"
ENDIF
IF SYBZ="5"
@2,0 SAY "该户上月表烧!"
ENDIF
IF SYBZ="6"
@2,0 SAY "该户上月表停!"
ENDIF
IF SYBZ="7"
@2,0 SAY "该户上月表反转!"
ENDIF
IF SYBZ="8"
@2,0 SAY "该户上月已催费!"
ENDIF
IF SYBZ="9"
@2,0 SAY "该户上月欠费拆表!"
ENDIF
@ 3,0 SAY "码" GET CM2
@3,12 SAY CM1
READ
IF CM2>CM1
DL3=CM2-CM1
else
IF CM2=0
RETURN
else
IF CM2=CM1
DL3=VAL(DD)
REPLACE DL WITH DL3
ELSE
IF (100000<=CM1) AND (CM2<CM1)
DL3=(CM2+1000000)-CM1
BW=CM1/100000
else
IF (10000<CM1) AND (CM1<100000) AND (CM2<CM1)
DL3=(CM2+100000)-CM1
BW=CM1/10000
else
IF (CM1<10000) AND (CM2<CM1)
DL3=CM2+10000-CM1
BW=CM1/1000
ENDIF
endif
endif
endif
endif
endif
IF (DL3*VAL(BL))>VAL(DD)
REPLACE DL WITH DL3
ELSE
DL3=VAL(DD)
REPLACE DL WITH DL3
ENDIF
IF DL3=VAL(DD)
@2,0 SAY "月"+STR(DL3,8,1)+"×"+BL+"+"+STR(GSBS,5)
*SYDL1=DL3+GSBS
*REPLACE SYDL WITH SYDL1
*@2,10 SAY "实"+STR(SYDL,8)
ELSE
IF (DDDJ<>0.06)
@2,0 SAY "月"+STR(DL3,8,1)
SYDL1=DL3*VAL(BL)+GSBS
REPLACE SYDL WITH SYDL1
@2,10 SAY "实"+STR(SYDL,8)
ELSE
DL3=DL3-100
@2,0 SAY "职工表:"+STR(DL3,8,1)
ENDIF
ENDIF
REPLACE ZBBZ WITH "0"
WAIT " "
return
ENDPRO
*****计算的输机子程序*****
PROCEDURE A
SELECT A
SET MODE TO 1
CLEAR
@ 0,0 SAY HH
@ 0,9 SAY "号"
@ 0,12 SAY "厂号:"+CH
@ 1,0 SAY HM
@ 2,0 SAY DZ
*****SYBZ判断子程序*****
SYBZ=ZBBZ
REPLACE ZBBZ WITH "N"
IF SYBZ="1"
@2,0 SAY "该户上月换表!"
ENDIF
IF SYBZ="2"
@2,0 SAY "该户上月估抄!"
ENDIF
IF SYBZ="3"
@2,0 SAY "该户表不见!"
ENDIF
IF SYBZ="4"
@2,0 SAY "该户上月私自移表!"
ENDIF
IF SYBZ="5"
@2,0 SAY "该户上月表烧!"
ENDIF
IF SYBZ="6"
@2,0 SAY "该户上月表停!"
ENDIF
IF SYBZ="7"
@2,0 SAY "该户上月表反转!"
ENDIF
IF SYBZ="8"
@2,0 SAY "该户上月已催费!"
ENDIF
IF SYBZ="9"
@2,0 SAY "该户上月欠费拆表!"
ENDIF
@ 3,0 SAY "码" GET CM2
@3,12 SAY CM1
READ
IF CM2>CM1
DL3=CM2-CM1
else
IF CM2=0
RETURN
else
IF CM2=CM1
DF2=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ2+(VAL(DD)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ4+(VAL(DD)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ*FJDJ6*1/100+(VAL(DD)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
DL3=VAL(DD)
REPLACE DL WITH DL3
ELSE
IF (100000<=CM1) AND (CM2<CM1)
DL3=(CM2+1000000)-CM1
BW=CM1/100000
else
IF (10000<CM1) AND (CM1<100000) AND (CM2<CM1)
DL3=(CM2+100000)-CM1
BW=CM1/10000
else
IF (CM1<10000) AND (CM2<CM1)
DL3=CM2+10000-CM1
BW=CM1/1000
ENDIF
endif
endif
endif
endif
endif
IF (DL3*VAL(BL))>VAL(DD)
REPLACE DL WITH DL3
DF2=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ2+(DL3*VAL(BL)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ4+(DL3*VAL(BL)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ*FJDJ6*1/100+(DL3*VAL(BL)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
ELSE
DL3=VAL(DD)
REPLACE DL WITH DL3
DF2=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ2+(VAL(DD)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ4+(VAL(DD)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ*FJDJ6*1/100+(VAL(DD)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
ENDIF
IF DL3=VAL(DD)
@2,0 SAY STR(DL3,8)+"+"+STR(GSBS,5)+"="
*@2,0 SAY "月"+STR(DL3,8,1)
SYDL1=DL3+GSBS
REPLACE SYDL WITH SYDL1
@2,12 SAY STR(SYDL,8)
@3,11 SAY " "
@3,11 SAY DF
ELSE
IF (DDDJ<>0.06)
@1,0 SAY STR(DL3,8)+"×"+STR(VAL(BL),5)+"="
@2,0 SAY STR(DL3*VAL(BL),8)+"+"+STR(GSBS,5)+"="
@3,0 say " "
@3,0 SAY STR((DL3*VAL(BL)+GSBS),7)
*@2,0 SAY "月"+STR(DL3,8,1)
SYDL1=DL3*VAL(BL)+GSBS
REPLACE SYDL WITH SYDL1
*@2,12 SAY STR(SYDL,8)
@3,11 SAY " "
@ 3,11 SAY DF
ELSE
DL3=DL3-100
DF1=VAL(STR(ROUND((DL3*DDDJ),2),10,2))
REPLACE DF WITH DF1
@2,0 SAY "职工表:"+STR(DL3,8,1)
@3,11 SAY " "
@3,11 SAY DF
ENDIF
ENDIF
REPLACE ZBBZ WITH "0"
WAIT " "
return
ENDPRO
*****换表子程序******
PROCEDURE C
SET MODE TO 1
SELECT A
CLEAR
BL1=BL
@0,0 SAY "电流范围:" GET DL1
@0,15 SAY "到" GET DL2
@1,0 SAY "倍率:" GET BL
@1,12 SAY "厂号" GET CH
@2,0 SAY HH
@2,10 SAY "表号" GET BH
@3,0 SAY "日期" GET RQ
@3,10 SAY "变损" GET GSBS
READ
CLEAR
@0,0 SAY "拆" GET CB
@1,0 SAY "装" GET ZB
@2,0 SAY "抄表码:" GET CM2
@3,0 SAY "工号" GET GH
@3,9 SAY "追补" GET ZBDL
READ
IF (CB=CM1) AND (CM2>ZB)
DL3=ROUND(CM2-ZB,1)
ELSE
IF CM2=0
RETURN
ELSE
IF CM2>ZB
IF (CB>CM1)
DL3=ROUND(CM2-ZB+CB-CM1,1)
ELSE
IF (CB<CM1) AND (100000<=CM1)
DL3=ROUND(CM2-ZB+CB+1000000-CM1,1)
ELSE
IF (CB<CM1) AND (10000<=CM1) AND (CM1<100000)
DL3=ROUND(CM2-ZB+CB+100000-CM1,1)
ELSE
IF (CB<CM1) AND (CM1<10000)
DL3=ROUND(CM2-ZB+CB+10000-CM1,1)
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF (CB>CM1) AND (CM2=ZB)
DL3=ROUND(CB-CM1,1)
ELSE
IF CM2=ZB
IF (CB>CM1) AND (100000<=CM1)
DL3=ROUND(CB+1000000-CM1,1)
ELSE
IF (10000<=CM1) AND (CM1<100000) AND (CB<CM1)
DL3=ROUND(CB+100000-CM1,1)
ELSE
IF (CM1<10000) AND (CB<CM1)
DL3=ROUND(CB+10000-CM1,1)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
IF (DL3*VAL(BL))<VAL(DD)
DL3=VAL(DD)
DF2=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ2+(VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ4+(VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*DDDJ*FJDJ6*1/100),2),10,2))
DF7=VAL(STR(ROUND(((VAL(DD)*VAL(BL)+ZBDL+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6+DF7
@2,0 SAY "月"+STR(DL,8)
SYDL1=DL3*VAL(BL)+ZBDL+GSBS
REPLACE SYDL WITH SYDL1
@2,10 SAY "实"+STR(SYDL,8)
@3,11 SAY " "
@ 3,11 SAY DF
WAIT " "
CLEAR
ENDIF
DF2=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*FJDJ2+(DL3*VAL(BL)+ZBDL+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*FJDJ4+(DL3*VAL(BL)+ZBDL+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*DDDJ*FJDJ6*1/100),2),10,2))
DF7=VAL(STR(ROUND(((DL3*VAL(BL)+ZBDL+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6+DF7
replace df with df1
REPLACE DL WITH DL3
IF DDDJ<>0.06
@2,0 SAY "月"+STR(DL3,8,1)
SYDL1=DL3*VAL(BL)+ZBDL+GSBS
REPLACE SYDL WITH SYDL1
@2,10 SAY "实"+STR(SYDL,8)
@3,11 SAY " "
@ 3,11 SAY DF
ELSE
DL3=DL3-100
DF1=VAL(STR(ROUND((DL3*DDDJ),2),10,2))
REPLACE DF WITH DF1
@2,0 SAY "职工表:"+STR(DL3,8,1)
@3,11 SAY " "
@3,11 SAY DF
ENDIF
REPLACE ZBBZ WITH "1"
WAIT " "
CLEAR
RETURN
ENDPRO
******锁门估抄子程序*******
PROCEDURE D
CLEAR
SET MODE TO 1
SELECT A
@0,0 SAY HM
@1,0 SAY DZ
@2,0 SAY "上月码:"+STR(CM1,8,2)
@1,14 SAY STR(DL,4)
@3,0 SAY "码" GET CM2
READ
IF CM2>CM1
DL3=ROUND(CM2-CM1,1)
else
IF CM2=0
RETURN
else
IF CM2=CM1
DF2=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ2+(VAL(DD)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ4+(VAL(DD)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ*FJDJ6*1/100+(VAL(DD)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
@3,11
@3,11 SAY DF
WAIT " "
RETURN
else
IF (100000<=CM1) AND (CM2<CM1)
DL3=(CM2+1000000)-CM1
else
IF (10000<CM1) AND (CM1<100000) AND (CM2<CM1)
DL3=(CM2+100000)-CM1
else
IF (CM1<10000) AND (CM2<CM1)
DL3=CM2+10000-CM1
ENDIF
endif
endif
endif
endif
endif
IF (DL3*VAL(BL))>VAL(DD)
REPLACE DL WITH DL3
DF2=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ2+(DL3*VAL(BL)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ4+(DL3*VAL(BL)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ*FJDJ6*1/100+(DL3*VAL(BL)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
ELSE
DL3=VAL(DD)
REPLACE DL WITH DL3
DF2=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ2+(VAL(DD)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ4+(VAL(DD)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ*FJDJ6*1/100+(VAL(DD)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
ENDIF
@2,0 SAY "月"+STR(DL3,8,1)
SYDL1=DL3*VAL(BL)+GSBS
REPLACE SYDL WITH SYDL1
@2,10 SAY "实"+STR(SYDL,8)
@3,11 SAY " "
@ 3,11 SAY DF
WAIT " "
CLEAR
REPLACE ZBBZ WITH "2"
CLEAR
RETURN
ENDPRO
*****私自移表子程序******
PROCEDURE E
SELECT A
CLEAR
@0,12 SAY "私自移表"
@0,0 SAY "厂号"+CH
@1,0 SAY HM
@2,0 SAY DZ
@3,0 SAY "码" GET CM2
READ
IF CM2>CM1
DL3=CM2-CM1
else
IF CM2=0
RETURN
else
IF CM2=CM1
DF2=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ2+(VAL(DD)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((VAL(DD)+GSBS)*FJDJ4+(VAL(DD)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((VAL(DD)+GSBS)*DDDJ*FJDJ6*1/100+(VAL(DD)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
@3,11
@3,11 SAY DF
WAIT " "
RETURN
else
IF (100000<=CM1) AND (CM2<CM1)
DL3=(CM2+1000000)-CM1
BW=CM1/100000
else
IF (10000<CM1) AND (CM1<100000) AND (CM2<CM1)
DL3=(CM2+100000)-CM1
BW=CM1/10000
else
IF (CM1<10000) AND (CM2<CM1)
DL3=CM2+10000-CM1
BW=CM1/1000
ENDIF
endif
endif
endif
endif
endif
IF (DL3*VAL(BL))>VAL(DD)
REPLACE DL WITH DL3
DF2=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ),2),10,2))
DF6=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ1),2),10,2))
DF3=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ2+(DL3*VAL(BL)+GSBS)*FJDJ3),2),10,2))
DF4=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*FJDJ4+(DL3*VAL(BL)+GSBS)*FJDJ5),2),10,2))
DF5=VAL(STR(ROUND(((DL3*VAL(BL)+GSBS)*DDDJ*FJDJ6*1/100+(DL3*VAL(BL)+GSBS)*FJDJ7),2),10,2))
DF1=DF2+DF3+DF4+DF5+DF6
REPLACE DF WITH DF1
ELSE
DL3=VAL(DD)
REPLACE DL WITH DL3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -