如何实现两表刷新

ppxstar 2006-06-07 11:59:40
请问一个表(freedom)更新后,另一个表(grid)里的数据就可以显示出最新修改过的数据的功能如何实现?
...全文
272 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppxstar 2006-06-10
  • 打赏
  • 举报
回复
我明白了,可我应当如何修改?
sunpulse 2006-06-09
  • 打赏
  • 举报
回复
sharedata

doubleclick事件中你把主表grid作为参数传过去,
Message.PowerObjectParm = this

然后在新开的窗口Open事件中接收,
datawindow ldw_master
ldw_master = Message.PowerObjectParm

ldw_master.ShareData(dw_1)

从表主表指向同一个内存地址,无论修改哪一个都一样,只是表现形式一个是free,一个grid
ppxstar 2006-06-09
  • 打赏
  • 举报
回复
首先谢谢百合的热情解答。
我Pb用的极不熟悉,所以你的提示我只看懂一点点

我的主表和从表里面内容是完全一样的
设计很普通,就是主表(gird)显示内容,双击其中某一行出现从表(freeform)进行修改,点击新增菜单也出现从表(freeform)进行增加一条新数据

我希望修改和增加的操作过后,主表(gird)就自动刷新一下,这样不就可以显示修改过的和新增加的内容嘛!
princelily 2006-06-09
  • 打赏
  • 举报
回复
根据你的表达,你想在w_main窗口中放置和主表联系的数据窗口对象,当双击主表中的某一行数据后弹出一个新的窗口,里边放置和子表相联系的数据窗口(freedom),你就在这里进行对数据的修改,当保存这个freedom类型的数据窗口中的数据后,自动能更新w_main窗口中的数据。对吧?
那么"dw_main.getrow()娶不到值了"
那是因为getrow()函数是取当前数据窗口内的当前行的行号。而你这时候打开的是弹出窗口,dw_main这时候在主窗口里,不是当前对象。自然取不到值了。
ppxstar 2006-06-09
  • 打赏
  • 举报
回复
我在子表保存按钮里加上下面一句,可以实现刷新
w_main.dw_main.retrieve()
w_main是主表dw_main所在的窗口

但是程序提示dw_main.getrow()娶不到值了
sunpulse 2006-06-09
  • 打赏
  • 举报
回复
我的办法的原理就是,利用sharedata()对同一个dw修改,所做任何修改都同时反映出来.

如果要自动retrieve的话,那得自己写代码retrieve,在修改提交成功以后,

其实不赞成这样的做法,数据库和网络的负载太大.
ppxstar 2006-06-09
  • 打赏
  • 举报
回复
谢谢大家帮忙
可能是我表达不清的原因
我的主表(gird)里面放的是最新100条数据
双击其中一条可以在新表(freeform)中修改
点击增加按钮和菜单,可以在一个空白新表(freeform)填写数据保存
我想是在修改或增加后,主表(gird)能自动retrieve

波波的方法我试了一下,好像不成功。
princelily 2006-06-08
  • 打赏
  • 举报
回复
那你主表和从表之间一定要有一个字段是一致的,当从表修改过的数据在主表要通过此字段检索出来。要实现你说的功能,那从表里一定会有主表中的一些字段吧。这样修改从表带动主表数据改变这才有意义。呵呵
ppxstar 2006-06-08
  • 打赏
  • 举报
回复
两个表是在不同的两个window里,子表里我不能直接引用主表怎么办呀!
圣殿骑士18 2006-06-07
  • 打赏
  • 举报
回复
sharedata
princelily 2006-06-07
  • 打赏
  • 举报
回复
你可以这么办。
你应该已经在grid类型的主窗口中的open时间中写了
dw_1.settransobject(sqlca)
dw_1.retrieve()
那么在子表(freedom)显示窗口中的"确定"按钮的clicked事件中,就可以触发主窗口的open事件
主窗口对象.event trigger open()
这样,就可以实现你说的"我想子表修改过后,主表刷新一下,就可以看到最新内容了"
ppxstar 2006-06-07
  • 打赏
  • 举报
回复
不想对原有结构改造了。
子表(freedom)是双击主表(gird)某一项弹出的一个新窗口
我想子表修改过后,主表刷新一下,就可以看到最新内容了
此方法应当同样适用用(freedom)表新增一条数据后主表(grid)显示出来。
xyqiqi 2006-06-07
  • 打赏
  • 举报
回复
sharedata
建立主从窗口

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧