一个foxbase的打印进度彩条显示程序

Author: Date: 1996-05-31

        假设要打印数据库JX.DBF中的记录。
        JX的库中有序号、测深、井斜、方位、水平位移等字段。
        ***打印井斜数据程序***
        SET TALK OFF
        SET SCOR OFF
        SET STAT OFF
        SET ESCA ON
        SET COLOR TO W/B+
        CLEAR
        use JX
        ??SYS(2002)&&关光标
        DO WHILE .not. eof()
        @8,25 say '正在打印请稍等'
        SET COLO TO 2/B+
        @13,6 SAY '打印信息提示'
        SET COLO TO 6/B+
        @13,20 SAY '共有:'+STR(RECC(),3)+'个记录'+',已完成:'
        @16,16 TO 18,64&&画彩条矩型框
        set device to print
        @PROW()+2,10 SAY "'@D'"
        @PROW(),23 say "井井斜数据计算表"
        @PROW()+1,13 SAY "'@A'~~~~~~~~~~"
        @PROW()+1,2 SAY "测深井斜方位   水平位移"
        @PROW()+1,2 SAY "序"
        @PROW()+1,2 SAY "号"
        @PROW()+1,2 SAY "(米) (度) (度) (米)"
        @PROW()+1,2 SAY ""
        X=PROW()+1
        n=1
        DO WHILE .not. eof()
        if .not. eof()
        SET DEVICE TO SCREE
        @13,43 SAY STR(RECN(),3)+'个记录'
        @13,53 SAY ',还剩:'+STR((RECC())-RECN()),3+'个记录'
        i1=recc()
        set colo to B+/GR+&&设制彩条艳色
        i2=recn()
        i3=(50/i1)*i2
        @17,17 clear to 17,13+i3
        SET COLO TO W/B+
        SET DEVICE TO PRINT
        @X,4 SAY 序号
        @X,10 SAY 测深
        @X,18 SAY 井斜
        @X,28 SAY 方位
        @X,46 SAY 水平位移
        skip
        X=X+1
        ENDIF
        enddo
        ENDDO
        use
        @X+11,2 SAY ''
        ??SYS(2002,1) &&开光标
        SET DEVICE TO SCREEN
        retu
        在打印过程中每打印一个记录,彩条就前进一个单位,很象一些软件安装过程中的彩条指示。利用此方法同样可用在数据库的输入指示中(采用自己制作的屏幕格式向数据库中输入记录时)。