选择字段浏览程序

    虽然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)