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

📄 n-zz.zrg

📁 不错的用电管理系统,用VFP6.0做的.大家可以下来看看哦
💻 ZRG
📖 第 1 页 / 共 2 页
字号:
*********************
*                   *
*  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 + -