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

WANJUANSHU.COM

隐藏数据窗口中下拉数据窗的检索参数

 

兰 州 铁 道 学 院
胡 法 红



 

---- 面 向 对 象 的 开发 工 具PowerBuilder 是 目 前 流 行 的 数 据 库 前 端 开 发 工 具 之一, 特 别 是 它 的 数 据 窗 口, 用 它 可 以 很 方 便 地 对 数 据库 进 行 操 作, 并 且 数 据 窗 口 对 象 又 以 其 灵 活 多 样 的 显示 风 格 深 得 广 大 开 发 者 的 喜 爱。 有 时 候, 数 据 窗 口 对象 中 的 某 些 列 的 取 值 必 须 满 足 一 定 的 条 件 且 来 自 于另 一 个 数 据 源, 这 样, 我 们 就 要 使 用 下 拉 数 据 窗 口 风格 的 数 据 窗 口 对 象, 并 且 在 下 拉 数 据 窗 口 中 设 置 检 索参 数, 该 下 拉 数 据 窗 口 仅 显 示 满 足 条 件 的 数 据。 不 幸的 是, 如 果 我 们 直 接 使 用 该 带 参 数 的 下 拉 数 据 窗 口,在 我 们 使 用Insertrow()、Retrieve() 函 数 操 纵 数 据 窗 口 时, 系 统会 自 动 检 索 下 拉 数 据 窗 口, 出 现"Specify Retrieval" 对话 框, 怎 样 才 能 避 免 该 对 话 框 出 现 呢 ?


 

---- 为 了 避 免 出 现"Specify Retrieval" 对 话 框 的 出 现, 我 们 在 操 纵 主 数 据 窗 口 之 前必 须 先 操 纵 下 拉 数 据 窗 口。 为 了 让 读 者 更 清 楚 具 体 操作 过 程, 我 们 以 一 个 具 体 实 例 的 实 现 为 例 具 体 操 作。本 例 子 的 数 据 来 自 于 两 个 表:bj 和student。 具 体 步 骤 如下:


 

---- 一 . 创 建 窗 口w_test, 窗 口 上 的 控 件 有: 命 令 按 钮:cb_1( 插 入)、cb_2( 关 闭), 数据 窗 口 控 件dw_1, 静 态 文 本st_1( 年 度), 单 行 编 辑 框sle_1。


 

---- 二 . 创 建 基 于表student 的 数 据 窗 口 对 象d_student、 基 于 表bj 的 数 据 窗 口 对象d_bj; 其 中 设 置d_bj 中 的 列"nd( 年 度)" 设 置 检 索 参数, 参 数 名 为nd(string), 当 检 索 子 数 据 窗 时, 下 拉 数 据 窗显 示 满 足nd=:nd 的 数 据; 而d_student 的 列class( 班 级) 为 下 拉 数据 窗 风 格, 子 数 据 窗 为d_bj; 这 样, 当 单 击 " 插 入" 时, 数 据 窗 的" 班 级" 列 只 显 示 满 足 条 件"nd=sle_1.text" 的 班 级 名 称。


 

---- 三 . 在 窗 口"w_test" 中 声 明 事 例 变 量(Instance Variables):DatawindowChild child


 

---- 四 . 在 窗 口open 事 件 中 写 入 以 下 脚 本 程 序:sle_1.text=string(today(),"yyyy") dw_1.settransobject(sqlca)


 

---- 五 . 在 命 令 按钮cb_1( 插 入) 的"clicked" 事 件 中 写 入 以 下 脚 本 程 序:


 


dw_1.getchild("class",child)
child.settransobject(sqlca)
child.retrieve(sle_1.text)
dw_1.settransobject(sqlca)
dw_1.insertrow(0)


 

---- 此 时, 光 标 停于 单 行 编 辑 框sle_1 内, 在 该 编 辑 框 内 输 入 年 度 号( 如:1998)然 后 单 击 命 令 按 钮cb_1( 插 入), 移 动 光 标 到 新 添 加 行 的" 班 级" 列, 单 击, 出 现 下 拉 数 据 窗 口( 如 图 二), 该子 窗 口 出 现 的 数 据 就 为 满 足nd="1998" 的 班 级 名 称。


 

---- 从 上 面 的 实 例操 作 可 知, 为 了 在 子 数 据 窗 口 中 仅 显 示 满 足 条 件 的 数据, 就 必 须 为 子 数 据 窗 口 设 置 检 索 参 数, 单 为 了 在 操纵 主 数 据 窗 口 时 出 现"Specify Retrival" 窗 口, 只 需 在 操纵 主 数 据 窗 口 之 前 先 对 子 数 据 窗 口 操 纵, 这 样 就 可 以达 到 我 们 的 要 求。

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