导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

两个子数据窗口关联

mittee 2003-12-16 03:57:31
数据窗口有两个字段:部门 工段 (部门下有工段),都是通过字数据窗口进行
选择。工段的子数据窗口如过没有加检索条件是将所有的工段都显示出来的,有一个部门id表明该工段是哪个部门的。
增加数据的时候选择部门后在itemchanged事件里对工段的子数据窗口进行检索,以便选择工段少一些。
问题是如果增加两条数据,第二条数据选了不同的部门,工段的子数据窗口进行了检索,第一条数据工段处就变成数字。
各位帮忙想一个办法。




...全文
36 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bunnysky 2003-12-17
hzhxxx(程序方程) 的方法可行!
回复
workhand 2003-12-17
恭喜楼主升级星星先,
pb就是有这个问题,也许是bug,按照hzhxxx的方法试试。
回复
jdsnhan 2003-12-17
恭喜楼主变成星星。
回复
banalman 2003-12-17
这个问题归结pb对与下拉数据窗口的对应关系。因为数据窗口在创建的时候(settansobject)仅有一个子数据窗口缓冲区,并不是各行一个,因此您的某行变换,字数据窗的数值页发生变化,原有的对应的关系对应不上了,所以会出现这个问题。解决的办法。您可以创建两个相同的字段,一个用于用户选择(虚拟)另外一个用于实际的存储显示,但不允许用户修改。我通常就是这样处理。
例如 可以在sql面板 创建一个计算列。然后在数据窗口中同样关联相同的数据窗口。但该字段主要用于辅助输入作用。
回复
mittee 2003-12-16
pbm_ncpaint是什么事件啊,
单步调试的时候不停触发
根本回不到窗口
回复
TGWall 2003-12-16
楼主升星了, 可喜可贺!
回复
klbt 2003-12-16
简单的方法,不一定适用:
DW中增加一个显示计算列,内容是lookupdisplay(工段)
回复
wu_07 2003-12-16
我这里有个例子,已经上传:

http://www.pdriver.com/BBS5/dispbbs.asp?boardid=14&id=110473&star=#699022
回复
mittee 2003-12-16
hzhxxx(程序方程) 好的
回复
hdvcd 2003-12-16
up
回复
hzhxxx 2003-12-16
思路 : 把用于显示的子数据窗口 a 和 用于输入的子数据窗口 b 分开

具体步骤:

1. 用于显示的子数据窗口总是装载所有的数据,所以显示没有任何问题
2. 当要输入的时候,动态的创建一个 userobject c

windowname.OpenUserObjectWithParm(userobjectvar, parameter,userobjecttype {, x, y } )


设计 c 的时候, c 容器里要有一个 datawindow,当 c 实例被创建的时候,动态的
通过 parameter 项得到 datawindow.dataobject,retrive(),就可以了

注意使用消息编号为 pbm_dwndropdown 的自定义事件
回复
wwwafa9 2003-12-16
帮你up!
回复
freebirdwjy 2003-12-16
UP
回复
dotnba 2003-12-16
楼主升级散分了?
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

816

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告