|
虽然FoxPro系统给我们提供USE、BROW命令来打开数据库进行浏览,如果是浏览指定的数据库文件和全部字段还比较方便,当频繁打开不同目录的数据库文件或只想浏览部分字段时,使用上述过程就显得力不从心了。下面这个小程序可以把当前硬盘和软盘所有目录下的数据库文件列出,当您选择到一个数据库文件后,又将库中所有字段列出,您可以有选择地进行浏览,从而使数据库选择字段浏览相当简便。
SET TALK ON
SET COLO TO W/N,R/B,R && 使选择字段时, 屏幕显示所选的字段
SET COLOR OF SCHEME 2 TO BG/W,N/W,N/W,B/W,B/BG,W+/R,GR+/W,N+/N,B/W,W/N,+
DO WHIL .T.
DEFINE POPUP database FROM 2,10 to 15,30 PROMPT FILES
LIKE *.dbf colo sche 2;
MESSAGE “移动↑↓光标键,选择数据库文件目录,其它键退出”
ON SELECTION POPUP database DO Database
DEFINE POPUP fieldlist FROM 2,26 TO 15,46 PROMPT
STRUCTURE MARGIN;
MESSAGE “按<ENTER>选择字段,然后按<ESC>进行浏览”
ON SELECTION POPUP fieldlist DO Fieldlist
CLEAR
@1,11 SAY “ 选择一个数据库:” COLO B/G
ACTIVATE POPUP database
@ 1,11 SAY “ ” COLO N/N
IF NOT EMPTY(DBF()) && 如果选择了一个数据库
@ 1,29 SAY “ 选择数据库字段:”COLO R/G
mfieldlist =“ ” && 字段选择变量
ACTIVATE POPUP fieldlist&&激活菜单显示数据库字段
IF NOT EMPTY(mfieldlist)
mfieldlist = “FIELDS ” + LEFT(mfieldlist, LEN(mfieldlist)-1)
*在字段选择变量中增加 “FILEDS”, 并除去尾部逗号.
ENDIF
BROWSE &mfieldlist COLO R+/BG+
* 浏览所选择的数据库和所选择的字段
ENDIF
RELEASE POPUP database, fieldlist
CLEA
XX=" "
@ 23,24 SAY "还继续浏览数据库吗(y/Y)?" GET XX COLO
B+/W
READ
IF UPPER(XX)="Y".OR.XX="Y"
LOOP
ELSE
EXIT
ENDIF
ENDDO
SET TALK OFF
CLOSE DATABASE
QUIT
RETURN
* Process database file list selection
PROCEDURE Database
USE PROMPT()
&& 打开所选择的数据库
DEACTIVATE POPUP database
RETURN
PROCEDURE Fieldlist
IF NOT PROMPT() $ mfieldlist
mfieldlist = mfieldlist + PROMPT() + ","
* 在字段选择变量中增加字段和逗号
ENDIF
RETURN
(河北省邯郸市峰峰矿务局 左巍 056207)
|