万卷书>>电脑书籍>>程序设计>>pb程序设计>>PowerBuilder使用技巧集

WANJUANSHU.COM

浅谈PowerBuilder中TreeView的实现

 

北 京 市 政 府 信 息 中 心
冯 华


 

---- [ 本 文 为 摘 要, 全 文 可 下 载,Zip 20KB]


 

---- PowerBuilder 作 为 数据 库 的 前 端 开 发 工 具, 以 其 全 面 的 功 能 和 优 异 的 性 能受 到 广 大 开 发 者 的 青 昧。 利 用PowerBuilder 不 仅 可 以 快 速 方便 地 与 数 据 库 交 互, 而 且 它 提 供 了 丰 富 的 控 制 对 象,能 够 设 计 出 清 晰 美 观 的 用 户 窗 口 界 面,TreeView 控 制 就 是其 中 一 例。TreeView 控 制 项 是 以 树 型 结 构 的 方 式 显 示 有 层次 关 系 的 数 据, 如 图1 就 是 用TreeView 控 制 显 示 了 一 个 分类 的 单 位 库 信 息, 在 每 个 单 位 类 别 下 列 出 所 包 含 的 具体 单 位。


 

---- 在 本 文 中, 结合 作 者 对PowerBuilder 的 开 发 经 验, 谈 一 谈PowerBuilder 中TreeView 控制 的 使 用 及 编 程 技 巧。


 

一、 添 加 并 设 置TreeView 项 ---- 在PowerBuilder 中 新 建 或 打 开 一 个 窗 口, 在Controls 中 选 择TreeView 控 制 项 放 置 到 窗 口 中。 双 击 该 控 制 打 开 属性 对 话 框, 主 要 设 置 以 下 几 个 属 性 页:


 

  1. General: 用 来 设 置TreeView 控 制 项 的 一 些基 本 信 息, 如 控 制 名、 指 定 是 否 显 示 用 以 指 示 体 系 结构 的 线、 是 否 包 含 按 钮、 指 定 边 框 类 型 等。
     
  2. Pictures: 用 来 指 定TreeView 控 制 项 各 级 的指 示 图 片, 如 图1 中 的 各 委 办、 计 委 系 统 等 单 位 类 别 为TreeView 控 制 的 第 一 层, 它 们 下 面 所 属 的 具 体 单 位 是 第 二 层,它 们 分 别 标 以 不 同 的 图 片。 在 这 里, 可 以 在Picture Name 框中 键 入 图 片 文 件 名 或 从Stock Picture 框 中 选 择PowerBuilder 提 供的 图 片。
     
  3. State:TreeView 控 制 项 的 状 态 图 片, 它 显示 在TreeView 控 制 项 的 左 侧, 指 示 其 所 处 的 状 态。


 

二、 编 写TreeView 项 处 理 程 序 ---- 建 立 好TreeView 控 制 项, 希 望 它 能 按 要 求显 示 数 据, 就 必 须 为 它 编 写 程 序。 要 作 到 这 一 点, 首先 需 要 从 数 据 库 中 查 询 出 所 需 数 据, 然 后 在 将 这 些 数据 生 成TreeView 控 制 项 的 树 型 结 构。 在PowerBuilder 中 与 数 据 库交 互 的 方 式 主 要 有 以 下 三 种:
---- ① 使 用Datawindow
---- ② 使 用DataStore
---- ③ 使 用 数 据 库 游 标


 

---- 由 于 从 数 据 库中 查 询 出 的 数 据 要 用TreeView 控 制 显 示, 所 以 利 用 后 两 种交 互 方 式 比 较 合 适。 下 面 我 们 就 以 图1 所 示 的TreeView 控制 项 为 例, 说 明 为TreeView 控 制 项 编 写 程 序 的 步 骤:


 

---- ① 创 建 一 个 窗口, 并 在 其 上 创 建TreeView 控 制, 控 制 名 为tv_dw。


 

---- ② 在 窗 口 的Open 事 件 中 编 写 如 下 程 序:


 

 
	... ...


 

---- 由 于 用TreeView 控制 浏 览 数 据 需 要 把 查 询 结 果 生 成TreeView 的 树 型 结 构, 这其 中 要 经 历 查 询 和 生 成 树 型 结 构 两 个 过 程, 因 此 如 果要 在 一 个 事 件 中 查 询 出 所 有 数 据 并 生 成 树 型 结 构 势必 会 影 响 程 序 执 行 效 率, 这 在 数 据 量 较 大 的 情 况 下 尤为 突 出。 为 了 降 低 这 种 影 响, 我 们 可 以 在 打 开 带 有TreeView 控 制 的 窗 口 时 只 生 成 并 显 示 部 分 数 据, 然 后 在 选 中 某项 时 生 成 并 显 示 此 项 下 的 具 体 数 据。 例 如 在 图1 的 例子 中, 在 打 开 窗 口 时 只 生 成 并 显 示 单 位 类 别 数 据, 当选 中 某 一 单 位 类 别 后 再 生 成 并 显 示 此 类 别 下 的 所 有单 位, 这 就 需 要 用 到TreeView 控 制 的itempopulate 事 件。


 

---- 在tv_dw 控 制 对 象的itempopulate 事 件 中 编 写 如 下 程 序:


 

 
	... ...


 

---- 以 上 给 出 了PowerBuilder 中TreeView 的 实 现 方 法, 它 是 最 普 遍、 最 常 用 的 一 种 实 现方 法, 其 实,TreeView 控 制 及 其 编 程 相 对PowerBuilder 中 的 其 他控 制 项 来 说 较 为 复 杂, 在 生 成 的 树 型 结 构 上 的 所 有 维护 工 作, 如 增 加、 删 除、 修 改 等 都 需 要 编 程 来 完 成,这 就 需 要 编 写 大 量 的 程 序 代 码, 不 过 树 型 结 构 的 简 明直 观 的 风 格 的 确 为 程 序 增 色 不 少, 有 兴 趣 的 读 者 不 妨试 一 试TreeView, 相 信 一 定 不 会 令 您 失 望 的。

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书