E D IT 命 令
显示要编辑的字段 .
语 法
EDIT
[FIELDS FieldLis t]
[ Scope ] [FOR lExpression1 ] [ W H ILE lExpression2 ] [FONT cFontName [, nFontSize ]]
[STYLE cFontStyle ] [FREEZE FieldNam e]
[KEY eExpression1 [, eExpression2 ]] [LAST | NOINIT]
[LPARTITION]
[NAME Ob jectNam e] [NOAPPEND] [NODELETE]
[NOEDIT | NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceNam e] [REST]
[SAVE]
[TI M E O U T nSecond s] [TITLE cTitleTex t]
[VALID [:F] lExpression3 [ERROR cMessageText ]] [ W H E N lExpression4 ]
[ W IDTH nFieldWidth ]
[ W INDOW W indowName1 ]
[IN [WINDOW] W indowName2 | IN SCREEN
[COLOR SCHEME nSchemeNumbe r ]
参 数 描 述
FIELDS FieldList
指 定 出 现 在 编 辑 窗 口 中 的 字 段 这 些 字 段 按 照 FieldList 中 指 定 的 顺 序 显 示 在 字 段 列 表 中 可 以 包 含 其 他 相 关 表 的 字 段 当 包 含 相 关 表 的 字 段 时 应 在 字
段 名 前 加 上 表 别 名 和 一 个 句 点
如果省略 FIELDS 将按照字段在表结构中出现的顺序显示表的所有字段
字段列表可以指定字段或计算结果字段的任意组合 包括其他工作区中打开表的字段 字段列表的语法是
FieldName1 [:R]
[:nColumnWidth]
[:V = lExpression1 [:F] [:E = cMessageText]] [:P = cFormatCodes]
[:B = eLowerBound, eUpperBound [:F]] [:H = cHeadingText]
[:W = lExpression2] [, FieldName2 [:R]...]
Calculated Fields
字段列表中可以包含语句 来创建计算结果字段 计算结果字段中包含用表达式创建的只读数据 表达式可以是任何形式 但它必须是一个有效的 Visual FoxPro 表达式用于创建计算结果字段的语法是
CalculatedFieldName = eExpression
以下示例创建一个名为 location 的计算结果字段
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打开 customer 表
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
FIELDS 子句的字段列表包含有 8 个选项 可以对编辑窗口中显示的字段进行特殊处理
: nColumnWidth
以 列 为 单 位 指 定 字 段 的 显 示 宽 度 nColumnWidth 的 值 并 不 影 响 表 中 该 字 段 的大 小 只 是 改 变 此 字 段 在 编 辑 窗 口 中 的 显 示
:R
下 面 的 示 例 打 开 编 辑 窗 口 并 显 示 cust_id 和 company 这 两 个 字 段 其 中字 段 cust_id 是 只 读 的 不 能 更 改
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打开 customer 表
EDIT FIELDS cust_id:R, company
: V = lExpression1
指 定 在 编 辑 窗 口 内 执 行 字 段 级 数 据 有 效 性 检 查 的 选 项 当 把 光 标 从 此 字 段 上移 走 时 如 果 lExpression1 计 算 为 真 (.T.) 则 说 明 向 此 字 段 输 入 的 数 据是 正 确 的 光 标 将 移 动 到 下 一 字 段
如果 lExpression1 取值为 假 (.F.) 则输入的数据不正确 光标仍停留在此字段上并显示错误信息 如 果 lExpression1 取值为 0 则所输入的数据不正确 光标仍停留在此字段上 但不显示任何错误信息
默认情况下 只有当修改此字段时 才计算 lExpression1 的值 要强制进行检查 可加入 :F 选项
如果加入 :E 选项 则可以显示自己定义的错误信息对于备注字段 不执行此检验选项
:F
指 定 强 制 有 效 性 检 查 选 项 此 选 项 决 定 从 一 个 字 段 移 走 光 标 或 另 一 个 窗 口 被激 活 时 是 否 计 算 检 验 选 项 表 达 式 ( lExpression1 ) 的 值 如 果 不 包 含 :F 选
项 则 只 有 修 改 此 字 段 时 才 计 算 lExpression1 的 值 如 果 包 含 :F 选 项 即使 此 字 段 未 作 修 改 也 要 计 算 lExpression1 的 值
:E = cMessageText
显 示 由 cMessageText 指 定 的 错 误 信 息 而 不 是 默 认 的 系 统 信 息
如果有效性检查表达式 V= lExpression1 计算为 真 (.T.) 则光标从字段中正常移出 如果该表达式计算为 假 (.F.) 则光标仍停留在字段上 并显示错误信息
如果有效性检查表达式 V= lExpression1 计算为 0 则不显示错误信息 且光标仍停留
在被检查的字段上 允许您在有效性检查例程中显示自定义的错误信息
只有当 SET NOTIFY 为 ON 时 才能显示此错误信息 当 SET BELL 为 ON 时 将会响铃
下面的示例打开 products 表并显示 product_id 和 prod_name 这两个字段 在 product_id
字段中输入一个大于 100 的值来执行字段有效性检验
:V 指定了有效性检验准则 :F 说明无论数据是否更改 都要强制进行有效性检查 :E
把 Visual FoxPro 的系统错误信息替换为用户自定义的错误信息在 Visal FoxPro 中 错误信息都显示在主窗口底部的状态栏上 按 ESC 键关闭编辑窗口
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE products && 打开 products 表
IF _WINDOWS OR _MAC SET STATUS BAR ON
ENDIF
USE products
EDIT FIELDS in_stock :V = in_stock < 100 ;
:F ;
:E = 'The stock amount must be less than 100'
:P = cFormatCodes
指 定 一 个 模 板 选 项 允 许 您 创 建 由 cFormatCodes 指 定 的 编 辑 模 板 模 板 控制 编 辑 窗 口 中 各 个 字 段 数 据 的 显 示 和 输 入
有关使用模板编辑代码的详细内容 请参阅 @ ... GET 和 @ ... SAY 除了 M 代码以外 在 @ ... GET 和 @ ... SAY 中可用的所有函数和图片代码都能在 PICTURE 和
FUNCTION 子句中使用
下面的示例使用了模板选项 从而在 unit_price 字段上只允许输入特定格式的数值型数据
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE products && 打开 products 表
EDIT FIELDS unit_price :P = '99,999.99'
:B = eLowerBound , eUpperBound [:F]
指 定 一 组 边 界 值 数 据 应 在 这 两 个 边 界 值 之 间 取 值 边 界 值 表 达 式eLowerBound 和 eUpperBound 应 该 与 此 字 段 的 数 据 类 型 相 匹 配 并 且 不 能 是用 户 自 定 义 函 数 的 函 数 名 如 果 输 入 的 数 据 没 有 落 在 eLowerbound 和eUpperBound 之 间 将 会 显 示 一 条 系 统 信 息 指 明 数 据 的 取 值 范 围
默认情况下 只有当更改字段的内容时 才用边界值检查输入的数据 要强制进行边界值检查 应选用强制检验项 (:F)
下面的示例保证 in_stock 字段的值在 1 到 100 之间 按 ESC 键关闭编辑窗口
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE products && 打开 products 表
EDIT FIELDS in_stock :B = 1, 100 :F
: H = cHeadingText
指 定 标 题 选 项 允 许 用 户 用 cHeadingText 指 定 的 标 题 替 换 默 认 的 字 段 名 称默 认 情 况 下 编 辑 窗 口 中 字 段 名 放 置 在 字 段 左 边
下面的示例为所显示的字段提供用户自定义标题
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata') USE products && 打开 products 表
EDIT FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
: W = lExpression2
指 定 W H E N 选 项 根 据 逻 辑 表 达 式 lExpression 的 值 有 条 件 地 禁 止 光 标 移 动到 某 个 字 段 上 ( : W ) 计 算 lExpression 的 值 如 果 lExpression2 取 值 为 假(.F.) 则 不 能 把 光 标 移 到 该 字 段 上 如 果 lExpression2 取 值 为 真 (.T.) 则可 以 把 光 标 移 到 该 字 段 上 lExpression2 也 支 持 用 户 自 义 函 数
如果当前字段标记为只读 则禁止向任一字段移动光标 仅当每一字段都包含计算为假 的 WHEN 子句时 才发生这种情况
Scope
指 定 在 编 辑 窗 口 中 显 示 记 录 的 范 围 说 明 范 围 的 子 句 有 ALL NEXT nRecords RECORD nRecordNumber 以 及 REST EDIT 命 令 默 认 的 作 用 范 围是 所 有 记 录 (ALL)
详细内容 请参阅帮助中的 “ Scope Clauses ”
FOR lExpression1
规 定 只 有 满 足 逻 辑 条 件 lExpression1 的 记 录 才 能 在 编 辑 窗 口 中 显 示 这 有 助于 用 户 筛 选 出 不 需 要 的 记 录
如果 lExpression1 是可优化的表达式 Rushmore 将优化 EDIT FOR 查询 为达到最佳性能 应在 FOR 子句中使用可优化表达式 有关 Rushmore 可优化表达式的详细内 容 请参阅稍后的 SET OPTIMIZE 命令与 Microsoft Visual FoxPro 6.0 中文版程序员指南 第十五章 优化应用程序 中的 掌握 Rushmore 技术
W H ILE lExpression2
指 定 条 件 只 要 逻 辑 表 达 式 lExpression2 计 算 为 真 (.T.) 记 录 就 显 示 在编 辑 窗 口 中
FONT cFontName [, nFontSize ]
指 定 编 辑 窗 口 的 字 体 和 字 体 大 小 其 中 字 符 表 达 式 cFontName 指 定 字 体 名数 值 表 达 式 nFontSize 指 定 字 体 大 小 例 如 下 面 子 句 为 编 辑 窗 口 中 显 示 的字 段 指 定 了 16 磅 的 Courier 字 体
FONT 'Courier', 16
如果包含了 FONT 子句 但省略了字体大小 nFontSize 编辑窗口将使用 10 磅的字体
如果省略了 FONT 子句 则将使用 9 磅的 Arial 字体 如果指定的字体无效 则用类似的字体代替
STYLE cFontStyle
指 定 在 编 辑 窗 口 的 字 形 如 果 省 略 了 STYLE 子 句 将 使 用 常 规 字 形
如果您所指定的字形无效 则使用类似的字形代替
字 符 字 形
B 粗体
I 斜体
-
常规
-
轮廓
Q 不透明
- 阴影
– 删除线
-
透明
-
下划线
可以包含一个以上的字符以指定组合字形 下面的示例打开编辑窗口 并使用加下划线的字形
CLOSE DATABASES
OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表
IF _WINDOWS
EDIT FIELDS contact FONT ‘ System ’ , 15 STYLE ‘ NU ’
ENDIF IF _MAC
EDIT FIELDS contact FONT ‘ Geneva ’ , 14 STYLE ‘ NU ’ ENDIF
FREEZE FieldName
在 编 辑 窗 口 中 只 允 许 更 改 FieldName 中 指 定 的 一 个 字 段 其 余 字 段 能 够 显示 但 不 能 编 辑
KEY eExpression1 [, eExpression2 ]
限 制 在 编 辑 窗 口 中 所 显 示 记 录 的 范 围 使 用 K E Y 子 句 可 以 指 定 能 够 在 编辑 窗 口 中 显 示 的 记 录 的 索 引 关 键 字 值 ( eExpression1 ) 或 关 键 字 值 的 范 围
( eExpression1 ,eExpression2 ) 此 表 应 已 建 立 索 引 并 且 K E Y 子 句 中 包 含 的 索引 关 键 字 值 的 数 据 类 型 应 该 与 主 控 索 引 文 件 或 主 控 索 引 标 识 中 索 引 表 达 式 的数 据 类 型 一 致
在下面的示例中 编辑窗口只显示邮政编码在 10000 到 30000 范围内的记录
CLOSE DATABASES
OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表
SET ORDER TO postalcode
EDIT KEY ‘ 10000 ’, ‘ 30000 ’
LAST | NOINIT
保 存 对 编 辑 窗 口 外 观 设 置 所 做 的 更 改 这 些 更 改 将 保 存 在 FOXUSER 文 件中 其 中 包 括 对 字 段 列 表 每 个 字 段 的 大 小 以 及 编 辑 窗 口 的 位 置 和 大 小 的 更改 有 关 此 文 件 的 详 细 内 容 请 参 阅 SET RESOURCE
如果在 EDIT 命令中包含 LAST 子句 编辑窗口按照最近一次保存在 FOXUSER 文件中的配置打开 这将还原最近一次用 EDIT 命令创建的编辑窗口的配置 如果最近一次在命令窗口中发出的 EDIT 命令包含一长串子句 使用 EDIT LAST 命令可以避免重复键入这些命令
如果按 CTRL+Q 退出编辑窗口 则不会保存当前工作期中对编辑窗口配置的更改
LPARTITION
把 光 标 放 置 在 编 辑 窗 口 左 分 区 的 第 一 个 字 段 上 使 用 PARTITION 子 句 可以 把 编 辑 窗 口 拆 分 为 左 右 两 个 分 区 默 认 情 况 下 编 辑 窗 口 打 开 时 光 标 放置 在 右 分 区 的 第 一 个 字 段 上
如果包含 LPARTITION 子句而无 PARTITION 子句 则光标将放置在编辑窗口的右分区内
N A M E Ob jectName
创 建 编 辑 窗 口 的 对 象 引 用 允 许 使 用 表 格 控 制 面 向 对 象 的 属 性 操 作 编 辑 窗口
有关 Visual FoxPro 中的面向对象程序设计的附加内容 请参阅 Microsoft
Visual FoxPro 6.0 中文版程序员指南 的 第三章 面向对象程序设计 有关可以为通
过 NAME 子句创建的 编辑 窗口指定的网格控件 属性 的详细内容 请参阅稍后的
Grid Control
NOAPPEND
禁 止 用 户 通 过 按 CTRL+Y 或 从 查 看 菜 单 中 选 择 追 加 方 式 向 表 中 添 加记 录
重 要 提 示 包 含 NOAPPEND 并 不 禁 止 用 户 在 编 辑 窗 口 中 通 过 例 程 用 VALID W H E N 或 ON KEY LABEL 创 建 追 加 记 录 .
NODELETE
禁 止 在 编 辑 窗 口 中 为 记 录 做 删 除 标 记 默 认 时 可 以 通 过 按 CTRL+T 从
表 菜 单 中 选 择 切 换 删 除 标 记 或 单 击 待 删 除 记 录 最 左 边 的 一 列 为 记录 作 删 除 标 记
重 要 提 示 包 含 NODELETE 并 不 禁 止 用 户 在 编 辑 窗 口 中 通 过 例 程 用 VALID W H E N 或 ON KEY LABLE 创 建 为 记 录 做 删 除 标 记
NOEDIT | NOMODIFY
禁 止 用 户 修 改 表 NOEDIT 与 NOMODIFY 是 等 价 的 无 论 包 含 哪 一 个 子句 都 可 以 浏 览 或 搜 索 此 表 但 不 能 编 辑 不 过 可 以 追 加 或 删 除 记 录
NOLINK
解 除 编 辑 窗 口 中 左 右 分 区 的 链 接 默 认 时 编 辑 窗 口 中 的 左 右 分 区 是 链接 的 当 在 某 一 分 区 滚 动 时 另 一 分 区 也 相 应 滚 动
N O M E N U
从 系 统 菜 单 栏 中 移 去 V isual FoxPro 的 表 菜 单 标 题 以 及 FoxPro 早 期 版 本
的 浏 览 菜 单 标 题 禁 止 访 问 编 辑 菜 单
NOOPTIMIZE
关 闭 Rushmore 对 EDIT 命 令 的 优 化
关闭 Rushmore 对 EDIT 命令的优化 有关 Rushmore 可优化表达式的详细内容 请参阅稍后的 SET OPTIMIZE 命令与 Microsoft Visual FoxPro 6.0 中文版程序员指南 第十五章 优化应用程序 中的 掌握 Rushmore 技术
N O R M A L
按 照 正 常 默 认 设 置 打 开 编 辑 窗 口 这 些 设 置 包 括 颜 色 大 小 位 置 标 题 和控 制 选 项 G R O W FLOAT Z O O M 等 等 如 果 省 略 N O R M A L 并 且 当前 输 出 窗 口 是 有 其 自 己 设 置 的 用 户 自 定 义 窗 口 编 辑 窗 口 将 使 用 这 些 自 定 义设 置
NOWAIT
编 辑 窗 口 打 开 后 立 刻 继 续 程 序 的 执 行 程 序 并 不 等 待 关 闭 编 辑 窗 口 而 是继 续 执 行 EDIT NOWAIT 所 在 程 序 行 下 面 的 程 序 行 如 果 省 略 NOWAIT
则 在 程 序 中 发 出 EDIT 命 令 时 将 打 开 编 辑 窗 口 并 暂 停 执 行 程 序 直 到 编 辑窗 口 关 闭 为 止
NOWAIT 只用于程序中 从命令窗口发出 EDIT 命令时 加入 NOWAIT 将不起作用
PARTITION nColumnNumber
把 编 辑 窗 口 拆 分 成 左 右 两 个 分 区 nColumnNumber 指 定 拆 分 条 所 在 的 列例 如 如 果 nColumnNumber 等 于 20 则 拆 分 条 放 置 在 编 辑 窗 口 的 第 20 列上
LEDIT
指 定 编 辑 窗 口 的 左 分 区 处 于 浏 览 方 式
REDIT
指 定 编 辑 窗 口 的 右 分 区 处 于 浏 览 方 式 下 面 的 示 例 将 打 开 一 个 编 辑 窗 口 拆分 条 放 置 在 第 20 列 上 并 且 右 分 区 在 打 开 时 处 于 浏 览 方 式
同时包含两个关键字可以使左 右分区在打开时均处于浏览方式
CLOSE DATABASES
OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表
EDIT PARTITION 30 REDIT
PREFERENCE PreferenceName
保 存 编 辑 窗 口 的 属 性 和 选 项 供 以 后 使 用 LAST 能 够 还 原 前 一 工 作 期 中 出 现的 编 辑 窗 口 与 此 不 同 PREFERENCE 在 FOXUSER 资 源 文 件 中 保 存 编 辑窗 口 的 属 性 而 没 有 时 间 限 制 可 随 时 获 取 有 关 FOXUSER 资 源 文 件 的 详 细内 容 请 参 阅 SET RESOURCE
参数设置名称最多可包含 10 个字符 并应以字母或下划线开头 可包含字母 数 字 和下划线的任意组合
如果您刻意要使用某个参数设置名称 可以禁止对其进行更改 关闭编辑窗口 发出
SET RESOURCE OFF 命令 并以表的方式打开 FOXUSER 然后把逻辑字段
READONLY 的值改为 真 (.T.) 就可以把包含参数设置的字段改为只读字段有关 FOXUSER 资源文件的详细内容 请参阅 SET RESOURCE
REST
禁 止 记 录 指 针 从 当 前 位 置 移 动 到 表 的 头 部 默 认 情 况 下 EDIT 命 令 把 记 录指 针 定 位 于 表 的 头 部
S A V E
使 编 辑 窗 口 和 所 有 备 注 字 段 的 文 本 编 辑 窗 口 处 于 活 动 状 态 并 可 见 打 开 在 使 用 鼠 标 或 键 盘 循 环 遍 历 其 他 打 开 的 窗 口 后 即 返 回 到 编 辑 窗 口
SAVE 只可用在程序中 在命令窗口中 使用 EDIT 命令时包含 SAVE 不起作用 因为
EDIT SAVE 在交互方式时总是默认的
TIMEOUT nSeconds
指 定 编 辑 窗 口 等 待 输 入 的 时 间 数 值 表 达 式 nSeonds 指 定 经 过 多 少 秒 仍 没 有输 入 编 辑 窗 口 就 自 动 关 闭
TIMEOUT 只在程序中可用 从命令窗口中发出带此子句的 EDIT 命令时没有什么作用 下面的示例中 如果 10 秒钟内没有输入 则编辑窗口关闭
DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ; CLOSE ;
GROW ;
COLOR SCHE ME 10 CLOSE DATABASES
OPEN DATABASE (HOME(2) + ‘ data\testdata ’ )
USE customer && 打开 customer 表
EDIT WINDOW wEdit ;
FIELDS phone :H = ‘ Phone Number:’ , ; company :H = ‘ Company:’ ;
TIMEOUT 10 RELEASE WINDOW wEdit
TITLE cTitleText
用 cTitleText 指 定 的 标 题 改 写 编 辑 窗 口 标 题 栏 中 出 现 的 默 认 表 名 或 别 名 否则 正 被 浏 览 的 表 的 名 称 或 别 名 将 出 现 在 标 题 栏 上
如果发出 EDIT WINDOWS 命令把编辑窗口放在某个用户自定义窗口中 则编辑窗口的标题将替换用户自定义窗口的标题
CLOSE DATABASES
OPEN DATABASE (HOME(2) + ‘ data\testdata ’ ) USE customer && 打开 customer 表
EDIT;
TITLE ‘ My Edit Window ’ ;
FIELDS phone :H = ‘ Phone Number ’ , ; company :H = ‘ Company:’
VALID lExpression3
在 编 辑 窗 口 中 执 行 记 录 级 有 效 性 检 查 只 有 在 更 改 了 记 录 并 且 把 光 标 移 到
另 一 个 记 录 上 时 才 执 行 VALID 子 句 如 果 只 是 对 备 注 字 段 作 了 更 改 则 不执 行 VALID 子 句
如果 VALID 子句返回 真 (.T.) 那么可以把光标移到另一个记录上 如 果 VALID 子句返回 假 (.F.) 则光标仍停留在当前字段上 Visual FoxPro 显示错误信息 如 果包含 ERROR 子句 则可以在 VALID 子句返回 假 值时显示自定义的错误信息 字符表达式 cMessageText 作为错误信息显示 如果 VALID 子句的返回值为 0 则光标仍然停留在当前字段上 但不显示错误信息
不要把 VALID 子句与启用字段有效性检查的检验选项 (:V) 混淆起来
:F
强 制 在 用 户 把 光 标 移 到 下 个 一 记 录 之 前 执 行 VALID 子 句 在 这 种 情 况 下即 使 当 前 记 录 未 作 更 改 也 执 行 VALID 子 句
ERROR cMessageText
用 cMessageText 定 义 错 误 信 息 的 内 容 并 指 定 用 此 错 误 信 息 改 写 系 统 默 认 信息 当 VALID 子 句 返 回 假 (.F.) 时 V isual FoxPro 显 示 自 定 义 的 错 误 信息
W H E N lExpression4
当 用 户 把 光 标 移 到 另 一 个 记 录 上 时 计 算 某 个 条 件 是 否 满 足 如 果lExpression4 为 真 (.T.) 则 用 户 可 以 修 改 光 标 所 在 的 记 录 如 果lExpression4 为 假 (.F.) 或 0 则 光 标 所 在 的 记 录 成 为 只 读 记 录 不 能 修改
当激活另一个窗口时 不执行 WHEN 子句
W IDTH nFieldWidth
限 制 编 辑 窗 口 每 个 分 区 中 所 有 字 段 所 能 显 示 的 字 符 数 不 超 过 nFieldwidth 包含 W IDTH 子 句 并 不 更 改 表 中 字 段 的 大 小 只 改 变 字 段 在 编 辑 窗 口 中 的 显 示方 式 如 果 已 经 用 FIELDS 子 句 指 定 了 某 个 字 段 的 宽 度 则 此 宽 度 值 将 忽 略由 W IDTH 子 句 为 这 个 字 段 指 定 的 宽 度 值
W INDOW W indowName1
指 定 一 个 用 户 自 定 义 窗 口 编 辑 窗 口 具 有 与 之 相 同 的 特 征 例 如 如 果 创 建此 用 户 自 定 义 窗 口 时 使 用 了 FLOAT 子 句 则 编 辑 窗 口 也 可 以 移 动 所 指 定的 窗 口 不 一 定 要 活 动 或 可 见 但 必 须 已 定 义
IN [WINDOW] W indowName2
指 定 一 个 父 窗 口 编 辑 窗 口 在 其 中 打 开 编 辑 窗 口 并 不 继 承 父 窗 口 的 特 征 在 父 窗 口 中 激 活 的 编 辑 窗 口 不 能 移 出 父 窗 口 外 如 果 父 窗 口 移 动 则 编 辑 窗口 也 随 之 移 动
要访问编辑窗口 必须首先用 DEFINE WINDOW 定义其父窗口 并且父窗口应该活动并可见
IN SCREEN
当 一 个 用 户 自 定 义 窗 口 活 动 时 把 编 辑 窗 口 明 确 地 放 置 在 V isual FoxPro 主 窗 口中
COLOR SCHEME nSchemeNumber
指 定 编 辑 窗 口 颜 色 的 配 色 方 案 编 号 在 V isual FoxPro 中 编 辑 窗 口 选 用 由控 制 面 板 的 颜 色 程 序 建 立 的 配 色 方 案
说 明
EDIT 允许在窗口中编辑所选的表 EDIT 的作用等同于 CHANGE
如果按下 ESC 键退出 编辑 窗口 将放弃对上一个字段所做的修改 但是如果修改字段后移到另一个记录 则对此字段的修改将被保存
程序中用 DEACTIVATE WINDOW 来保存更改并关闭 编辑 窗口 在
DEACTIVATE WINDOW 中包含 编辑 窗口的名称 有关 编辑 窗口名称的详细内容 请参阅稍后的 WTITLE 函数
SET SKIP Support
SET SKIP 可以在两个表中建立一对多的关系 参见示例 父表中的每 个记录在子表中可以有多个相关记录 如果创建了一对多关系 就可以用 EDIT 查看父表和子表中的记录
随同匹配的子表中的记录 父记录出现一次 后面的匹配记录接着父记录和第一个匹配的子记录在行中显示 在 MS-DOS 版本的 FoxPro 中 包含第一个匹配记录以下的父表信息的列中会显示阴影块 在 FoxPro 中 重复的父信息的填充字符取决于当前的
编辑 窗口字体
详细内容 请参阅稍后的 SET SKIP 命 令
COL 与 ROW Support
用 COL 与 ROW 返回 编辑 窗口中光标在 屏幕上的当前行和列 如果在Visual FoxPro 主窗口中打开 编辑 窗口 返回的光标位置与 Visual FoxPro 主窗口相关 而不是 编辑 窗口 如果在用户自定义窗口中打开 编辑 窗口 COL and ROW 返回与用户自定义窗口相关的光标位置
示 例
下面的示例用 SET SKIP 在两个表间创建了一对多关系 对每个发票在父表 ( customer)
中都有一个单独的记录 子表 (orders ) 对每个记录包含多个记录创建关系后 将打开显示父表和子表的记录的 编辑 窗口
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
EDIT FIELDS customer.cust_id :H = ’Customer Number’, ; customer.city :H = ’Customer City’, orders.shipped_on
请 参 阅
BROWSE , 表 格 控 件 , SET SKIP , WTITLE( )