如何在一个窗口中把两个数据窗口关联在一起?

松耦合紧内聚 2001-11-30 10:52:00
在一个数据窗口中进行选择,另一个也进行相应的变化,这两个数据窗口后台的表已经用外吗连好了。
...全文
153 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
morningdew 2001-12-01
  • 打赏
  • 举报
回复
真是好人啊,收藏!。
oursii 2001-12-01
  • 打赏
  • 举报
回复
hehe,借花献佛,前两天刚从这儿学会的!
其实你问问题之前应先查前面的帖子! :)

我 们 在 应 用 中 会 遇 到 层 次 型 关 系 的 数 据, 例 如 部 门 和 雇 员 实 体 之 间 的 关 系。 在 对 一 个 部 门 下 雇 员 的 数 据 进 行 维 护 时, 可 以 使 用Master/Detail 的 表 现 形 式, 在 数 据 窗 口dw_1 表 现 已 有 部 门 的 数 据, 并 根 据 用 户 选 择 的 某 一 条 记 录, 在dw_2 中 变 换 所 选 定 部 门 雇 员 的 信 息, 并 对 雇 员 信 息 进 行 维 护。

首 先 声 明 一 个 全 局 变 量:
n_cst_appmanager gnv_app
在 应 用 的Open 事 件 中 加 入:
gnv_app = CREATE n_cst_appmanager
gnv_app.Event pfc_Open(commandline)
在 应 用 的Close 事 件 中 键 入:
gnv_app.Event pfc_Close( )
DESTROY n_cst_appmanager

在 窗 口 中 我 们 定 义dw_1 和dw_2 为PFC 中u_dw 的 实 例 对 象, 在 窗 口 的Open 事 件 中 我 们 编 程 如 下:

// 设 置dw_1 和dw_2 的 级 联 方 式
dw_1.of_setlinkage(true)
dw_2.of_setlinkage(true)
dw_1.of_settransobject(sqlca)
dw_2.of_settransobject(sqlca)
// 定 义dw_1 和dw_2 的 级 联 关 系
dw_2.inv_linkage.of_linkto(dw_1)
dw_2.inv_linkage.of_setarguments("dept","dept")
dw_2.inv_linkage.of_setusecollinks(1) // 设 置 连 接 方 式 为filter
// 触 发dw_2 的pfc_retrieve() 事 件
dw_2.event pfc_retrieve()
if dw_1.event pfc_retrieve() = -1 then
messagebox(" 错 误"," 提 取 数 据 错 误-- 类 别")
else
dw_1.setfocus()
end if
在dw_1 和dw_2 的pfc_retrieve
事 件 中 将 祖 先 的 代 码 覆 盖, 并 分 别 写 下 如 下 语 句:
return this.retrieve()

在dw_1 的rowfocuschanged 事 件 代 码 中 将 对 该 数 据 窗 口 的 数 据 进 行 过 滤, 而 执 行retrieve() 函 数 将 触 发 这 一 事 件。
使 用PFC 中 这 个 对 象 的 优 点 还 可 以 体 现 在 以 下 两 点: 当 需 要 更 新 级 联 的 所 有 数 据 窗 口 时, 只 需 执 行dw_1.inv_linkage.of_update() 一 条 命 令 即 可 完 成; 如 果 想 要 在dw_2 中 增 加 一 行 新 数 据, 可 使 用dw_2.pfc_addrow(0) 或dw_2.pfc_insertrow() 函 数, 这 个 函 数 会 将dw_2 中dept 字 段 的 值 自 动 设 置 为dw_1 中dept 的 当 前 值, 从 而 避 免 了 手 工 使 用GetItem 和SetItem 函 数 来 设 置。

在 上 述 简 单 的 关 系 中, 并 未 充 分 体 现 出PFC 优 越 性。 但 在 一 个 工 厂 中 对 零 件 的 管 理 或 是 大 型 商 场 中 对 商 品 的 管 理, 往 往 是 要 通 过 多 次 的 级 联 才 能 定 位 到 某 一 类 产 品 的 子 目, 在 这 样 的 系 统 中, 拥 有 一 个 像u_dw 这 样 的 基 类, 编 程 的 效 率 就 可 以 提 高 许 多。
morningdew 2001-12-01
  • 打赏
  • 举报
回复
可以用SQL SELECT数据源,在一个数据窗口放入两个表的内容,通过JION建立字段的连接,
yzip 2001-11-30
  • 打赏
  • 举报
回复
通过代码进行关联了,比如在rowsfocuschanged事件中,clicked事件中,editchanged事件中,同步修改另外一个窗口就行了。
如果用了PFC,好县可以用setlinkage的,有这么一个对象,来设置数据窗口的关联。
相关推荐
发帖
PowerBuilder

1028

社区成员

PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
帖子事件
创建了帖子
2001-11-30 10:52
社区公告
暂无公告