datawindow自动显示相对应的数据

iwithyou 2002-10-15 11:57:10
datawindow有一列(如ID),采用下拉数据窗口的方式选取,希望在选定ID后在同一行的几列(如NAME,ADDRESS)即刻显示出此ID的相对应数据(另有几列人工输入)。请问能否实现?在哪个事件下如何编码?
注:此datawindow有N行数据需要输入。
...全文
53 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huihuishou 2002-10-16
  • 打赏
  • 举报
回复
itemchanged()事件

/*如果当前被改变的列是"jzg_xm"时,相应地改变与教师对应的基本信息,该基本信息从下拉数据窗口中得到,而下拉数据窗口实际上只显示“姓名”列*/
if dwo.name = "jzg_xm" then
long i
datawindowchild ldwc_child
this.getchild('jzg_xm',ldwc_child) //教师姓名列的下拉数据窗口
i=ldwc_child.getselectedrow(0)
this.object.jzb_id[row]=ldwc_child.getitemstring(i,"id")
this.object.jzg_xb[row]=ldwc_child.getitemnumber(i,"xb")
this.object.jzg_xl[row]=ldwc_child.getitemstring(i,"xl")
this.object.jzg_zc[row]=ldwc_child.getitemstring(i,"zc")
this.object.jzg_zw[row]=ldwc_child.getitemstring(i,"zw")
end if
return//返回默认值(表示接受数据)

该方式是从下拉数据窗口中得到相关数据,只是楼上各位提到的方法中的一种。优点是一旦把数据提到下拉数据窗口中,那么改变姓名列值的时候速度会很快,而且不用频繁select数据库。当然缺点是占用资源太多,数据更新不及时。
konrong 2002-10-16
  • 打赏
  • 举报
回复
choose case dwo.name//假如焦点在?
case 'name'//职工姓名
select code into :name1 from rsk_local where name=:data;
this.object.code[row]=name1//根据NAME选择出来的值,给CODE字段赋值
this.settaborder('code',0)//让CODE字段不可编辑
case 'ljth'//零件图号
ljth5=data
select ljmc into :lstr_ljmc from ljgdk where ljth=:data;//读出零件名称
if isnull(lstr_ljmc) then//判断
dw_sgd1.object.ljth.validationmsg="零件编号不存在,请检查。"
return 1
end if
select cpxh into :cpth1 from ljgdk where ljth=:data;
object.cpxh[row]=cpth1//根据零件图号找到产品图号,赋值给CPXH字段
object.ljmc[row]=lstr_ljmc
select ljcl into :ljcl1 from ljgdk where ljth=:data;//读出零件-材料名称
object.ljcl[row]=ljcl1
select ljth into :ljth1 from ljgdk where ljth=:data;//读出零件图号
ljth5=data
select mp_dim,xlgg into :clgg1 ,:xlgg1 from ljgdk where ljth=:data;
object.clgg[row]=clgg1
object.xlgg[row]=xlgg1
END CHOOSE
JIANXIN_LU 2002-10-15
  • 打赏
  • 举报
回复
此种问题实现的方法很多:
方法一:用下拉列表框或数据窗口来实现,下拉列表框中插入数据,在selectchanged事件中加retrieve;或用数据窗口只显示一列数据(如id),在itemchanged事件中retrieve()。再添加一主数据窗口显示数据,显示你要的数据。
方法二:用两个数据窗口,一个现实你的标示数据(如id),在RowFocusChanged事件中加retrieve。另一个数据窗口显示数据。
konrong 2002-10-15
  • 打赏
  • 举报
回复
在itemchanged事件中写代码:用SELECT语句从表中找出这个ID 的其它几个值,然后赋值给DW对应的列,就可以了。
lbx1979 2002-10-15
  • 打赏
  • 举报
回复
前面有不少帖子发过这个问题了,你可以查查
pufan 2002-10-15
  • 打赏
  • 举报
回复
在itemchanged事件中写代码即可.
iwithyou 2002-10-15
  • 打赏
  • 举报
回复
能否举例代码说明一下怎么实现?

611

社区成员

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

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