收藏 分销(赏)

在POWERBUILDER中实现数据库的实时过滤.doc

上传人:仙人****88 文档编号:7390548 上传时间:2025-01-02 格式:DOC 页数:3 大小:24.50KB 下载积分:10 金币
下载 相关 举报
在POWERBUILDER中实现数据库的实时过滤.doc_第1页
第1页 / 共3页
在POWERBUILDER中实现数据库的实时过滤.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
在PowerBuilder中实现数据库的实时过滤 (深圳:独孤求败 2003-05-16)     在 拥 有 大 量 数 据 记 录 的 数 据 库 的 表 中 进 行 有 关 记 录 的 查 询, 如 果 不 采 取 一 定 的 技 巧, 那 将 是 非  常 费 时 费 力 的 事 情, 利 用 单 行 编 辑 器 和 数 据 窗 口 结 合, 再 进 行 适 当 编 程 就 能 够 实 现 数 据 窗 口 中 的  记 录 根 据 你 键 入 的 字 符 而 逐 步 缩 小 范 围, 以 方 便 查 询。      PowerBuilder 中 的 单 行 编 辑 器SingleLineEdit 中 可 以 输 入 字 符, 但 它 没 有 在 输 入 过 程 中 作 出 实 时 响 应 的 事 件, 为 了 能 够 对 输 入 的 数 据 进 行 实 时 响 应, 我 们 必 须 利 用 其 他 的 对 象 的 事 件, 而 窗 口(Window) 的Key 事 件 能 够 对 窗 口 内 的 键 盘 输 入 作 出 实 时 响 应, 可 以 利 用 该 事 件 获 取 单 行 编 辑 器 的 内 容, 然 后 对 数 据 窗 口 进 行 过 滤, 达 到 实 时 缩 小 查 询 范 围 的 目 的。 在 测 试 过 程 中, 发 现 必 须 输 入 下 一 个 字 符 才 能 响 应 当 前 的 过 滤, 如: 我 想 将 数 据 窗 口 过 滤 为 左 边 两 个 字 符 为'02', 必 须 输 入'02x', 系 统 才 会 进 行 前 面 的 过 滤。 为 了 能 够 真 正 做 到 实 时 响 应, 我 在 窗 口 对 象 中 另 外 定 义 了 一 个 用 户 事 件user_reduce, 将 获 取 数 据 和 过 滤 的 代 码 写 在 该 事 件 中, 然 后 在Key 事 件 中 写 入 代 码this.postevent("user_reduce"), 由 于 postevent() 函 数 将 事 件 加 入 到 事 件 队 列 的 末 尾, 这 样 系 统 在 响 应 输 入 的 操 作 以 后 再 进 行 该 事 件 的  处 理, 从 而 实 现 了 数 据 窗 口 根 据 用 户 的 输 入 实 时 缩 小 查 询 范 围 的 目 的。  ---- 具 体 实 现 方 法 如 下:  ---- 设 数 据 库 中 有 一 表 名 为pcode.dbf, 用 于 记 录 材 料 信 息, 其 字 段 描 述 如 下:  ---- 字 段 描 述 字 段 名 字 段 类 型 长 度 格 式  ---- 编 号 CODE CHAR 10 XX-XX-XXXX  ---- 名 称 NAME VARCHAR 30  ---- 型 号 规 格 MODEL VARCHAR 28  ---- 单 位 UNIT VARCHAR 10  ---- 假 设 你 在Application 的Open 事 件 中 已 经 写 入 连 接 该 数 据 库 的 代 码, 并 已 成 功 连 接 数 据 库, 那 么 你 就 可 以 进 行 以 下 的 步 骤:  ---- 1、 新 建 一 个 窗 口 对 象, 将 它 保 存 为w_search, 在Application 的Open 事 件 中 加 入open(w_search) 代 码, 这 样 就 可 以 打 开 窗 口。  ---- 2、 建 立 一 个datawindow, 类 型 为Grid, 数 据 来 源 为 数 据 库 中 的pcode.dbf 表, 字 段 全 选, 保 存 为dw_see;  ---- 3、 在w_search 窗 口 中 增 加 两 个 对 象 分 别 为 单 行 编 辑 器sle_1 和 数 据 窗 口dw_1, 在dw_1 的 属 性 中 选 择 连 接 的datawindow 为dw_see, 在w_search 的open 事 件 中 写 如 下 代 码:  connect using sqlca; dw_1.settransobject(sqlca) dw_1.retrieve() dw_1.setrowfocusindicator(hand!) // 设 置 手 型 行 指 针 ---- 4、 鼠 标 单 击w_search 窗 口 的 空 白 处, 单 击 菜 单Declare 下 的User event 菜 单 项, 在 最 下 面 的 空 白 栏 中 输 入user_reduce, 按ok 钮 返 回。  ---- 5、 鼠 标 在w_search 窗 口 的 空 白 处 单 击 右 键, 选 择 弹 出 菜 单 的script 项 进 入 代 码 编 辑 窗, 在user_reduce 事 件 中 输 入 以 下 代 码:  string acode,code_filter long acount code_filter = "" acode = trim(sle_1.text) if len(acode) > 0 then acount = len(acode) code_filter = " left(code," + string(acount) + ") = '" + acode + "' " dw_1.setfilter( code_filter) dw_1.filter() dw_1.setsort("code A") dw_1.sort() end if ---- 6、 在w_search 窗 口 的key 事 件 中 输 入 如 下 代 码:  ---- this.postevent("user_reduce")  ---- 7、 保 存 并 运 行。 则 数 据 窗 口 中 的 记 录 会 根 据 你 在 单 行 编 辑 器 中 的 输 入 内 容 进 行 动 态 缩 小 范 围。   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服