Browse命令浏览表

iFoxu 2010-09-03 08:45:05
用browse时,比如在数据工作期窗口中的“浏览”,发现有时候打开的表窗口右上角的窗口关闭按钮不可用,为什么?有什麽说法吗?
...全文
823 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gracedida 2010-09-11
  • 打赏
  • 举报
回复
我试验了,关闭按钮可以用的
gzpydc 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ifoxu 的回复:]
楼上,我问题的答案在里面吗?但我没找见啊?
[/Quote]

你的答案没有在 #2 出现,我现在也没安装VFP,在未找到解决方法前,你可以暂时用Ctrl + W来关闭表
iFoxu 2010-09-10
  • 打赏
  • 举报
回复
楼上,关当然没问题,我只是想知道为什么按钮不可用。还是谢谢了。
iFoxu 2010-09-09
  • 打赏
  • 举报
回复
楼上,我问题的答案在里面吗?但我没找见啊?
xilaianzxsc 2010-09-09
  • 打赏
  • 举报
回复
语法

BROWSE
[FIELDS FieldList]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[FOR lExpression1 [REST]]
[FORMAT]
[FREEZE FieldName]
[KEY eExpression1 [, eExpression2]]
[LAST | NOINIT]
[LOCK nNumberOfFields]
[LPARTITION]
[NAME ObjectName]
[NOAPPEND]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLGRID] [NORGRID]
[NOLINK]
[NOMENU]
[NOOPTIMIZE]
[NOREFRESH]
[NORMAL]
[NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName]
[SAVE]
[TIMEOUT nSeconds]
[TITLE cTitleText]
[VALID [:F] lExpression2 [ERROR cMessageText]]
[WHEN lExpression3]
[WIDTH nFieldWidth]
[WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN]
[COLOR SCHEME nSchemeNumber]

参数

FIELDS FieldList

指定显示在浏览窗口中的字段。这些字段以 Fieldlist 指定的顺序显示。在该字段列表中可包含其他相关表中的字段。在包含一个相关表的字段时,应在字段名前面放一个句号及相关表的别名。

如果忽略 FIELDS 子句,表中的所有字段按其在表结构中出现的顺序显示。

FONT cFontName [, nFontSize]

指定浏览窗口的字体及字体大小。字符型表达式 cFontName 指定字体,数值型表达式 nFontSize 指定字体大小。例如,下列子句指定显示于浏览窗口的字段为 16 磅 Courier 字体。

FONT 'Courier',16


如果在包含 FONT 子句的同时省略了字体大小 nFontSize,则浏览窗口采用 10 磅字体。

如果省略 FONT 子句,则采用 8 磅 MS Sans Serif 字体。

如果用户指定的字体不可用,则用具有相似字体特征的字体代替。

STYLE cFontStyle

指定浏览窗口的字形。如果省略 STYLE 子句,则采用常规字形。

如果指定的字形不可用,则使用具有相似特征的字形代替,或使用Normal字体。

字符 字形
B 粗体
I 斜体
N 常规
O 轮廓线
Q 不透明
S 阴影
– 删除线
T 透明
U 下划线

可用多个字符的组合来指定字形。

指定一个条件,只有 lExpression1 为“真”的记录才显示于浏览窗口。

若 lExpression1 是一个可优化表达式,则 Rushmore 优化由 BROWSE FOR 指定的查询。为达到最佳性能,需在 FOR 子句中采用可优化表达式。其它相关信息,请参阅本书稍后SET OPTIMIZE 命令和《Microsoft Visual FoxPro 6.0 中文版程序员指南》的第十五章“优化应用程序”。

包含 FOR 子句使记录指针移向符合该条件的第一条记录。包含 REST 子句使记录指针处于当前位置。

REST

防止在 FOR 子句打开浏览窗口时,记录指针从当前位置移向表顶部。若不包含 REST,默认情况下,BROWSE 将记录指针放置在表顶部。

FORMAT

使用格式文件来控制浏览窗口的显示和输入数据的格式。首先应用 SETFORMAT 打开格式文件。以下是从格式文件中提取的、应用于浏览窗口的信息:

要浏览的字段列表


所有 VALID 子句


所有 WHEN 子句


所有 RANGE 子句


字段大小(如 PICTURE 子句所指定)

所有 SAY 表达式(包含 BROWSE 计算结果字段)
下例采用格式文件检查输入到浏览窗口中的数据,忽略由 @ ... GET 指定的位置。

第一行创建一个浏览字段 (cust_id),该字段为 5 个字符宽,并且只允许输入字母和数字。

第二行创建一个浏览字段 (company),该字段不能包含空 (blank) 值,且最多只能包含 20 个字母字符。

第三行创建一个浏览字段 (contact),只在该字段为空 (blank) 时才输入数据。


FREEZE FieldName

允许在浏览窗口中只修改一个字段。使用 FieldName 指定该字段,其他字段可显示但不能编辑。

KEY eExpression1 [, eExpression2]

限制浏览窗口显示的记录范围。用 KEY 指定浏览窗口显示的记录的一个索引关键字值(eExpression1) 或关键字值的范围 (eExpression1,eExpression2)。所浏览的表必须已建立索引,并且索引关键字值或 KEY 子句的值必须与主索引文件或标识的索引表达式具有相同的数据类型。

例如,customer 表包含一个保存邮政编码的字符字段。如果该表已建立邮政编码字段索引,则可在 KEY 子句指定邮政编码的范围。

下例中,只有在 10,000 到 30,000 范围内的邮政编码记录才显示在浏览窗口。


LAST | NOINIT

保存浏览窗口外观的任何变更。这些变更可保存于 FOXUSER 文件中,包括字段列表、浏览窗口的位置及尺寸等内容的变更。

如果用户发出带有 LAST 或 NOINIT 子句的 browse 命令,在 SET RESOURCE 为 ON的情况下,以最后保存于 FOXUSER 文件中的配置打开浏览窗口,恢复最后一个browse 命令创建的浏览窗口。如果在命令窗口中最后发出的 browse 命令带有一长串子句,那么使用包含 LAST 或 NOINIT 选项的 browse 命令,可以避免重新键入命令。有关 FOXUSER 文件的详细内容,请参阅 SET RESOURCE。

如果最后一个浏览窗口是由一个包含 PREFERENCE 子句的 browse 命令打开的,BROWSE LAST 将不再恢复原配置。如果用户按 CTRL+Q 退出浏览,则当前工作区中的浏览窗口配置的任何变更,都不会被保存。LAST与NOINIT作用相同。NOINIT 是为与 dBASE 兼容而提供的。

LOCK nNumberOfFields

指定不需滚动就能在浏览窗口左分区中可见的字段数。分区的大小可自动调整以显示nNumberOfFields 指定的字段数。

LPARTITION

指定光标位置在浏览窗口左分区的第一个字段。默认情况下,打开浏览窗口时,光标位于右分区的第一字段。

NAME ObjectName

为浏览窗口创建一个对象引用,允许在操作浏览窗口时使用表格控件的面向对象属性。有关在 Visual FoxPro 中的面向对象编程的其他信息,请参阅《Microsoft Visual FoxPro 6.0 中文版程序员指南》的第三章“面对对象程序设计”。有关您能够为使用 NAME 子句创建的“浏览”窗口指定的表格控件属性的内容,请参阅稍后的“表格控件”。

NOAPPEND

禁止用户通过如下方式添加表记录:按 CTRL+Y 键,或选择“表”菜单的“追加记录”命令。

要点 包含 NOAPPEND 并不禁止用户在程序中向浏览窗口中添加记录(由VALID、WHEN 或 ON KEY LABEL 等命令创建)。

NODELETE

禁止在浏览窗口中为记录作删除标记。默认情况下,按 CTRL+T 键、选择 Visual FoxPro中的表菜单或 FoxPro 早期版本浏览菜单的切换删除标记项,或单击要删除的记录的最左边一列,可为记录作删除标记。包含 NODELETE 不禁止用户在程序中为浏览窗口中的记录作删除标记。

NOEDIT | NOMODIFY

禁止用户修改表。NOEDIT 等同于 NOMODIFY。包含其中任何一个子句,用户可以浏览或搜索表,可以添加或删除记录,但不能编辑。

NOLGRID

Removes the field gridlines in the left partition of the Browse window.

NORGRID

删除浏览窗口左分区中字段的网格线。

NOLINK

将浏览窗口的左右两部分断开联系。默认情况下,浏览窗口的左分区和右分区链接在一起,即滚动其中一区时,另一区也随之滚动

NOMENU

从系统菜单栏中删除“表”菜单标题,防止访问“浏览”菜单。

NOOPTIMIZE

禁止 BROWSE 进行 Rushmore 优化。有关详细内容,请参阅稍后部分的SET OPTIMIZE 命令,以及《Microsoft Visual FoxPro 6.0 中文版程序员指南》的第十五章“优化应用程序”。

NOREFRESH

禁止对浏览窗口进行刷新。浏览窗口以 SET REPRESH 确定的速度进行刷新。NOREPRESH 对只读文件非常有用,并且可以改进性能。

NORMAL

使用正常的默认设置打开浏览窗口,如颜色、尺寸、标题、位置和控制选项(如 GROW、FLOAT、ZOOM 等等)。如果省略 NORMAL,而当前输出窗口为用户自定义窗口,浏览窗口使用用户自定义设置。

NOWAIT

打开浏览窗口之后继续运行程序。程序不必等待浏览窗口关闭,而是继续执行BROWSE NOWAIT 之后的程序行。若在程序中发出 browse 命令时省略 NOWAIT,则浏览窗口打开后,暂停执行程序,直至浏览窗口关闭。NOWAIT 只用于程序中。在命令窗口中发出 browse 命令时包含 NOWAIT 无此作用。

PARTITION nColumnNumber

将浏览窗口拆分为左右分区,nColumnNumber 指定拆分条所在的列。例如,nColumnNumber 为 20,则拆分条放置于浏览窗口的第 20 列。

LEDIT

指定浏览窗口的左分区以编辑方式显示。

REDIT

指定浏览窗口的右分区以编辑方式显示。下例打开浏览窗口,使拆分条位于第 20 列,并以编辑方式打开右分区。

若同时包含 LEDIT、REDIT 两个关键字,以编辑方式打开两个分区。


PREFERENCE PreferenceName

保存浏览窗口的属性和选项供以后使用。PREFERENCE 不像 LAST 以先前工作区中出现的方式打开浏览窗口,而是将浏览窗口的属性随时存储于FOXUSER 资源文件中。PREFERENCE 可在任何时候恢复。

在第一次发出带有指定设置的 browse 命令时,在 FOXUSER 文件中创建一个保存浏览窗口配置的数据项。以后用同样的状态名发出 browse 命令时,恢复浏览窗口该状态。在浏览窗口关闭时,更新该状态。

状态名可为 10 个字符长,必须以字母或下划线开头,可包括字母、数字或下划线的任意组合。

如果您喜爱某种状态,可禁止其被更改。关闭浏览窗口,发出 SET RESOURCE OFF 命令,将 FOXUSER 作为一个表打开,并将逻辑字段 READONLY 的值更改为“真”(.T.),可将包含状态的记录改为只读记录。

有关 FOXUSER 资源文件的详细内容,请参阅 SET RESOURCE。若按 CTRL+Q 键退出浏览窗口,则资源文件不保存任何对浏览窗口的更改。

SAVE

保持浏览窗口及其所有备注字段的文本编辑窗口为活动和可视(打开)的。用键盘或鼠标访问其他打开的窗口后,可以返回浏览窗口。SAVE 仅用于程序中。在命令窗口中发出 browse 命令时包含 SAVE,则无此作用。在默认情况下,BROWSE SAVE 以交互方式工作。

TIMEOUT nSeconds

指定浏览窗口等待输入的时间。数值型表达式 nSeconds 指定在没有任何输入的情况下,浏览窗口保持多少秒后才自动关闭。

TIMEOUT 仅用于程序中。在命令窗口中发出 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 && Open customer table
BROWSE WINDOW wBrowse ;
FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
TIMEOUT 10
RELEASE WINDOW wBrowse


TITLE cTitleText

以 cTitleText 指定的标题改写显示于浏览窗口标题栏中的默认表名或别名。否则,要浏览的表的名称或别名显示于标题栏中。

如果发出 BROWSE WINDOW 命令将浏览窗口置于用户自定义窗口中,则浏览窗口的标题替换用户自定义窗口的标题。

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE;
TITLE 'My Browse Window' ;
FIELDS phone :H = 'Phone Number' , ;
company :H = 'Company:'


VALID lExpression2

在浏览窗口中执行记录级有效性检查。VALID 子句仅在记录已被更改并且试图将光标移至另一记录时执行。如果只是对备注字段的更改,不执行 VALID子句。

如果 VALID 返回值为“真”(.T.),用户可将光标移向另一记录;如果 VALID 返回值为“假”(.F.),光标停留在当前记录上,Visual FoxPro 产生一条错误信息。如果VALID 返回值为 0,光标停留在当前记录上,但不显示错误信息。

不要把 VALID 子句和启用字段级有效性的检验选项 (:V) 相混淆。

:F

在用户将光标移至下一个记录之前,强制执行 VALID 子句。这种情况下,即使记录没更改,也执行 VALID 。

ERROR cMessageText

指定一条错误信息来替换系统默认的错误信息。在 VALID 返回值为“假”(.F.) 时,Visual FoxPro 显示 cMessageText。

WHEN lExpression3

在用户把指针移到另一条记录时做出评估,若评估为真,则用户可以修改将要移到的记录,若评估为假,则该记录为只读或用户不能修改它。指定一条错误信息来改写系统默认的错误信息。在 VALID 返回值为“假”(.F.) 时,Visual FoxPro 显示 cMessageText。

在激活另一窗口时,不执行 WHEN 子句。

WIDTH nFieldWidth

将浏览窗口中所有字段的字符数限制为 nFieldWidth,使用左右箭头或水平滚动栏,可水平滚动字段内容。使用 WIDTH 子句并不会修改表中字段的大小,而只修改字段在浏览窗口中的显示方式。如果已由 FIELDS 子句指定一个字段的宽度,它将替换 WIDTH 子句所指定的该字段的宽度。

WINDOW WindowName1

指定一个用户自定义窗口,浏览窗口将采用此窗口的特性。例如,如果该用户自定义窗口是由 FLOAT 子句创建的,则浏览窗口可移动。所指定的窗口不需要是活动的和可见的,但必须是已定义的。

IN [WINDOW] WindowName2

指定打开浏览窗口的父窗口,该浏览窗口并不采用父窗口的特性。在父窗口内激活的浏览窗口不能移出该父窗口。如果父窗口移动,则浏览窗口随之移动。

要访问浏览窗口,必须首先用 DEFINE WINDOW 定义父窗口,而且父窗口必须是活动的和可见的。

IN SCREEN

在用户自定义窗口为活动窗口时,将浏览窗口放置在 Viusal FoxPro 主窗口中。

COLOR SCHEME nSchemeNumber

指定用于浏览窗口的配色方案的编号。

浏览窗口假定配色方案已由 Windows 的颜色控制面板建立。

说明

浏览窗口允许查看、编辑表中的记录,并追加额外的记录。Visual FoxPro 允许同时打开多个浏览窗口

若按 Esc 键退出浏览窗口,则放弃对最后一个字段所做的更改。然而,若在修改一个字段后移向另一记录,则可保存对此字段所做的更改。

有关在“浏览”窗口中定位的信息,请参阅帮助中的《用户指南》第二章“创建表和索引”。

字段列表可以指定为字段或计算结果字段的任意组合。

字段列表的语法是:

FieldName1
[:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]]
[:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]]
[:H = cHeadingText]
[:W = lExpression2]
[, FieldName2 [:R]...]


计算结果字段 字段列表可包含创建计算结果字段的语句。计算结果字段包含由表达式创建的只读数据。该表达式可以是任何格式,但必须是有效的 Visual FoxPro 表达式。

用于创建计算结果字段的语句格式为:

CalculatedFieldName = eExpression

下面的示例创建一个名为 location 的计算结果字段:

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS location = ALLTRIM(city) + ', ' + country


city 和 country 都是当前选定表的字段名。

FIELDS 子句的字段列表包含对显示于浏览窗口中的字段进行特殊处理的选项:

:R

指定字段为只读字段,可显示但不可编辑字段包含的数据。

下例中打开的浏览窗口包含 cust_id 和 company 字段。Cust_id 字段为只读字段,不可更改。

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS cust_id:R, company


:nColumnWidth

指定列中字段显示的大小,:nColumnWidth 值不影响表中字段的大小,只影响字段在浏览窗口中显示的方式。

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

检验选项 (:V) 在浏览窗口中执行字段级数据有效性检查。若从一个字段移去光标时,lExpression1 值为“真” (.T.),则认为输入到该字段的数据正确,光标移向下一字段。

若 lExpression1 值为“假” (.F.),则认为所输入数据不正确,光标停留在当前字段并显示一条错误信息。若 lExpression1 值为 0,则认为所输入数据不正确,光标仍停留在当前字段但不显示错误信息。

对于备注字段不执行此检验选项。

默认情况下,lExpression1 只在修改字段时求值。欲强制执行检验,需包括 :F 选项。用户可包含下面所述的 :E 选项来显示自己定义的错误信息。

:F

决定当从一个字段移去光标或激活另一个窗口时,是否对检验选项中的表达式求值。若不包括 :F,则 lExpression1 仅在修改字段时求值。若包括 :F,则即使没有修改字段也对 lExpression1 求值。

:E = cMessageText

如果有效性检测表达式 :V = lExpression1 值为“真”,则允许光标移动。如果该表达式值为“假”,光标停留在当前字段,Visual FoxPro 产生一个错误信息。

如果包含错误选项 (:E),cMessageText 代替系统错误信息出现。CMessageText 仅在 SETNOTIFY 为 ON 时出现。若 SET BELL 为 ON,则响铃。

如果 :V = lExpression1 值为 0,则不出现错误信息,光标停留于当前有效字段。这使得用户可以在有效性检测例程中显示自己定义的错误信息。

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧