荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: Browse 中的增量搜索
发信站: BBS 荔园晨风站 (Fri Dec  4 18:57:18 1998), 转信

> 在数据库系统开发过程中,使用Browse浏览数据方便、直观,但是,当
>数据库较大时,需要不停按PgUp(或PgDn)键,才能查阅到某条记录。以
>前解决这种问题的办法是,编一段小程序, 让用户事先输入编号,指针
>移至该记录,然后用Browse命令显示数据。而需要查另一条记录时,只
>能返回重新键入编号(或者上下翻页)。这种作法显然比较罗嗦。为了
>解决此问题,笔者编写了一段程序,利用事件捕获命令On Key Label设
>置陷阱,当用户在Browse窗口下输入数值时,将数据库指针移到对应记
>录下,从而方便地查阅到我们所需的数据。
>    下面数据库只是例子,读者可根据需要确定数据库。程序只能查
>阅数据,读者可以用类似的思想设置按键陷阱,达到在窗口中修改数据
>的目的。
>    数据库(sjk.dbf)结构:
>    字段名      类型    宽度
>    number      C       6
>    name        C       8
>    程序源码(在Foxpro 2.5 For Dos下运行通过)
>    **Name:SeekBrow.prg
>    SET TALK OFF
>    CLEAR
>    USE sjk INDEX sjk && 索引 KEY:number
>    m.number=""
>    DO On_Off WITH"on" && 打开按键陷阱
>    BROWSE NOEDIT
>    DO On_Off WITH"off" && 关闭按键陷阱
>    USE
>    RETURN
>    PROCEDURE On_Off
>    PARAMETER x
>    IF x="on"
>    **按键END后,清空记忆的键值
>    ON KEY LABEL END DO seek_key WITH"END"
>    ON KEY LABEL 0 DO seek_key WITH"0"
>    ON KEY LABEL 1 DO seek_key WITH"1"
>    ON KEY LABEL 2 DO seek_key WITH"2"
>    ON KEY LABEL 3 DO seek_key WITH"3"
>    ON KEY LABEL 4 DO seek_key WITH"4"
>    ON KEY LABEL 5 DO seek_key WITH"5"
>    ON KEY LABEL 6 DO seek_key WITH"6"
>    ON KEY LABEL 7 DO seek_key WITH"7"
>    ON KEY LABEL 8 DO seek_key WITH"8"
>    ON KEY LABEL 9 DO seek_key WITH"9"
>    ENDIF
>    IF x="off"
>    ON KEY LABEL END
>    ON KEY LABEL 0
>    ON KEY LABEL 1
>    ON KEY LABEL 2
>    ON KEY LABEL 3
>    ON KEY LABEL 4
>    ON KEY LABEL 5
>    ON KEY LABEL 6
>    ON KEY LABEL 7
>    ON KEY LABEL 8
>    ON KEY LABEL 9
>    ENDIF
>    RETURN
>    PROCEDURE seek_key
>    PARAMETER seekkey
>    m.mrecn=RECNO() && 记忆当前记录号
>    IF seekkey="END" && 设END按键清空记忆的键值
>    m.number=""
>    WAIT WINDOW "您所按的键:END" NOWAIT
>    ELSE
>    IF LEN(m.number)=6 &&编号6位,可根据需要改变
>    m.number=""
>    ENDIF
>    m.number=m.number+seekkey
>    SEEK m.number
>    IF EOF() && 若无号码,返回原来记录
>    GOTO m.mrecn
>    ENDIF
>    WAIT WINDOW "您所按的键:+"m.number NOWAIT
>    ENDIF
>    RETURN
>
>--
>m;37m※ 来源:.南大小百合信息交换站 bbs.nju.edu.cn.[FROM: hsia.nju.edu.cn]m
>

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店