B R O W S E 命 令

B R O W S E 命 令 - 图1B R O W S E 命 令 - 图2打开浏览窗口 显示当前或选定表的记录

语 法

BROWSE

[FIELDS FieldLis t]

[FONT cFontName [, nFontSize ]] [STYLE cFontStyle ]

[FOR lExpression1 [REST]] [FORMAT]

[FREEZE FieldNam e]

[KEY eExpression1 [, eExpression2 ]] [LAST | NOINIT]

[LOCK nNumberOfFields ] [LPARTITION]

[NAME Ob jectNam e] [NOAPPEND] [NODELETE]

[NOEDIT | NOMODIF Y ] [NOLGRID] [NORGRID] [NOLINK]

[NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT]

[PARTITION nColumnNumber [LEDIT] [REDIT]]

[PREFERENCE PreferenceNam e] [SAVE]

[TI M E O U T nSecond s] [TITLE cTitleTex t]

[VALID [:F] lExpression2 [ERROR cMessageText ]] [ W H E N lExpression3 ]

[ W IDTH nFieldWidth ]

[ W INDOW W indowName1 ]

[IN [WINDOW] W indowName2 | IN SCREEN]

[COLOR SCHEME nSchemeNumbe r ]

参 数 描 述

FIELDS FieldList

B R O W S E 命 令 - 图3B R O W S E 命 令 - 图4B R O W S E 命 令 - 图5B R O W S E 命 令 - 图6B R O W S E 命 令 - 图7指 定 显 示 在 浏 览 窗 口 中 的 字 段 这 些 字 段 以 Fieldlist 指 定 的 顺 序 显 示 在 该字 段 列 表 中 可 包 含 其 他 相 关 表 中 的 字 段 在 包 含 一 个 相 关 表 的 字 段 时 应 在字 段 名 前 面 放 一 个 句 号 及 相 关 表 的 别 名

B R O W S E 命 令 - 图8B R O W S E 命 令 - 图9如果忽略 FIELDS 子句 表中的所有字段按其在表结构中出现的顺序显示

FONT cFontName [, nFontSize ]

B R O W S E 命 令 - 图10B R O W S E 命 令 - 图11B R O W S E 命 令 - 图12B R O W S E 命 令 - 图13B R O W S E 命 令 - 图14指 定 浏 览 窗 口 的 字 体 及 字 体 大 小 字 符 型 表 达 式 cFontName 指 定 字 体 数 值型 表 达 式 nFontSize 指 定 字 体 大 小 例 如 下 列 子 句 指 定 显 示 于 浏 览 窗 口 的字 段 为 16 磅 Courier 字 体

FONT 'Courier',16

B R O W S E 命 令 - 图15B R O W S E 命 令 - 图16B R O W S E 命 令 - 图17B R O W S E 命 令 - 图18如果在包含 FONT 子句的同时省略了字体大小 nFontSize 则浏览窗口采用 10 磅字体如果省略 FONT 子句 则采用 8 磅 MS Sans Serif 字体

B R O W S E 命 令 - 图19B R O W S E 命 令 - 图20如果用户指定的字体不可用 则用具有相似字体特征的字体代替

STYLE cFontStyle

B R O W S E 命 令 - 图21B R O W S E 命 令 - 图22B R O W S E 命 令 - 图23指 定 浏 览 窗 口 的 字 形 如 果 省 略 STYLE 子 句 则 采 用 常 规 字 形

B R O W S E 命 令 - 图24B R O W S E 命 令 - 图25B R O W S E 命 令 - 图26如果指定的字形不可用 则使用具有相似特征的字形代替 或使用 Normal 字体

字 符 字 形

B 粗体

I 斜体

  1. 常规

  2. 轮廓线

Q 不透明

  1. 阴影

– 删除线

  1. 透明

  2. 下划线

B R O W S E 命 令 - 图27B R O W S E 命 令 - 图28B R O W S E 命 令 - 图29可用多个字符的组合来指定字形 下例打开一个浏览窗口 并采用下划线字形

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata')

USE customer && 打开 customer 表

IF _WINDOWS

BROWSE FIELDS contact FONT 'System', 15 STYLE 'NU' ENDIF

IF _MAC

BROWSE FIELDS contact FONT 'Geneva', 14 STYLE 'NU' ENDIF

FOR lExpression1

B R O W S E 命 令 - 图30B R O W S E 命 令 - 图31B R O W S E 命 令 - 图32B R O W S E 命 令 - 图33指 定 一 个 条 件 只 有 lExpression1 为 真 的 记 录 才 显 示 于 浏 览 窗 口

B R O W S E 命 令 - 图34B R O W S E 命 令 - 图35B R O W S E 命 令 - 图36B R O W S E 命 令 - 图37B R O W S E 命 令 - 图38B R O W S E 命 令 - 图39B R O W S E 命 令 - 图40B R O W S E 命 令 - 图41B R O W S E 命 令 - 图42B R O W S E 命 令 - 图43lExpression1 是一个可优化表达式 则 Rushmore 优化由 BROWSE FOR 指定的查询 为达到最佳性能 需在 FOR 子句中采用可优化表达式 其它相关信息 请参阅本书稍后 SET OPTIMIZE 命 令 和 Microsoft Visual FoxPro 6.0 中文版程序员指南 的第十五章 最优化应用程序

B R O W S E 命 令 - 图44B R O W S E 命 令 - 图45包含 FOR 子句使记录指针移向符合该条件的第一条记录 包含 REST 子句使记录指针处于当前位置

REST

B R O W S E 命 令 - 图46B R O W S E 命 令 - 图47B R O W S E 命 令 - 图48B R O W S E 命 令 - 图49B R O W S E 命 令 - 图50防 止 在 FOR 子 句 打 开 浏 览 窗 口 时 记 录 指 针 从 当 前 位 置 移 向 表 顶 部 若 不包 含 REST 默 认 情 况 下 BROWSE 将 记 录 指 针 放 置 在 表 顶 部

F O R M A T

B R O W S E 命 令 - 图51B R O W S E 命 令 - 图52B R O W S E 命 令 - 图53B R O W S E 命 令 - 图54使 用 格 式 文 件 来 控 制 浏 览 窗 口 的 显 示 和 输 入 数 据 的 格 式 首 先 应 用 SET FORMAT 打 开 格 式 文 件 以 下 是 从 格 式 文 件 中 提 取 的 应 用 于 浏 览 窗 口 的信 息

  • 要 浏 览 的 字 段 列 表

  • 所 有 VALID 子 句

  • 所 有 W H E N 子 句

  • 所 有 RANGE 子 句

  • B R O W S E 命 令 - 图55B R O W S E 命 令 - 图56

    段 大 小 如 PICTURE 子 句 所 指 定

  • B R O W S E 命 令 - 图57B R O W S E 命 令 - 图58

    有 SAY 表 达 式 包 含 B R O W S E 计 算 结 果 字 段 段

B R O W S E 命 令 - 图59B R O W S E 命 令 - 图60下例采用格式文件检查输入到浏览窗口中的数据 忽略由 @ ... GET 指定的位置

B R O W S E 命 令 - 图61B R O W S E 命 令 - 图62B R O W S E 命 令 - 图63B R O W S E 命 令 - 图64B R O W S E 命 令 - 图65B R O W S E 命 令 - 图66第一行创建一个浏览字段 ( cust_id) 该字段为 5 个字符宽 并且只允许输入字母和数 字 第二行创建一个浏览字段 ( company) 该字段不能包含空 (blank) 值 且 最多只能包含 20 个字母字符

B R O W S E 命 令 - 图67B R O W S E 命 令 - 图68第三行创建一个浏览字段 ( contac t) 只在该字段为空 (blank) 时才输入数据

B R O W S E 命 令 - 图69B R O W S E 命 令 - 图70以下是 CUSTENTR.FMT 格式文件的内容 用于检查输入到 customer 表中的数据

@ 3,0 GET cust_id PICTURE 'NNNNN'

@ 3,0 GET company VALID company != SPACE(40) ; PICTURE 'AAAAAAAAAAAAAAAAAAAA'

@ 3,0 GET contact WHEN contact = SPACE(40)

* This is the program that uses the format file CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table

SET FORMAT TO custentr.fmt

BROWSE FORMAT

FREEZE FieldName

B R O W S E 命 令 - 图71B R O W S E 命 令 - 图72B R O W S E 命 令 - 图73允 许 在 浏 览 窗 口 中 只 修 改 一 个 字 段 使 用 FieldName 指 定 该 字 段 其 他 字 段可 显 示 但 不 能 编 辑

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table BROWSE FIELDS phone :H = 'Phone Number:' , ;

company :H = 'Company:' ; FREEZE phone

KEY eExpression1 [, eExpression2 ]

B R O W S E 命 令 - 图74B R O W S E 命 令 - 图75B R O W S E 命 令 - 图76B R O W S E 命 令 - 图77B R O W S E 命 令 - 图78限制浏览窗口显示的记录范围 用 KEY 指定浏览窗口显示的记录的一个索引关键字值( eExpression1 ) 或关键字值的范围 (eExpression1 eExpression2 ) 所浏览的表必须已建立索引 并且索引关键字值或 KEY 子句的值必须与主索引文件或标识的索引表达式具有相同的数据类型

B R O W S E 命 令 - 图79B R O W S E 命 令 - 图80B R O W S E 命 令 - 图81B R O W S E 命 令 - 图82例 如 customer 表包含一个保存邮政编码的字符字段 如 果 该 表 已 建 立 邮 政 编 码 字 段 索引 则可在 KEY 子句指定邮政编码的范围

B R O W S E 命 令 - 图83B R O W S E 命 令 - 图84下例中 只有在 10,000 到 30,000 范围内的邮政编码记录才显示在浏览窗口

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table

SET ORDER TO postalcode BROWSE KEY '10000', '30000'

LAST | NOINIT

B R O W S E 命 令 - 图85B R O W S E 命 令 - 图86B R O W S E 命 令 - 图87B R O W S E 命 令 - 图88保存浏览窗口外观的任何变更 这些变更可保存于 FOXUSER 文件中 包括字段列表浏览窗口的位置及尺寸等内容的变更

B R O W S E 命 令 - 图89B R O W S E 命 令 - 图90B R O W S E 命 令 - 图91B R O W S E 命 令 - 图92B R O W S E 命 令 - 图93B R O W S E 命 令 - 图94B R O W S E 命 令 - 图95B R O W S E 命 令 - 图96B R O W S E 命 令 - 图97如果用户发出带有 LAST 或 NOINIT 子句的 BROWSE 命令 在 SET RESOURCE 为 ON 的情况下 以最后保存于 FOXUSER 文件中的配置打开浏览窗口 恢复最后一个BROWSE 命令创建的浏览窗口 如果在命令窗口中最后发出的 BROWSE 命令带有一长串子句 那么使用包含 LAST 或 NOINIT 选项的 BROWSE 命令 可以避免重新键入命令 有关 FOXUSER 文件的详细内容 请参阅 SET RESOURCE

B R O W S E 命 令 - 图98B R O W S E 命 令 - 图99B R O W S E 命 令 - 图100B R O W S E 命 令 - 图101B R O W S E 命 令 - 图102B R O W S E 命 令 - 图103B R O W S E 命 令 - 图104如果最后一个浏览窗口是由一个包含 PREFERENCE 子句的 BROWSE 命令打开的BROWSE LAST 将不再恢复原配置 如果用户按 CTRL+Q 退出浏览 则当前工作区中的浏览窗口配置的任何变更 都不会被保存 LAST 与 NOINIT 作用相同 NOINIT 是为与 dBASE 兼容而提供的

LOCK nNumberOfFields

B R O W S E 命 令 - 图105指定不需滚动就能在浏览窗口左分区中 可 见的字段数 分区的大小可自动调整以显示

B R O W S E 命 令 - 图106nNumberOfFields 指定的字段数

LPARTITION

B R O W S E 命 令 - 图107B R O W S E 命 令 - 图108B R O W S E 命 令 - 图109B R O W S E 命 令 - 图110指定光标位置在浏览窗口左分区的第一个字段 默认情况下 打开浏览窗口时 光标位于右分区的第一字段

N A M E Ob jectName

B R O W S E 命 令 - 图111B R O W S E 命 令 - 图112B R O W S E 命 令 - 图113为 浏 览 窗 口 创 建 一 个 对 象 引 用 允 许 在 操 作 浏 览 窗 口 时 使 用 表 格 控 件 的 面 向对 象 属 性 有 关 在 V isual FoxPro 中 的 面 向 对 象 编 程 的 其 他 信 息 请 参 阅

B R O W S E 命 令 - 图114B R O W S E 命 令 - 图115B R O W S E 命 令 - 图116B R O W S E 命 令 - 图117B R O W S E 命 令 - 图118B R O W S E 命 令 - 图119B R O W S E 命 令 - 图120B R O W S E 命 令 - 图121B R O W S E 命 令 - 图122B R O W S E 命 令 - 图123B R O W S E 命 令 - 图124M icrosoft Visual FoxPro 6.0 中 文 版 程 序 员 指 南 的 第 三 章 面 向 对 象 程 序设 计 有 关 您 能 够 为 使 用 N A M E 子 句 创 建 的 浏 览 窗 口 指 定 的 表 格 控件 属 性 的 内 容 请 参 阅 稍 后 的 表 格 控 件

NOAPPEND

B R O W S E 命 令 - 图125B R O W S E 命 令 - 图126B R O W S E 命 令 - 图127B R O W S E 命 令 - 图128B R O W S E 命 令 - 图129B R O W S E 命 令 - 图130B R O W S E 命 令 - 图131禁 止 用 户 通 过 如 下 方 式 添 加 表 记 录 按 CTRL+Y 键 或 选 择 表 菜 单 的 追加 记 录 命 令

B R O W S E 命 令 - 图132要 点 包 含 NOAPPEND 并 不 禁 止 用 户 在 程 序 中 向 浏 览 窗 口 中 添 加 记 录 由

B R O W S E 命 令 - 图133B R O W S E 命 令 - 图134B R O W S E 命 令 - 图135VALID W H E N 或 ON KEY LABEL 等 命 令 创 建

NODELETE

B R O W S E 命 令 - 图136B R O W S E 命 令 - 图137B R O W S E 命 令 - 图138B R O W S E 命 令 - 图139B R O W S E 命 令 - 图140B R O W S E 命 令 - 图141B R O W S E 命 令 - 图142禁止在浏览窗口中为记录作删除标记 默认情况下 按 CTRL+T 键 选择 Visual FoxPro 中的表菜单或 FoxPro 早期版本浏览菜单的切换删除标记项 或单击要删除的记录的最左边一列 可为记录作删除标记 包含 NODELETE 不禁止用户在程序中为浏览窗口中的记录作删除标记

NOEDIT | NOMODIFY

B R O W S E 命 令 - 图143B R O W S E 命 令 - 图144B R O W S E 命 令 - 图145B R O W S E 命 令 - 图146B R O W S E 命 令 - 图147B R O W S E 命 令 - 图148禁止用户修改表 NOEDIT 等同于 NOMODIFY 包含其中任何一个子句 用户可以浏览或搜索表 可以添加或删除记录 但不能编辑

NOLGRID

B R O W S E 命 令 - 图149删除浏览窗口左分区中字段的网格线

NORGRID

B R O W S E 命 令 - 图150删除浏览窗口右分区中字段的网格线

NOLINK

B R O W S E 命 令 - 图151B R O W S E 命 令 - 图152B R O W S E 命 令 - 图153B R O W S E 命 令 - 图154将浏览窗口的左右两部分断开联系 默认情况下 浏览窗口的左分区和右分区链接在一起 即 滚动其中一区时 另一区也随之滚动

N O M E N U

B R O W S E 命 令 - 图155B R O W S E 命 令 - 图156B R O W S E 命 令 - 图157B R O W S E 命 令 - 图158B R O W S E 命 令 - 图159B R O W S E 命 令 - 图160从系统菜单栏中删除 表 菜单标题 防止访问 浏览 菜单

NOOPTIMIZE

B R O W S E 命 令 - 图161B R O W S E 命 令 - 图162B R O W S E 命 令 - 图163B R O W S E 命 令 - 图164B R O W S E 命 令 - 图165B R O W S E 命 令 - 图166B R O W S E 命 令 - 图167B R O W S E 命 令 - 图168禁 止 B R O W S E 进 行 Rushmore 优 化 有 关 详 细 内 容 请 参 阅 稍 后 部 分 的 SET OPTIMIZE 命 令 以 及 M icrosoft Visual FoxPro 6.0 中 文 版 程 序 员 指 南 的 第 十 五 章 优 化 应 用 程 序

NOREFRESH

B R O W S E 命 令 - 图169B R O W S E 命 令 - 图170禁止对浏览窗口进行刷新 浏览窗口以 SET REPRESH 确定的速度进行刷新

B R O W S E 命 令 - 图171B R O W S E 命 令 - 图172NOREPRESH 对只读文件非常有用 并且可以改进性能

N O R M A L

B R O W S E 命 令 - 图173B R O W S E 命 令 - 图174B R O W S E 命 令 - 图175B R O W S E 命 令 - 图176B R O W S E 命 令 - 图177B R O W S E 命 令 - 图178B R O W S E 命 令 - 图179B R O W S E 命 令 - 图180B R O W S E 命 令 - 图181B R O W S E 命 令 - 图182使 用 正 常 的 默 认 设 置 打 开 浏 览 窗 口 如 颜 色 尺 寸 标 题 位 置 和 控 制 选 项如 GROW FLOAT Z O O M 等 等 如 果 省 略 N O R M A L 而 当 前 输 出 窗

B R O W S E 命 令 - 图183B R O W S E 命 令 - 图184口 为 用 户 自 定 义 窗 口 浏 览 窗 口 使 用 用 户 自 定 义 设 置

NOWAIT

B R O W S E 命 令 - 图185B R O W S E 命 令 - 图186B R O W S E 命 令 - 图187B R O W S E 命 令 - 图188B R O W S E 命 令 - 图189B R O W S E 命 令 - 图190B R O W S E 命 令 - 图191B R O W S E 命 令 - 图192打 开 浏 览 窗 口 之 后 继 续 运 行 程 序 程 序 不 必 等 待 浏 览 窗 口 关 闭 而 是 继 续 执 行BROWSE NOWAIT 之后的程序行 若在程序中发出 BROWSE 命令时省略 NOWAIT 则 浏 览 窗 口 打 开 后 暂 停 执 行 程 序 直 至 浏 览 窗 口 关 闭 NOWAIT 只用于程序中 在

B R O W S E 命 令 - 图193命令窗口中发出 BROWSE 命令时包含 NOWAIT 无此作用

PARTITION nColumnNumber

B R O W S E 命 令 - 图194B R O W S E 命 令 - 图195B R O W S E 命 令 - 图196将浏览窗口拆分为左右分区 nColumnNumber 指定拆分条所在的列 例如

B R O W S E 命 令 - 图197B R O W S E 命 令 - 图198nColumnNumber 为 20 则拆分条放置于浏览窗口的第 20 列

LEDIT

B R O W S E 命 令 - 图199指定浏览窗口的左分区以编辑方式显示

REDIT

B R O W S E 命 令 - 图200B R O W S E 命 令 - 图201B R O W S E 命 令 - 图202B R O W S E 命 令 - 图203指 定 浏 览 窗 口 的 右 分 区 以 编 辑 方 式 显 示 下 例 打 开 浏 览 窗 口 使 拆 分 条 位 于第 20 列 并 以 编 辑 方 式 打 开 右 分 区

B R O W S E 命 令 - 图204B R O W S E 命 令 - 图205B R O W S E 命 令 - 图206若同时包含 LEDIT REDIT 两个关键字 以编辑方式打开两个分区

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打开 customer 表

BROWSE PARTITION 20 REDIT

PREFERENCE PreferenceName

B R O W S E 命 令 - 图207B R O W S E 命 令 - 图208B R O W S E 命 令 - 图209B R O W S E 命 令 - 图210保 存 浏 览 窗 口 的 属 性 和 选 项 供 以 后 使 用 PREFERENCE 不 像 LAST 以 先 前工 作 区 中 出 现 的 方 式 打 开 浏 览 窗 口 而 是 将 浏 览 窗 口 的 属 性 随 时 存 储 于FOXUSER 资 源 文 件 中 PREFERENCE 可 在 任 何 时 候 恢 复

B R O W S E 命 令 - 图211B R O W S E 命 令 - 图212B R O W S E 命 令 - 图213在 第一次发出带有指定设置的 BROWSE 命令时 在 FOXUSER 文件中创建一个保存浏览窗口配置的数据项 以后用同样的状态名发出 BROWSE 命令时 恢复浏览窗口该状

B R O W S E 命 令 - 图214B R O W S E 命 令 - 图215B R O W S E 命 令 - 图216态 在浏览窗口关闭时 更新该状态

B R O W S E 命 令 - 图217B R O W S E 命 令 - 图218B R O W S E 命 令 - 图219B R O W S E 命 令 - 图220状态名可为 10 个字符长 必须以字母或下划线开头 可包括字母 数字或下划线的任意组合

B R O W S E 命 令 - 图221B R O W S E 命 令 - 图222B R O W S E 命 令 - 图223B R O W S E 命 令 - 图224B R O W S E 命 令 - 图225B R O W S E 命 令 - 图226B R O W S E 命 令 - 图227如果您喜爱某种状态 可禁止其被更改 关闭浏览窗口 发出 SET RESOURCE OFF 命令 将 FOXUSER 作为一个表打开 并将逻辑字段 READONLY 的值更改为 真

B R O W S E 命 令 - 图228B R O W S E 命 令 - 图229(.T.) 可将包含状态的记录改为只读记录

B R O W S E 命 令 - 图230B R O W S E 命 令 - 图231有关 FOXUSER 资源文件的详细内容 请参阅 SET RESOURCE

B R O W S E 命 令 - 图232B R O W S E 命 令 - 图233若按 CTRL+Q 键退出浏览窗口 则资源文件不保存任何对浏览窗口的更改

S A V E

B R O W S E 命 令 - 图234B R O W S E 命 令 - 图235B R O W S E 命 令 - 图236B R O W S E 命 令 - 图237B R O W S E 命 令 - 图238B R O W S E 命 令 - 图239B R O W S E 命 令 - 图240B R O W S E 命 令 - 图241B R O W S E 命 令 - 图242保 持 浏 览 窗 口 及 其 所 有 备 注 字 段 的 文 本 编 辑 窗 口 为 活 动 和 可 视 打 开 B R O W S E 命 令 - 图243 的 用 键 盘 或 鼠 标 访 问 其 他 打 开 的 窗 口 后 可 以 返 回 浏 览 窗 口 SAVE 仅 用 于 程序 中 在 命 令 窗 口 中 发 出 B R O W S E 命 令 时 包 含 S A V E 则 无 此 作 用 在 默认 情 况 下 BROWSE SAVE 以 交 互 方 式 工 作

TIMEOUT nSeconds

B R O W S E 命 令 - 图244B R O W S E 命 令 - 图245B R O W S E 命 令 - 图246指 定 浏 览 窗 口 等 待 输 入 的 时 间 数 值 型 表 达 式 nSeconds 指 定 在 没 有 任 何 输 入的 情 况 下 浏 览 窗 口 保 持 多 少 秒 后 才 自 动 关 闭

B R O W S E 命 令 - 图247B R O W S E 命 令 - 图248B R O W S E 命 令 - 图249B R O W S E 命 令 - 图250B R O W S E 命 令 - 图251B R O W S E 命 令 - 图252TIMEOUT 仅用于程序中 在命令窗口中发出 BROWSE 命令时包含 TIMEOUT 则无此作用 下例中 如果在 10 秒内没有输入 则关闭浏览窗口

DEFINE WINDOW wBrowse FROM 1,1 TO 24,40 ; CLOSE ;

GROW ;

COLOR SCHEME 10 CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打开 customer 表

BROWSE WINDOW wBrowse ;

FIELDS phone :H = 'Phone Number:' , ; company :H = 'Company:' ;

TIMEOUT 10

RELEASE WINDOW wBrowse

TITLE cTitleText

B R O W S E 命 令 - 图253B R O W S E 命 令 - 图254B R O W S E 命 令 - 图255cTitleText 指 定 的 标 题 改 写 显 示 于 浏 览 窗 口 标 题 栏 中 的 默 认 表 名 或 别 名否 则 要 浏 览 的 表 的 名 称 或 别 名 显 示 于 标 题 栏 中

B R O W S E 命 令 - 图256B R O W S E 命 令 - 图257如果发出 BROWSE WINDOW 命令将浏览窗口置于用户自定义窗口中 则浏览窗口的标题替换用户自定义窗口的标题

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打 开 customer 表BROWSE;

TITLE 'M y Browse Window' ;

FIELDS phone :H = 'Phone Number' , ; company :H = 'Company:'

VALID lExpression2

B R O W S E 命 令 - 图258B R O W S E 命 令 - 图259B R O W S E 命 令 - 图260B R O W S E 命 令 - 图261在 浏 览 窗 口 中 执 行 记 录 级 有 效 性 检 查 VALID 子 句 仅 在 记 录 已 被 更 改 并 且 试图 将 光 标 移 至 另 一 记 录 时 执 行 如 果 只 是 对 备 注 字 段 的 更 改 不 执 行 VALID 子 句

B R O W S E 命 令 - 图262B R O W S E 命 令 - 图263B R O W S E 命 令 - 图264B R O W S E 命 令 - 图265B R O W S E 命 令 - 图266B R O W S E 命 令 - 图267B R O W S E 命 令 - 图268B R O W S E 命 令 - 图269B R O W S E 命 令 - 图270B R O W S E 命 令 - 图271B R O W S E 命 令 - 图272B R O W S E 命 令 - 图273如果 VALID 返回值为 真 (.T.) 用户可将光标移向另一记录 如果 VALID 返回值为 假 (.F.) 光标停留在当前记录上 Visual FoxPro 产生一条错误信息 如果VALID 返回值为 0 光标停留在当前记录上 但不显示错误信息

B R O W S E 命 令 - 图274不要把 VALID 子句和启用字段级有效性的检验选项 ( :V) 相混淆

:F

B R O W S E 命 令 - 图275B R O W S E 命 令 - 图276B R O W S E 命 令 - 图277B R O W S E 命 令 - 图278B R O W S E 命 令 - 图279在 用 户 将 光 标 移 至 下 一 个 记 录 之 前 强 制 执 行 VALID 子 句 这 种 情 况 下即 使 记 录 没 更 改 也 执 行 VALID

ERROR cMessageText

B R O W S E 命 令 - 图280B R O W S E 命 令 - 图281B R O W S E 命 令 - 图282指 定 一 条 错 误 信 息 来 替 换 系 统 默 认 的 错 误 信 息 在 VALID 返 回 值 为 假

B R O W S E 命 令 - 图283B R O W S E 命 令 - 图284(.F.) 时 V isual FoxPro 显 示 cMessageText

W H E N lExpression3

B R O W S E 命 令 - 图285B R O W S E 命 令 - 图286B R O W S E 命 令 - 图287B R O W S E 命 令 - 图288B R O W S E 命 令 - 图289在 用 户 把 指 针 移 到 另 一 条 记 录 时 做 出 评 估 若 评 估 为 真 则 用 户 可 以 修 改 将要 移 到 的 记 录 若 评 估 为 假 则 该 记 录 为 只 读 或 用 户 不 能 修 改 它

B R O W S E 命 令 - 图290B R O W S E 命 令 - 图291B R O W S E 命 令 - 图292指 定 一 条 错 误 信 息 来 改 写 系 统 默 认 的 错 误 信 息 在 VALID 返 回 值 为 假

B R O W S E 命 令 - 图293B R O W S E 命 令 - 图294(.F.) 时 V isual FoxPro 显 示 cMessageText

B R O W S E 命 令 - 图295B R O W S E 命 令 - 图296在激活另一窗口时 不执行 WHEN 子句

W IDTH nFieldWidth

B R O W S E 命 令 - 图297B R O W S E 命 令 - 图298B R O W S E 命 令 - 图299将 浏 览 窗 口 中 所 有 字 段 的 字 符 数 限 制 为 nFieldWidth 使 用 左 右 箭 头 或 水 平 滚动 栏 可 水 平 滚 动 字 段 内 容 使 用 W IDTH 子 句 并 不 会 修 改 表 中 字 段 的 大

B R O W S E 命 令 - 图300B R O W S E 命 令 - 图301B R O W S E 命 令 - 图302B R O W S E 命 令 - 图303小 而 只 修 改 字 段 在 浏 览 窗 口 中 的 显 示 方 式 如 果 已 由 FIELDS 子 句 指 定 一个 字 段 的 宽 度 它 将 替 换 W IDTH 子 句 所 指 定 的 该 字 段 的 宽 度

W INDOW W indowName1

B R O W S E 命 令 - 图304B R O W S E 命 令 - 图305B R O W S E 命 令 - 图306B R O W S E 命 令 - 图307B R O W S E 命 令 - 图308B R O W S E 命 令 - 图309B R O W S E 命 令 - 图310指 定 一 个 用 户 自 定 义 窗 口 浏 览 窗 口 将 采 用 此 窗 口 的 特 性 例 如 如 果 该 用户 自 定 义 窗 口 是 由 FLOAT 子 句 创 建 的 则 浏 览 窗 口 可 移 动 所 指 定 的 窗 口不 需 要 是 活 动 的 和 可 见 的 但 必 须 是 已 定 义 的

IN [WINDOW] W indowName2

B R O W S E 命 令 - 图311B R O W S E 命 令 - 图312B R O W S E 命 令 - 图313B R O W S E 命 令 - 图314B R O W S E 命 令 - 图315指 定 打 开 浏 览 窗 口 的 父 窗 口 该 浏 览 窗 口 并 不 采 用 父 窗 口 的 特 性 在 父 窗 口内 激 活 的 浏 览 窗 口 不 能 移 出 该 父 窗 口 如 果 父 窗 口 移 动 则 浏 览 窗 口 随 之 移动

B R O W S E 命 令 - 图316B R O W S E 命 令 - 图317B R O W S E 命 令 - 图318要访问浏览窗口 必须首先用 DEFINE WINDOW 定义父窗口 而且父窗口必须是活动的和可见的

IN SCREEN

B R O W S E 命 令 - 图319B R O W S E 命 令 - 图320在 用 户 自 定 义 窗 口 为 活 动 窗 口 时 将 浏 览 窗 口 放 置 在 V iusal FoxPro 主 窗 口中

COLOR SCHEME nSchemeNumber

B R O W S E 命 令 - 图321指 定 用 于 浏 览 窗 口 的 配 色 方 案 的 编 号

B R O W S E 命 令 - 图322浏览窗口假定配色方案已由 W indows 的颜色控制面板建立

说 明

B R O W S E 命 令 - 图323B R O W S E 命 令 - 图324B R O W S E 命 令 - 图325浏览窗口允许查看 编辑表中的记录 并追加额外的记录 Visual FoxPro 允许同时打开多个浏览窗口

B R O W S E 命 令 - 图326B R O W S E 命 令 - 图327B R O W S E 命 令 - 图328B R O W S E 命 令 - 图329B R O W S E 命 令 - 图330若按 Esc 键退出浏览窗口 则放弃对最后一个字段所做的更改 然而 若在修改一个字段后移向另一记录 则可保存对此字段所做的更改

B R O W S E 命 令 - 图331B R O W S E 命 令 - 图332B R O W S E 命 令 - 图333B R O W S E 命 令 - 图334B R O W S E 命 令 - 图335B R O W S E 命 令 - 图336有关在 浏览 窗口中定位的信息 请参阅帮助中的 B R O W S E 命 令 - 图337 用户指南 B R O W S E 命 令 - 图338 第 二 章 创建表和索引

B R O W S E 命 令 - 图339B R O W S E 命 令 - 图340字段列表可以指定 为 字段或计算结果字段的任意组合字段列表的语法是

FieldName1 [:R]

[:nColumnWidth]

[:V = lExpression1 [:F] [:E = cMessageText]] [:P = cFormatCodes]

[:B = eLowe rBound, eUpperBound [:F]] [:H = cHeadingText]

[:W = lExpression2] [, FieldName2 [:R]… ]

B R O W S E 命 令 - 图341B R O W S E 命 令 - 图342B R O W S E 命 令 - 图343计 算 结 果 字 段 … 字段列表可包含创建计算结果字段的语句 计算结果字段包含由表达式创建的只读数据 该表达式可以是任何格式 但必须是有效的 Visual FoxPro 表达

B R O W S E 命 令 - 图344

B R O W S E 命 令 - 图345用于创建计算结果字段的语句格式为

CalculatedFieldName = eExpression

B R O W S E 命 令 - 图346下面的示例创建一个名为 location 的计算结果字段

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表

BROWSE FIELDS location = ALLTRIM(city) + ‘, ‘ + country

B R O W S E 命 令 - 图347city 和 country 都是当前选定表的字段名

B R O W S E 命 令 - 图348FIELDS 子句的字段列表包含对显示于浏览窗口中的字段进行特殊处理的选项

:R

B R O W S E 命 令 - 图349B R O W S E 命 令 - 图350指 定 字 段 为 只 读 字 段 可 显 示 但 不 可 编 辑 字 段 包 含 的 数 据

B R O W S E 命 令 - 图351B R O W S E 命 令 - 图352B R O W S E 命 令 - 图353下例中打开的浏览窗口包含 cust_id 和 company 字段 Cust_id 字段为只读字段 不可更改

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表

BROWSE FIELDS cust_id:R, company

: nColumnWidth

B R O W S E 命 令 - 图354B R O W S E 命 令 - 图355B R O W S E 命 令 - 图356指 定 列 中 字 段 显 示 的 大 小 : nColumnWidth 值 不 影 响 表 中 字 段 的 大 小 只 影响 字 段 在 浏 览 窗 口 中 显 示 的 方 式

: V = lExpression1 [:F] [:E = cMessageText ]

B R O W S E 命 令 - 图357B R O W S E 命 令 - 图358B R O W S E 命 令 - 图359B R O W S E 命 令 - 图360B R O W S E 命 令 - 图361B R O W S E 命 令 - 图362检 验 选 项 ( : V) 在 浏 览 窗 口 中 执 行 字 段 级 数 据 有 效 性 检 查 若 从 一 个 字 段 移 去光 标 时 lExpression1 值 为 真 (.T.) 则 认 为 输 入 到 该 字 段 的 数 据 正 确

B R O W S E 命 令 - 图363光 标 移 向 下 一 字 段

B R O W S E 命 令 - 图364B R O W S E 命 令 - 图365B R O W S E 命 令 - 图366B R O W S E 命 令 - 图367B R O W S E 命 令 - 图368B R O W S E 命 令 - 图369B R O W S E 命 令 - 图370B R O W S E 命 令 - 图371lExpression1 值为 假 (.F.) 则认为所输入数据不正确 光标停留在当前字段并显示一条错误信息 若 lExpression1 值为 0 则认为所输入数据不正确 光标仍停留在当前字段但不显示错误信息

B R O W S E 命 令 - 图372对于备注字段不执行此检验选项

B R O W S E 命 令 - 图373B R O W S E 命 令 - 图374B R O W S E 命 令 - 图375B R O W S E 命 令 - 图376B R O W S E 命 令 - 图377默认情况下 lExpression1 只在修改字段时求值 欲强制执行检验 需包括 :F 选项用户可包含下面所述的 :E 选项来显示自己定义的错误信息

:F

B R O W S E 命 令 - 图378B R O W S E 命 令 - 图379B R O W S E 命 令 - 图380B R O W S E 命 令 - 图381B R O W S E 命 令 - 图382B R O W S E 命 令 - 图383决 定 当 从 一 个 字 段 移 去 光 标 或 激 活 另 一 个 窗 口 时 是 否 对 检 验 选 项 中 的 表 达式 求 值 若 不 包 括 :F 则 lExpression1 仅 在 修 改 字 段 时 求 值 若 包 括 :F 则即 使 没 有 修 改 字 段 也 对 lExpression1 求 值

:E = cMessageText

B R O W S E 命 令 - 图384B R O W S E 命 令 - 图385B R O W S E 命 令 - 图386B R O W S E 命 令 - 图387B R O W S E 命 令 - 图388B R O W S E 命 令 - 图389B R O W S E 命 令 - 图390B R O W S E 命 令 - 图391B R O W S E 命 令 - 图392如 果 有 效 性 检 测 表 达 式 :V = lExpression1 值 为 真 则 允 许 光 标 移 动 如果 该 表 达 式 值 为 假 光 标 停 留 在 当 前 字 段 V isual FoxPro 产 生 一 个 错 误信 息

B R O W S E 命 令 - 图393B R O W S E 命 令 - 图394B R O W S E 命 令 - 图395B R O W S E 命 令 - 图396B R O W S E 命 令 - 图397如果包含错误选项 (:E) cMessageText 代替系统错误信息出现 CMessageText 仅在 SET NOTIFY 为 ON 时出现 若 SET BELL 为 ON 则响铃

B R O W S E 命 令 - 图398B R O W S E 命 令 - 图399B R O W S E 命 令 - 图400如果 :V = lExpression1 值为 0 则不出现错误信息 光标停留于当前有效字段 这 使 得

B R O W S E 命 令 - 图401用户可以在有效性检测例程中显示自己定义的错误信息

B R O W S E 命 令 - 图402B R O W S E 命 令 - 图403B R O W S E 命 令 - 图404B R O W S E 命 令 - 图405下例打开 products 表并显示 product_id 和 prod_name 字段 Product_id 字段是一个可接收 5 个数字的数值型字段 在该例中 假定 大于 100 的 product_id 是无效的

B R O W S E 命 令 - 图406B R O W S E 命 令 - 图407B R O W S E 命 令 - 图408B R O W S E 命 令 - 图409B R O W S E 命 令 - 图410B R O W S E 命 令 - 图411B R O W S E 命 令 - 图412:V 指定有效性准则 不论数据是否更改 :F 都强制执行有效性检查 :E 使用用户自定义错误信息来代替 Visual FoxPro 系统错误信息 在 Visual FoxPro ForPro for Windows 和 FoxPro for Macintosh 中 错误信息显示于 Visual FoxPro 主窗口底部的状态栏中

B R O W S E 命 令 - 图413按下 ESC 键可关闭浏览窗口

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE products && Open products table

IF _WINDOWS OR _MAC SET STATUS BAR ON

ENDIF

USE products

BROWSE FIELDS in_stock :V = in_stock < 100 ;

:F ;

:E = ‘ The stock amount must be less than 100 ’

:P = cFormatCodes

B R O W S E 命 令 - 图414B R O W S E 命 令 - 图415B R O W S E 命 令 - 图416B R O W S E 命 令 - 图417B R O W S E 命 令 - 图418如 果 包 含 FIELDS 子 句 用 户 也 可 为 列 表 中 的 每 一 字 段 指 定 一 个 图 片 选 项(:P) 图 片 选 项 可 创 建 一 个 代 码 列 表 该 列 表 控 制 浏 览 窗 口 中 每 一 字 段 的 显示 和 数 据 输 入 CFormatCodes 即 为 代 码 列 表

B R O W S E 命 令 - 图419B R O W S E 命 令 - 图420下例采用图片选项 只允许 以 指定格式的数值型数据输入到 unit_price 字段中

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE products && Open products table

BROWSE FIELDS unit_price :P = ‘ 99,999.99 ’

B R O W S E 命 令 - 图421B R O W S E 命 令 - 图422B R O W S E 命 令 - 图423B R O W S E 命 令 - 图424有关图片选项代码的详细内容 请参阅稍后的 Format 和 InputMask 属性

:B = eLowerBound , eUpperBound [:F]

B R O W S E 命 令 - 图425B R O W S E 命 令 - 图426B R O W S E 命 令 - 图427B R O W S E 命 令 - 图428B R O W S E 命 令 - 图429B R O W S E 命 令 - 图430B R O W S E 命 令 - 图431指 定 一 对 边 界 字 段 数 据 必 须 处 于 边 界 范 围 内 边 界 表 达 式 eLowerBoundeUpperBound 必 须 与 字 段 的 数 据 类 型 匹 配 并 且 不 能 是 用 户 自 定 义 函 数 如果 数 据 不 处 在 eLowerBoundeUpperBound 之 间 则 出 现 一 条 系 统 错 误 信 息 指 出 数 据 允 许 的 范 围

B R O W S E 命 令 - 图432B R O W S E 命 令 - 图433B R O W S E 命 令 - 图434B R O W S E 命 令 - 图435默认情况下 仅在修改字段内容时对 输 入的数据作边界值检查 要想强制执行边界值检查 需包含强制有效性选项 (:F)

B R O W S E 命 令 - 图436B R O W S E 命 令 - 图437下例确保 in_stock 字段值处于 1 和 100 之间 按 ESC 键可关闭浏览窗口

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE products && Open products table BROWSE FIELDS in_stock :B = 1, 100 :F

: H = cHeadingText

B R O W S E 命 令 - 图438B R O W S E 命 令 - 图439B R O W S E 命 令 - 图440cHeadingText 指 定 的 自 定 义 标 头 替 换 默 认 字 段 名 默 认 情 况 下 在 浏 览 窗口 中 用 字 段 名 作 列 标 头

B R O W S E 命 令 - 图441下例为所显示的字段提供自定义列标头

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE products && Open products table

BROWSE FIELDS prod_name :H = ‘ Product Name :’, ; unit_price :H = ‘ Price per Unit: ’

: W = lExpression2

B R O W S E 命 令 - 图442B R O W S E 命 令 - 图443B R O W S E 命 令 - 图444B R O W S E 命 令 - 图445B R O W S E 命 令 - 图446B R O W S E 命 令 - 图447B R O W S E 命 令 - 图448B R O W S E 命 令 - 图449B R O W S E 命 令 - 图450B R O W S E 命 令 - 图451B R O W S E 命 令 - 图452根 据 逻 辑 表 达 式 lExpression2 的 值 用 户 可 以 禁 止 光 标 移 向 某 一 字 段 如 果lExpression2 值 为 假 (.F.) 则 禁 止 光 标 移 向 该 字 段 如 果 lExpression2 值为 真 (.T.) 光 标 可 移 向 该 字 段 LExpression2 支 持 用 户 自 定 义 函 数

B R O W S E 命 令 - 图453B R O W S E 命 令 - 图454B R O W S E 命 令 - 图455B R O W S E 命 令 - 图456B R O W S E 命 令 - 图457B R O W S E 命 令 - 图458如果禁止光标移向所有字段 则当前记录标记为只读记录 只有在每一字段均包含一个值为 假 的 WHEN 子句时 这种情况才出现

B R O W S E 命 令 - 图459B R O W S E 命 令 - 图460B R O W S E 命 令 - 图461B R O W S E 命 令 - 图462B R O W S E 命 令 - 图463SET SKIP 支持 允许用户 在 两表之间 建立 一对多关系 对于父表中的每一条记录均可在子表中有多个相关记录 如果创建一对多关系 那么使用 BROWSE 命令可以查看父表和子表中的记录

B R O W S E 命 令 - 图464B R O W S E 命 令 - 图465B R O W S E 命 令 - 图466一旦显示 父记录 子表的第一条匹配记录 接着显示 随后的任何匹配记录均在父记录和第一条匹配记录之后显示

B R O W S E 命 令 - 图467B R O W S E 命 令 - 图468B R O W S E 命 令 - 图469B R O W S E 命 令 - 图470B R O W S E 命 令 - 图471B R O W S E 命 令 - 图472如果记录指针位于一个父记录上 可以在浏览窗口中 按 CTRL+DOWN ARROW 可以将记录指针移动到后一个父记录 按 CTRL+UP ARROW 可以将记录指针移动到前一个父记录 有关一对多关系 请参阅稍后的 SET SKIP 命令

B R O W S E 命 令 - 图473B R O W S E 命 令 - 图474FIELDS 子句的字段列表包含父表和子表的记录 字段名前应加上表别名 orders 或

B R O W S E 命 令 - 图475B R O W S E 命 令 - 图476customer 和句点分隔符

CLEAR

CLOSE DATABASES

OPEN DATABASE (HOME(2) + ‘data\testdata ’) USE customer ORDER cust_id IN 0 && 父表USE orders ORDER cust_id IN 0 && 子表SELECT customer && 返回父表工作区

SET RELATION TO cust_id INTO orders && 创建关系

SET SKIP TO orders && 一对多关系

WAIT WINDOW ‘Scroll to see shipping dates for each customer’ NOWAIT BROWSE FIELDS customer.cust_id :H =’Customer Number’, ;

customer.city :H=’Customer City’, orders.shipped_on

B R O W S E 命 令 - 图477有用的函数 几个 Visual FoxPro 函数返回 有关 浏览窗口的有用信息

函 数 说 明

请 参 阅

VARREAD( )

B R O W S E 命 令 - 图478返 回 活 动 浏 览 窗 口 中 光 标 所 在的 字 段 名

RECNO( )

B R O W S E 命 令 - 图479返 回 活 动 浏 览 窗 口 中 选 定 的记 录 号

C H A N G E , EDIT , Grid Contro l, SET SKIP , WTITL E ( )