荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店