E D IT 命 令

E D IT 命 令 - 图1显示要编辑的字段 .

语 法

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

E D IT 命 令 - 图2E D IT 命 令 - 图3E D IT 命 令 - 图4E D IT 命 令 - 图5指 定 出 现 在 编 辑 窗 口 中 的 字 段 这 些 字 段 按 照 FieldList 中 指 定 的 顺 序 显 示 在 字 段 列 表 中 可 以 包 含 其 他 相 关 表 的 字 段 当 包 含 相 关 表 的 字 段 时 应 在 字

E D IT 命 令 - 图6段 名 前 加 上 表 别 名 和 一 个 句 点

E D IT 命 令 - 图7E D IT 命 令 - 图8如果省略 FIELDS 将按照字段在表结构中出现的顺序显示表的所有字段

E D IT 命 令 - 图9E D IT 命 令 - 图10E D IT 命 令 - 图11字段列表可以指定字段或计算结果字段的任意组合 包括其他工作区中打开表的字段 字段列表的语法是

FieldName1 [:R]

[:nColumnWidth]

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

[:B = eLowerBound, eUpperBound [:F]] [:H = cHeadingText]

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

Calculated Fields

E D IT 命 令 - 图12E D IT 命 令 - 图13E D IT 命 令 - 图14E D IT 命 令 - 图15E D IT 命 令 - 图16E D IT 命 令 - 图17字段列表中可以包含语句 来创建计算结果字段 计算结果字段中包含用表达式创建的只读数据 表达式可以是任何形式 但它必须是一个有效的 Visual FoxPro 表达式用于创建计算结果字段的语法是

CalculatedFieldName = eExpression

E D IT 命 令 - 图18以下示例创建一个名为 location 的计算结果字段

CLOSE DATABASES

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

EDIT FIELDS location = ALLTRIM(city) + ', ' + country

E D IT 命 令 - 图19E D IT 命 令 - 图20FIELDS 子句的字段列表包含有 8 个选项 可以对编辑窗口中显示的字段进行特殊处理

: nColumnWidth

E D IT 命 令 - 图21E D IT 命 令 - 图22E D IT 命 令 - 图23以 列 为 单 位 指 定 字 段 的 显 示 宽 度 nColumnWidth 的 值 并 不 影 响 表 中 该 字 段 的大 小 只 是 改 变 此 字 段 在 编 辑 窗 口 中 的 显 示

:R

E D IT 命 令 - 图24E D IT 命 令 - 图25E D IT 命 令 - 图26E D IT 命 令 - 图27E D IT 命 令 - 图28下 面 的 示 例 打 开 编 辑 窗 口 并 显 示 cust_id 和 company 这 两 个 字 段 其 中字 段 cust_id 是 只 读 的 不 能 更 改

CLOSE DATABASES

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

EDIT FIELDS cust_id:R, company

: V = lExpression1

E D IT 命 令 - 图29E D IT 命 令 - 图30E D IT 命 令 - 图31E D IT 命 令 - 图32E D IT 命 令 - 图33E D IT 命 令 - 图34E D IT 命 令 - 图35指 定 在 编 辑 窗 口 内 执 行 字 段 级 数 据 有 效 性 检 查 的 选 项 当 把 光 标 从 此 字 段 上移 走 时 如 果 lExpression1 计 算 为 真 (.T.) 则 说 明 向 此 字 段 输 入 的 数 据是 正 确 的 光 标 将 移 动 到 下 一 字 段

E D IT 命 令 - 图36E D IT 命 令 - 图37E D IT 命 令 - 图38E D IT 命 令 - 图39E D IT 命 令 - 图40E D IT 命 令 - 图41E D IT 命 令 - 图42E D IT 命 令 - 图43E D IT 命 令 - 图44如果 lExpression1 取值为 假 (.F.) 则输入的数据不正确 光标仍停留在此字段上并显示错误信息 如 果 lExpression1 取值为 0 则所输入的数据不正确 光标仍停留在此字段上 但不显示任何错误信息

E D IT 命 令 - 图45E D IT 命 令 - 图46E D IT 命 令 - 图47E D IT 命 令 - 图48E D IT 命 令 - 图49默认情况下 只有当修改此字段时 才计算 lExpression1 的值 要强制进行检查 可加入 :F 选项

E D IT 命 令 - 图50E D IT 命 令 - 图51E D IT 命 令 - 图52E D IT 命 令 - 图53如果加入 :E 选项 则可以显示自己定义的错误信息对于备注字段 不执行此检验选项

:F

E D IT 命 令 - 图54E D IT 命 令 - 图55E D IT 命 令 - 图56指 定 强 制 有 效 性 检 查 选 项 此 选 项 决 定 从 一 个 字 段 移 走 光 标 或 另 一 个 窗 口 被激 活 时 是 否 计 算 检 验 选 项 表 达 式 ( lExpression1 ) 的 值 如 果 不 包 含 :F 选

E D IT 命 令 - 图57E D IT 命 令 - 图58E D IT 命 令 - 图59E D IT 命 令 - 图60E D IT 命 令 - 图61E D IT 命 令 - 图62项 则 只 有 修 改 此 字 段 时 才 计 算 lExpression1 的 值 如 果 包 含 :F 选 项 即使 此 字 段 未 作 修 改 也 要 计 算 lExpression1 的 值

:E = cMessageText

E D IT 命 令 - 图63显 示 由 cMessageText 指 定 的 错 误 信 息 而 不 是 默 认 的 系 统 信 息

E D IT 命 令 - 图64E D IT 命 令 - 图65E D IT 命 令 - 图66E D IT 命 令 - 图67E D IT 命 令 - 图68E D IT 命 令 - 图69E D IT 命 令 - 图70E D IT 命 令 - 图71E D IT 命 令 - 图72E D IT 命 令 - 图73如果有效性检查表达式 V= lExpression1 计算为 真 (.T.) 则光标从字段中正常移出 如果该表达式计算为 假 (.F.) 则光标仍停留在字段上 并显示错误信息

E D IT 命 令 - 图74E D IT 命 令 - 图75E D IT 命 令 - 图76如果有效性检查表达式 V= lExpression1 计算为 0 则不显示错误信息 且光标仍停留

E D IT 命 令 - 图77E D IT 命 令 - 图78在被检查的字段上 允许您在有效性检查例程中显示自定义的错误信息

E D IT 命 令 - 图79E D IT 命 令 - 图80E D IT 命 令 - 图81E D IT 命 令 - 图82只有当 SET NOTIFY 为 ON 时 才能显示此错误信息 当 SET BELL 为 ON 时 将会响铃

E D IT 命 令 - 图83下面的示例打开 products 表并显示 product_id 和 prod_name 这两个字段 在 product_id

E D IT 命 令 - 图84字段中输入一个大于 100 的值来执行字段有效性检验

E D IT 命 令 - 图85E D IT 命 令 - 图86E D IT 命 令 - 图87:V 指定了有效性检验准则 :F 说明无论数据是否更改 都要强制进行有效性检查 :E

E D IT 命 令 - 图88E D IT 命 令 - 图89E D IT 命 令 - 图90E D IT 命 令 - 图91把 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

E D IT 命 令 - 图92E D IT 命 令 - 图93E D IT 命 令 - 图94指 定 一 个 模 板 选 项 允 许 您 创 建 由 cFormatCodes 指 定 的 编 辑 模 板 模 板 控制 编 辑 窗 口 中 各 个 字 段 数 据 的 显 示 和 输 入

E D IT 命 令 - 图95E D IT 命 令 - 图96E D IT 命 令 - 图97有关使用模板编辑代码的详细内容 请参阅 @ ... GET 和 @ ... SAY 除了 M 代码以外 在 @ ... GET 和 @ ... SAY 中可用的所有函数和图片代码都能在 PICTURE 和

E D IT 命 令 - 图98FUNCTION 子句中使用

E D IT 命 令 - 图99E D IT 命 令 - 图100下面的示例使用了模板选项 从而在 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]

E D IT 命 令 - 图101E D IT 命 令 - 图102E D IT 命 令 - 图103E D IT 命 令 - 图104E D IT 命 令 - 图105E D IT 命 令 - 图106E D IT 命 令 - 图107指 定 一 组 边 界 值 数 据 应 在 这 两 个 边 界 值 之 间 取 值 边 界 值 表 达 式eLowerBoundeUpperBound 应 该 与 此 字 段 的 数 据 类 型 相 匹 配 并 且 不 能 是用 户 自 定 义 函 数 的 函 数 名 如 果 输 入 的 数 据 没 有 落 在 eLowerboundeUpperBound 之 间 将 会 显 示 一 条 系 统 信 息 指 明 数 据 的 取 值 范 围

E D IT 命 令 - 图108E D IT 命 令 - 图109E D IT 命 令 - 图110E D IT 命 令 - 图111E D IT 命 令 - 图112默认情况下 只有当更改字段的内容时 才用边界值检查输入的数据 要强制进行边界值检查 应选用强制检验项 (:F)

E D IT 命 令 - 图113E D IT 命 令 - 图114下面的示例保证 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

E D IT 命 令 - 图115E D IT 命 令 - 图116E D IT 命 令 - 图117E D IT 命 令 - 图118指 定 标 题 选 项 允 许 用 户 用 cHeadingText 指 定 的 标 题 替 换 默 认 的 字 段 名 称默 认 情 况 下 编 辑 窗 口 中 字 段 名 放 置 在 字 段 左 边

E D IT 命 令 - 图119下面的示例为所显示的字段提供用户自定义标题

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

E D IT 命 令 - 图120E D IT 命 令 - 图121E D IT 命 令 - 图122E D IT 命 令 - 图123E D IT 命 令 - 图124E D IT 命 令 - 图125E D IT 命 令 - 图126E D IT 命 令 - 图127E D IT 命 令 - 图128E D IT 命 令 - 图129E D IT 命 令 - 图130E D IT 命 令 - 图131指 定 W H E N 选 项 根 据 逻 辑 表 达 式 lExpression 的 值 有 条 件 地 禁 止 光 标 移 动到 某 个 字 段 上 ( : W ) 计 算 lExpression 的 值 如 果 lExpression2 取 值 为 假(.F.) 则 不 能 把 光 标 移 到 该 字 段 上 如 果 lExpression2 取 值 为 真 (.T.) 则可 以 把 光 标 移 到 该 字 段 上 lExpression2 也 支 持 用 户 自 义 函 数

E D IT 命 令 - 图132E D IT 命 令 - 图133E D IT 命 令 - 图134E D IT 命 令 - 图135E D IT 命 令 - 图136E D IT 命 令 - 图137如果当前字段标记为只读 则禁止向任一字段移动光标 仅当每一字段都包含计算为假 的 WHEN 子句时 才发生这种情况

Scope

E D IT 命 令 - 图138E D IT 命 令 - 图139E D IT 命 令 - 图140E D IT 命 令 - 图141E D IT 命 令 - 图142E D IT 命 令 - 图143指 定 在 编 辑 窗 口 中 显 示 记 录 的 范 围 说 明 范 围 的 子 句 有 ALL NEXT nRecords RECORD nRecordNumber 以 及 REST EDIT 命 令 默 认 的 作 用 范 围是 所 有 记 录 (ALL)

E D IT 命 令 - 图144E D IT 命 令 - 图145详细内容 请参阅帮助中的 “ Scope Clauses ”

FOR lExpression1

E D IT 命 令 - 图146E D IT 命 令 - 图147规 定 只 有 满 足 逻 辑 条 件 lExpression1 的 记 录 才 能 在 编 辑 窗 口 中 显 示 这 有 助于 用 户 筛 选 出 不 需 要 的 记 录

E D IT 命 令 - 图148E D IT 命 令 - 图149E D IT 命 令 - 图150E D IT 命 令 - 图151E D IT 命 令 - 图152E D IT 命 令 - 图153E D IT 命 令 - 图154E D IT 命 令 - 图155E D IT 命 令 - 图156E D IT 命 令 - 图157E D IT 命 令 - 图158E D IT 命 令 - 图159如果 lExpression1 是可优化的表达式 Rushmore 将优化 EDIT FOR 查询 为达到最佳性能 应在 FOR 子句中使用可优化表达式 有关 Rushmore 可优化表达式的详细内 容 请参阅稍后的 SET OPTIMIZE 命令与 Microsoft Visual FoxPro 6.0 中文版程序员指南 第十五章 优化应用程序 中的 掌握 Rushmore 技术

W H ILE lExpression2

E D IT 命 令 - 图160E D IT 命 令 - 图161E D IT 命 令 - 图162E D IT 命 令 - 图163E D IT 命 令 - 图164指 定 条 件 只 要 逻 辑 表 达 式 lExpression2 计 算 为 真 (.T.) 记 录 就 显 示 在编 辑 窗 口 中

FONT cFontName [, nFontSize ]

E D IT 命 令 - 图165E D IT 命 令 - 图166E D IT 命 令 - 图167E D IT 命 令 - 图168E D IT 命 令 - 图169指 定 编 辑 窗 口 的 字 体 和 字 体 大 小 其 中 字 符 表 达 式 cFontName 指 定 字 体 名数 值 表 达 式 nFontSize 指 定 字 体 大 小 例 如 下 面 子 句 为 编 辑 窗 口 中 显 示 的字 段 指 定 了 16 磅 的 Courier 字 体

FONT 'Courier', 16

E D IT 命 令 - 图170E D IT 命 令 - 图171E D IT 命 令 - 图172如果包含了 FONT 子句 但省略了字体大小 nFontSize 编辑窗口将使用 10 磅的字体

E D IT 命 令 - 图173E D IT 命 令 - 图174E D IT 命 令 - 图175E D IT 命 令 - 图176如果省略了 FONT 子句 则将使用 9 磅的 Arial 字体 如果指定的字体无效 则用类似的字体代替

STYLE cFontStyle

E D IT 命 令 - 图177E D IT 命 令 - 图178E D IT 命 令 - 图179指 定 在 编 辑 窗 口 的 字 形 如 果 省 略 了 STYLE 子 句 将 使 用 常 规 字 形

E D IT 命 令 - 图180E D IT 命 令 - 图181如果您所指定的字形无效 则使用类似的字形代替

字 符 字 形

B 粗体

I 斜体

  1. 常规

  2. 轮廓

Q 不透明

  1. 阴影

– 删除线

  1. 透明

  2. 下划线

E D IT 命 令 - 图182E D IT 命 令 - 图183E D IT 命 令 - 图184可以包含一个以上的字符以指定组合字形 下面的示例打开编辑窗口 并使用加下划线的字形

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

E D IT 命 令 - 图185E D IT 命 令 - 图186E D IT 命 令 - 图187在 编 辑 窗 口 中 只 允 许 更 改 FieldName 中 指 定 的 一 个 字 段 其 余 字 段 能 够 显示 但 不 能 编 辑

KEY eExpression1 [, eExpression2 ]

E D IT 命 令 - 图188E D IT 命 令 - 图189限 制 在 编 辑 窗 口 中 所 显 示 记 录 的 范 围 使 用 K E Y 子 句 可 以 指 定 能 够 在 编辑 窗 口 中 显 示 的 记 录 的 索 引 关 键 字 值 ( eExpression1 ) 或 关 键 字 值 的 范 围

E D IT 命 令 - 图190E D IT 命 令 - 图191E D IT 命 令 - 图192( eExpression1 ,eExpression2 ) 此 表 应 已 建 立 索 引 并 且 K E Y 子 句 中 包 含 的 索引 关 键 字 值 的 数 据 类 型 应 该 与 主 控 索 引 文 件 或 主 控 索 引 标 识 中 索 引 表 达 式 的数 据 类 型 一 致

E D IT 命 令 - 图193E D IT 命 令 - 图194在下面的示例中 编辑窗口只显示邮政编码在 10000 到 30000 范围内的记录

CLOSE DATABASES

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

SET ORDER TO postalcode

EDIT KEY ‘ 10000 ’, ‘ 30000 ’

LAST | NOINIT

E D IT 命 令 - 图195E D IT 命 令 - 图196E D IT 命 令 - 图197E D IT 命 令 - 图198E D IT 命 令 - 图199E D IT 命 令 - 图200保 存 对 编 辑 窗 口 外 观 设 置 所 做 的 更 改 这 些 更 改 将 保 存 在 FOXUSER 文 件中 其 中 包 括 对 字 段 列 表 每 个 字 段 的 大 小 以 及 编 辑 窗 口 的 位 置 和 大 小 的 更改 有 关 此 文 件 的 详 细 内 容 请 参 阅 SET RESOURCE

E D IT 命 令 - 图201E D IT 命 令 - 图202E D IT 命 令 - 图203E D IT 命 令 - 图204E D IT 命 令 - 图205如果在 EDIT 命令中包含 LAST 子句 编辑窗口按照最近一次保存在 FOXUSER 文件中的配置打开 这将还原最近一次用 EDIT 命令创建的编辑窗口的配置 如果最近一次在命令窗口中发出的 EDIT 命令包含一长串子句 使用 EDIT LAST 命令可以避免重复键入这些命令

E D IT 命 令 - 图206E D IT 命 令 - 图207如果按 CTRL+Q 退出编辑窗口 则不会保存当前工作期中对编辑窗口配置的更改

LPARTITION

E D IT 命 令 - 图208E D IT 命 令 - 图209E D IT 命 令 - 图210E D IT 命 令 - 图211E D IT 命 令 - 图212E D IT 命 令 - 图213把 光 标 放 置 在 编 辑 窗 口 左 分 区 的 第 一 个 字 段 上 使 用 PARTITION 子 句 可以 把 编 辑 窗 口 拆 分 为 左 右 两 个 分 区 默 认 情 况 下 编 辑 窗 口 打 开 时 光 标 放置 在 右 分 区 的 第 一 个 字 段 上

E D IT 命 令 - 图214E D IT 命 令 - 图215如果包含 LPARTITION 子句而无 PARTITION 子句 则光标将放置在编辑窗口的右分区内

N A M E Ob jectName

E D IT 命 令 - 图216E D IT 命 令 - 图217创 建 编 辑 窗 口 的 对 象 引 用 允 许 使 用 表 格 控 制 面 向 对 象 的 属 性 操 作 编 辑 窗口

E D IT 命 令 - 图218E D IT 命 令 - 图219有关 Visual FoxPro 中的面向对象程序设计的附加内容 请参阅 Microsoft

E D IT 命 令 - 图220E D IT 命 令 - 图221E D IT 命 令 - 图222E D IT 命 令 - 图223Visual FoxPro 6.0 中文版程序员指南 的 第三章 面向对象程序设计 有关可以为通

E D IT 命 令 - 图224E D IT 命 令 - 图225E D IT 命 令 - 图226过 NAME 子句创建的 编辑 窗口指定的网格控件 属性 的详细内容 请参阅稍后的

E D IT 命 令 - 图227E D IT 命 令 - 图228E D IT 命 令 - 图229Grid Control

NOAPPEND

E D IT 命 令 - 图230E D IT 命 令 - 图231E D IT 命 令 - 图232E D IT 命 令 - 图233E D IT 命 令 - 图234禁 止 用 户 通 过 按 CTRL+Y 或 从 查 看 菜 单 中 选 择 追 加 方 式 向 表 中 添 加记 录

E D IT 命 令 - 图235E D IT 命 令 - 图236E D IT 命 令 - 图237E D IT 命 令 - 图238重 要 提 示 包 含 NOAPPEND 并 不 禁 止 用 户 在 编 辑 窗 口 中 通 过 例 程 用 VALID W H E N 或 ON KEY LABEL 创 建 追 加 记 录 .

NODELETE

E D IT 命 令 - 图239E D IT 命 令 - 图240E D IT 命 令 - 图241禁 止 在 编 辑 窗 口 中 为 记 录 做 删 除 标 记 默 认 时 可 以 通 过 按 CTRL+T 从

E D IT 命 令 - 图242E D IT 命 令 - 图243E D IT 命 令 - 图244E D IT 命 令 - 图245E D IT 命 令 - 图246E D IT 命 令 - 图247表 菜 单 中 选 择 切 换 删 除 标 记 或 单 击 待 删 除 记 录 最 左 边 的 一 列 为 记录 作 删 除 标 记

E D IT 命 令 - 图248E D IT 命 令 - 图249E D IT 命 令 - 图250E D IT 命 令 - 图251重 要 提 示 包 含 NODELETE 并 不 禁 止 用 户 在 编 辑 窗 口 中 通 过 例 程 用 VALID W H E N 或 ON KEY LABLE 创 建 为 记 录 做 删 除 标 记

NOEDIT | NOMODIFY

E D IT 命 令 - 图252E D IT 命 令 - 图253E D IT 命 令 - 图254E D IT 命 令 - 图255E D IT 命 令 - 图256E D IT 命 令 - 图257E D IT 命 令 - 图258禁 止 用 户 修 改 表 NOEDIT 与 NOMODIFY 是 等 价 的 无 论 包 含 哪 一 个 子句 都 可 以 浏 览 或 搜 索 此 表 但 不 能 编 辑 不 过 可 以 追 加 或 删 除 记 录

NOLINK

E D IT 命 令 - 图259E D IT 命 令 - 图260E D IT 命 令 - 图261E D IT 命 令 - 图262E D IT 命 令 - 图263E D IT 命 令 - 图264E D IT 命 令 - 图265解 除 编 辑 窗 口 中 左 右 分 区 的 链 接 默 认 时 编 辑 窗 口 中 的 左 右 分 区 是 链接 的 当 在 某 一 分 区 滚 动 时 另 一 分 区 也 相 应 滚 动

N O M E N U

E D IT 命 令 - 图266E D IT 命 令 - 图267从 系 统 菜 单 栏 中 移 去 V isual FoxPro 的 表 菜 单 标 题 以 及 FoxPro 早 期 版 本

E D IT 命 令 - 图268E D IT 命 令 - 图269E D IT 命 令 - 图270E D IT 命 令 - 图271E D IT 命 令 - 图272E D IT 命 令 - 图273的 浏 览 菜 单 标 题 禁 止 访 问 编 辑 菜 单

NOOPTIMIZE

E D IT 命 令 - 图274关 闭 Rushmore 对 EDIT 命 令 的 优 化

E D IT 命 令 - 图275E D IT 命 令 - 图276E D IT 命 令 - 图277E D IT 命 令 - 图278E D IT 命 令 - 图279E D IT 命 令 - 图280E D IT 命 令 - 图281E D IT 命 令 - 图282E D IT 命 令 - 图283关闭 Rushmore 对 EDIT 命令的优化 有关 Rushmore 可优化表达式的详细内容 请参阅稍后的 SET OPTIMIZE 命令与 Microsoft Visual FoxPro 6.0 中文版程序员指南 第十五章 优化应用程序 中的 掌握 Rushmore 技术

N O R M A L

E D IT 命 令 - 图284E D IT 命 令 - 图285E D IT 命 令 - 图286E D IT 命 令 - 图287E D IT 命 令 - 图288E D IT 命 令 - 图289E D IT 命 令 - 图290E D IT 命 令 - 图291E D IT 命 令 - 图292E D IT 命 令 - 图293E D IT 命 令 - 图294按 照 正 常 默 认 设 置 打 开 编 辑 窗 口 这 些 设 置 包 括 颜 色 大 小 位 置 标 题 和控 制 选 项 G R O W FLOAT Z O O M 等 等 E D IT 命 令 - 图295 如 果 省 略 N O R M A L 并 且 当前 输 出 窗 口 是 有 其 自 己 设 置 的 用 户 自 定 义 窗 口 编 辑 窗 口 将 使 用 这 些 自 定 义设 置

NOWAIT

E D IT 命 令 - 图296E D IT 命 令 - 图297E D IT 命 令 - 图298E D IT 命 令 - 图299E D IT 命 令 - 图300编 辑 窗 口 打 开 后 立 刻 继 续 程 序 的 执 行 程 序 并 不 等 待 关 闭 编 辑 窗 口 而 是继 续 执 行 EDIT NOWAIT 所 在 程 序 行 下 面 的 程 序 行 如 果 省 略 NOWAIT

E D IT 命 令 - 图301E D IT 命 令 - 图302E D IT 命 令 - 图303则 在 程 序 中 发 出 EDIT 命 令 时 将 打 开 编 辑 窗 口 并 暂 停 执 行 程 序 直 到 编 辑窗 口 关 闭 为 止

E D IT 命 令 - 图304E D IT 命 令 - 图305E D IT 命 令 - 图306NOWAIT 只用于程序中 从命令窗口发出 EDIT 命令时 加入 NOWAIT 将不起作用

PARTITION nColumnNumber

E D IT 命 令 - 图307E D IT 命 令 - 图308E D IT 命 令 - 图309E D IT 命 令 - 图310E D IT 命 令 - 图311E D IT 命 令 - 图312把 编 辑 窗 口 拆 分 成 左 右 两 个 分 区 nColumnNumber 指 定 拆 分 条 所 在 的 列例 如 如 果 nColumnNumber 等 于 20 则 拆 分 条 放 置 在 编 辑 窗 口 的 第 20 列上

LEDIT

E D IT 命 令 - 图313指 定 编 辑 窗 口 的 左 分 区 处 于 浏 览 方 式

REDIT

E D IT 命 令 - 图314E D IT 命 令 - 图315E D IT 命 令 - 图316E D IT 命 令 - 图317指 定 编 辑 窗 口 的 右 分 区 处 于 浏 览 方 式 下 面 的 示 例 将 打 开 一 个 编 辑 窗 口 拆分 条 放 置 在 第 20 列 上 并 且 右 分 区 在 打 开 时 处 于 浏 览 方 式

E D IT 命 令 - 图318E D IT 命 令 - 图319同时包含两个关键字可以使左 右分区在打开时均处于浏览方式

CLOSE DATABASES

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

EDIT PARTITION 30 REDIT

PREFERENCE PreferenceName

E D IT 命 令 - 图320E D IT 命 令 - 图321E D IT 命 令 - 图322E D IT 命 令 - 图323E D IT 命 令 - 图324E D IT 命 令 - 图325E D IT 命 令 - 图326保 存 编 辑 窗 口 的 属 性 和 选 项 供 以 后 使 用 LAST 能 够 还 原 前 一 工 作 期 中 出 现的 编 辑 窗 口 与 此 不 同 PREFERENCE 在 FOXUSER 资 源 文 件 中 保 存 编 辑窗 口 的 属 性 而 没 有 时 间 限 制 可 随 时 获 取 有 关 FOXUSER 资 源 文 件 的 详 细内 容 请 参 阅 SET RESOURCE

E D IT 命 令 - 图327E D IT 命 令 - 图328E D IT 命 令 - 图329E D IT 命 令 - 图330参数设置名称最多可包含 10 个字符 并应以字母或下划线开头 可包含字母 数 字 和下划线的任意组合

E D IT 命 令 - 图331E D IT 命 令 - 图332E D IT 命 令 - 图333如果您刻意要使用某个参数设置名称 可以禁止对其进行更改 关闭编辑窗口 发出

E D IT 命 令 - 图334E D IT 命 令 - 图335SET RESOURCE OFF 命令 并以表的方式打开 FOXUSER 然后把逻辑字段

E D IT 命 令 - 图336E D IT 命 令 - 图337E D IT 命 令 - 图338E D IT 命 令 - 图339E D IT 命 令 - 图340E D IT 命 令 - 图341READONLY 的值改为 真 (.T.) 就可以把包含参数设置的字段改为只读字段有关 FOXUSER 资源文件的详细内容 请参阅 SET RESOURCE

REST

E D IT 命 令 - 图342E D IT 命 令 - 图343E D IT 命 令 - 图344禁 止 记 录 指 针 从 当 前 位 置 移 动 到 表 的 头 部 默 认 情 况 下 EDIT 命 令 把 记 录指 针 定 位 于 表 的 头 部

S A V E

E D IT 命 令 - 图345E D IT 命 令 - 图346E D IT 命 令 - 图347E D IT 命 令 - 图348使 编 辑 窗 口 和 所 有 备 注 字 段 的 文 本 编 辑 窗 口 处 于 活 动 状 态 并 可 见 打 开 E D IT 命 令 - 图349在 使 用 鼠 标 或 键 盘 循 环 遍 历 其 他 打 开 的 窗 口 后 即 返 回 到 编 辑 窗 口

E D IT 命 令 - 图350E D IT 命 令 - 图351E D IT 命 令 - 图352SAVE 只可用在程序中 在命令窗口中 使用 EDIT 命令时包含 SAVE 不起作用 因为

E D IT 命 令 - 图353EDIT SAVE 在交互方式时总是默认的

TIMEOUT nSeconds

E D IT 命 令 - 图354E D IT 命 令 - 图355E D IT 命 令 - 图356指 定 编 辑 窗 口 等 待 输 入 的 时 间 数 值 表 达 式 nSeonds 指 定 经 过 多 少 秒 仍 没 有输 入 编 辑 窗 口 就 自 动 关 闭

E D IT 命 令 - 图357E D IT 命 令 - 图358E D IT 命 令 - 图359E D IT 命 令 - 图360E D IT 命 令 - 图361TIMEOUT 只在程序中可用 从命令窗口中发出带此子句的 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

E D IT 命 令 - 图362E D IT 命 令 - 图363E D IT 命 令 - 图364cTitleText 指 定 的 标 题 改 写 编 辑 窗 口 标 题 栏 中 出 现 的 默 认 表 名 或 别 名 否则 正 被 浏 览 的 表 的 名 称 或 别 名 将 出 现 在 标 题 栏 上

E D IT 命 令 - 图365E D IT 命 令 - 图366如果发出 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

E D IT 命 令 - 图367E D IT 命 令 - 图368在 编 辑 窗 口 中 执 行 记 录 级 有 效 性 检 查 只 有 在 更 改 了 记 录 并 且 把 光 标 移 到

E D IT 命 令 - 图369E D IT 命 令 - 图370E D IT 命 令 - 图371另 一 个 记 录 上 时 才 执 行 VALID 子 句 如 果 只 是 对 备 注 字 段 作 了 更 改 则 不执 行 VALID 子 句

E D IT 命 令 - 图372E D IT 命 令 - 图373E D IT 命 令 - 图374E D IT 命 令 - 图375E D IT 命 令 - 图376E D IT 命 令 - 图377E D IT 命 令 - 图378E D IT 命 令 - 图379E D IT 命 令 - 图380E D IT 命 令 - 图381E D IT 命 令 - 图382E D IT 命 令 - 图383E D IT 命 令 - 图384E D IT 命 令 - 图385E D IT 命 令 - 图386E D IT 命 令 - 图387E D IT 命 令 - 图388如果 VALID 子句返回 真 (.T.) 那么可以把光标移到另一个记录上 如 果 VALID 子句返回 假 (.F.) 则光标仍停留在当前字段上 Visual FoxPro 显示错误信息 如 果包含 ERROR 子句 则可以在 VALID 子句返回 假 值时显示自定义的错误信息 字符表达式 cMessageText 作为错误信息显示 如果 VALID 子句的返回值为 0 则光标仍然停留在当前字段上 但不显示错误信息

E D IT 命 令 - 图389不要把 VALID 子句与启用字段有效性检查的检验选项 (:V) 混淆起来

:F

E D IT 命 令 - 图390E D IT 命 令 - 图391E D IT 命 令 - 图392E D IT 命 令 - 图393强 制 在 用 户 把 光 标 移 到 下 个 一 记 录 之 前 执 行 VALID 子 句 在 这 种 情 况 下即 使 当 前 记 录 未 作 更 改 也 执 行 VALID 子 句

ERROR cMessageText

E D IT 命 令 - 图394E D IT 命 令 - 图395E D IT 命 令 - 图396E D IT 命 令 - 图397E D IT 命 令 - 图398E D IT 命 令 - 图399cMessageText 定 义 错 误 信 息 的 内 容 并 指 定 用 此 错 误 信 息 改 写 系 统 默 认 信息 当 VALID 子 句 返 回 假 (.F.) 时 V isual FoxPro 显 示 自 定 义 的 错 误 信息

W H E N lExpression4

E D IT 命 令 - 图400E D IT 命 令 - 图401E D IT 命 令 - 图402E D IT 命 令 - 图403E D IT 命 令 - 图404E D IT 命 令 - 图405E D IT 命 令 - 图406E D IT 命 令 - 图407E D IT 命 令 - 图408E D IT 命 令 - 图409E D IT 命 令 - 图410当 用 户 把 光 标 移 到 另 一 个 记 录 上 时 计 算 某 个 条 件 是 否 满 足 如 果lExpression4 为 真 (.T.) 则 用 户 可 以 修 改 光 标 所 在 的 记 录 如 果lExpression4 为 假 (.F.) 或 0 则 光 标 所 在 的 记 录 成 为 只 读 记 录 不 能 修改

E D IT 命 令 - 图411E D IT 命 令 - 图412当激活另一个窗口时 不执行 WHEN 子句

W IDTH nFieldWidth

E D IT 命 令 - 图413E D IT 命 令 - 图414E D IT 命 令 - 图415E D IT 命 令 - 图416E D IT 命 令 - 图417限 制 编 辑 窗 口 每 个 分 区 中 所 有 字 段 所 能 显 示 的 字 符 数 不 超 过 nFieldwidth 包含 W IDTH 子 句 并 不 更 改 表 中 字 段 的 大 小 只 改 变 字 段 在 编 辑 窗 口 中 的 显 示方 式 如 果 已 经 用 FIELDS 子 句 指 定 了 某 个 字 段 的 宽 度 则 此 宽 度 值 将 忽 略由 W IDTH 子 句 为 这 个 字 段 指 定 的 宽 度 值

W INDOW W indowName1

E D IT 命 令 - 图418E D IT 命 令 - 图419E D IT 命 令 - 图420E D IT 命 令 - 图421E D IT 命 令 - 图422E D IT 命 令 - 图423E D IT 命 令 - 图424指 定 一 个 用 户 自 定 义 窗 口 编 辑 窗 口 具 有 与 之 相 同 的 特 征 例 如 如 果 创 建此 用 户 自 定 义 窗 口 时 使 用 了 FLOAT 子 句 则 编 辑 窗 口 也 可 以 移 动 所 指 定的 窗 口 不 一 定 要 活 动 或 可 见 但 必 须 已 定 义

IN [WINDOW] W indowName2

E D IT 命 令 - 图425E D IT 命 令 - 图426E D IT 命 令 - 图427E D IT 命 令 - 图428E D IT 命 令 - 图429E D IT 命 令 - 图430指 定 一 个 父 窗 口 编 辑 窗 口 在 其 中 打 开 编 辑 窗 口 并 不 继 承 父 窗 口 的 特 征 在 父 窗 口 中 激 活 的 编 辑 窗 口 不 能 移 出 父 窗 口 外 如 果 父 窗 口 移 动 则 编 辑 窗口 也 随 之 移 动

E D IT 命 令 - 图431E D IT 命 令 - 图432E D IT 命 令 - 图433要访问编辑窗口 必须首先用 DEFINE WINDOW 定义其父窗口 并且父窗口应该活动并可见

IN SCREEN

E D IT 命 令 - 图434E D IT 命 令 - 图435当 一 个 用 户 自 定 义 窗 口 活 动 时 把 编 辑 窗 口 明 确 地 放 置 在 V isual FoxPro 主 窗 口中

COLOR SCHEME nSchemeNumber

E D IT 命 令 - 图436E D IT 命 令 - 图437E D IT 命 令 - 图438E D IT 命 令 - 图439E D IT 命 令 - 图440E D IT 命 令 - 图441E D IT 命 令 - 图442指 定 编 辑 窗 口 颜 色 的 配 色 方 案 编 号 在 V isual FoxPro 中 编 辑 窗 口 选 用 由控 制 面 板 的 颜 色 程 序 建 立 的 配 色 方 案

说 明

E D IT 命 令 - 图443E D IT 命 令 - 图444EDIT 允许在窗口中编辑所选的表 EDIT 的作用等同于 CHANGE

E D IT 命 令 - 图445E D IT 命 令 - 图446E D IT 命 令 - 图447E D IT 命 令 - 图448E D IT 命 令 - 图449E D IT 命 令 - 图450如果按下 ESC 键退出 编辑 窗口 将放弃对上一个字段所做的修改 但是如果修改字段后移到另一个记录 则对此字段的修改将被保存

E D IT 命 令 - 图451E D IT 命 令 - 图452E D IT 命 令 - 图453程序中用 DEACTIVATE WINDOW 来保存更改并关闭 编辑 窗口 在

E D IT 命 令 - 图454E D IT 命 令 - 图455E D IT 命 令 - 图456E D IT 命 令 - 图457E D IT 命 令 - 图458E D IT 命 令 - 图459E D IT 命 令 - 图460E D IT 命 令 - 图461E D IT 命 令 - 图462DEACTIVATE WINDOW 中包含 编辑 窗口的名称 有关 编辑 窗口名称的详细内容 请参阅稍后的 WTITLE 函数

SET SKIP Support

E D IT 命 令 - 图463E D IT 命 令 - 图464E D IT 命 令 - 图465E D IT 命 令 - 图466E D IT 命 令 - 图467E D IT 命 令 - 图468SET SKIP 可以在两个表中建立一对多的关系 参见示例 父表中的每 个记录在子表中可以有多个相关记录 如果创建了一对多关系 就可以用 EDIT 查看父表和子表中的记录

E D IT 命 令 - 图469E D IT 命 令 - 图470E D IT 命 令 - 图471E D IT 命 令 - 图472E D IT 命 令 - 图473E D IT 命 令 - 图474随同匹配的子表中的记录 父记录出现一次 后面的匹配记录接着父记录和第一个匹配的子记录在行中显示 在 MS-DOS 版本的 FoxPro 中 包含第一个匹配记录以下的父表信息的列中会显示阴影块 在 FoxPro 中 重复的父信息的填充字符取决于当前的

E D IT 命 令 - 图475E D IT 命 令 - 图476E D IT 命 令 - 图477编辑 窗口字体

E D IT 命 令 - 图478E D IT 命 令 - 图479详细内容 请参阅稍后的 SET SKIP 命 令

E D IT 命 令 - 图480E D IT 命 令 - 图481E D IT 命 令 - 图482E D IT 命 令 - 图483COL 与 ROW Support

E D IT 命 令 - 图484E D IT 命 令 - 图485E D IT 命 令 - 图486E D IT 命 令 - 图487E D IT 命 令 - 图488E D IT 命 令 - 图489E D IT 命 令 - 图490E D IT 命 令 - 图491E D IT 命 令 - 图492E D IT 命 令 - 图493E D IT 命 令 - 图494E D IT 命 令 - 图495E D IT 命 令 - 图496E D IT 命 令 - 图497E D IT 命 令 - 图498E D IT 命 令 - 图499E D IT 命 令 - 图500E D IT 命 令 - 图501E D IT 命 令 - 图502E D IT 命 令 - 图503E D IT 命 令 - 图504E D IT 命 令 - 图505用 COL 与 ROW 返回 编辑 窗口中光标在 屏幕上的当前行和列 如果在Visual FoxPro 主窗口中打开 编辑 窗口 返回的光标位置与 Visual FoxPro 主窗口相关 而不是 编辑 窗口 如果在用户自定义窗口中打开 编辑 窗口 COL and ROW 返回与用户自定义窗口相关的光标位置

示 例

E D IT 命 令 - 图506下面的示例用 SET SKIP 在两个表间创建了一对多关系 对每个发票在父表 ( customer)

E D IT 命 令 - 图507E D IT 命 令 - 图508E D IT 命 令 - 图509E D IT 命 令 - 图510E D IT 命 令 - 图511E D IT 命 令 - 图512中都有一个单独的记录 子表 (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( )