打印本文 打印本文 关闭窗口 关闭窗口
VFP5.0中的一个错误
作者:武汉SEO闵涛  文章来源:敏韬网  点击数818  更新时间:2009/4/24 21:43:34  文章录入:mintao  责任编辑:mintao
P> Visual FoxPro 5.0 作 为 一 个 前 端 数 据 库 应 用 开 发 工 具, 受 到 人 们 的 喜 爱, 在 我 国 应 用 面 相 当 广 泛。 本 人 在 用Visual Foxpro 5.0 进 行 软 件 开 发 中 发 现 了Foxpro 5.0 中 的 一 个 错 误, 现 把 该 错 误 的 情 况 公 布 出 来。

  当 用Foxpro 5.0 的 表 单 设 计 向 导 进 行 一 对 多 的 表 单 设 计 时, 顺 这 该 向 导 生 成 了 表 单 以 后, 执 行 该 表 单, 当 你 按 增 加 按 扭 向 子 表 中 增 加 记 录 时, 会 发 现 子 表 的 表 格 中 的 编 辑 框 并 不 能 编 辑 你 所 增 加 的 记 录。 经 查 找 发 现, 引 起 该 错 误 的 原 因 是 由 于 在Foxpro 5.0 的wizstyle.vcx 类 库 中 一 个 名 叫txtbtns 的 类 的 脚 本 错 误 产 生 的。 具 体 操 作 方 法 如 下:

  在Foxpro 5.0 的 类 浏 览 器 中 打 开 文 件 名 为VFP 安 装 目 录\wizards\wizstyle.vcx 的 类 库 文 件, 在 类 浏 览 器 中 双 击 类 名 为txtbtns 的 类 以 打 开 类 设 计 器。 在 类 设 计 器 中 双 击 增 加 按 扭 查 看 该 按 扭 的 事 件 脚 本, 在click 事 件 的 脚 本 中 有 如 下 一 段 文 字( 行 前 有&& 是 我 加 的 注 解):

*Add child record
&&是否向子表增加记录
IF INLIST(oAddRec.AddOption,OPT_ADD_CHILD,OPT_ADD_BOTH)
 * Need to check
 GO m.nSaveRec
 &&子表关键字是否为空或者该关键字字段类型
 和将要加进该字段的值的类型是否匹配
 IF EMPTY(m.cChildKey) OR TYPE("m.cChildKey")
 #TYPE(oAddRec.KeyValue)
 APPEND BLANK IN (m.cChildAlias)
 ELSE
 INSERT INTO (m.cChildAlias) ((m.cChildKey)) 
 VALUES (oAddRec.KeyValue)
 ENDIF
 GO m.nSaveRec2
ENDIF

  这 段 代 码 的 意 思 是 当 用 户 选 取 了 向 子 表 增 加 记 录, 则 检 查 存 放 子 表 关 键 字 字 段 名 的 变 量 是 否 为 空 或 者 关 键 字 字 段 类 型 和 将 要 加 进 该 字 段 的 值 的 类 型 是 否 匹 配。 如 果 存 放 子 表 关 键 字 字 段 名 的 变 量 为 空 或 者 是 两 者 类 型 不 匹 配, 则 在 子 表 增 加 一 条 空 记 录, 否 则 增 加 一 条 关 键 字 值 等 于 父 表 关 键 字 值 的 记 录。 这 段 代 码 的 错 误 在 语 句

  IF EMPTY(m.cChildKey) OR TYPE("m.cChildKey")#TYPE(oAddRec.KeyValue) 中, 应 把 这 条 语 句 改 为: pre> IF EMPTY(m.cChildKey) OR TYPE((m.cChildKey)) #TYPE(oAddRec.KeyValue)

  因 为 前 一 语 句 的TYPE("m.cChildKey") 判 断 的 是 变 量m.cChildKey 的 类 型 而 不 是 子 表 关 键 字 字 段 的 类 型。 改 为 后 一 条 语 句 就 正 确 了。

打印本文 打印本文 关闭窗口 关闭窗口