问题没有解决,我把详细步骤列出来了:为什么我在DW_DDLB中取值总是第一条记录的值

blackfox0322 2003-12-19 11:17:56
我把我做的工作说详细点,便于大家分析
我有两个表bmb(部门表:BMBH,BMMC),ZB(BH,FY,BMBH,BZ)

新建了一个FREEFORM数据窗口字段为BMB中的两个字段,其中BMBH隐藏,名称为D_BH
新建了一个GRID数据窗口字段为ZB中的字段,名称为D_ZB

新建了一个EDIT STYLE名称为ES_BMBH 其中STYLE改为DROPDOWNDW
DATAWINDOW:D_BH; DISPLAY COLUMN:BMMC; DATA COLUMN:BMBH

在窗口中的OPEN事件里写入了
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_2.settransobject(sqlca)
dw_2.retrieve()
DW_1的DATAOBJECT为D_BH, DW_2的DATAOBJECT为D_ZB
在CB_1中的CLICKED中有程序
string ls_bmid
ls_bmid=dw_1.getitemstring(dw_1.getrow(),'khdwbh')
messagebox("aa",string(dw_1.getrow())+","+ls_bmid)
可是我不管怎么改他总是反回1,001.我不知我哪个环节出问题了
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-12-19
  • 打赏
  • 举报
回复
你可以在Freeform的dw_1设置纵向卷滚条,就可以看到后面的数据了。
suzh1133 2003-12-19
  • 打赏
  • 举报
回复
搞了半天你的dw_1是free格式,正如楼上所说的你一直都是在第一条记录上操作,当然显示的是1,001了。

想操作多条记录,可以建立一个grid数据窗口D_BH_grid,放到dw_2中,然后
dw_2.sharedata(dw_1)
blackfox0322 2003-12-19
  • 打赏
  • 举报
回复
to chrisfy(K.O)
有什么好的解决方法呢?
chrisfy 2003-12-19
  • 打赏
  • 举报
回复
dw_1可是FREEFORM风格数据窗口,这种风格的dw只能在数据窗口控件显示区域内显示一条记录,当你dw_1.retrieve()后ls_bmid=dw_1.getitemstring(dw_1.getrow(),'khdwbh')取得值始终是dw_1.getrow()的值,即第一行的值(假如数据库中有数据,数据窗口retrieve后,将置第一行为当前行),当然只返回1,001了
blackfox0322 2003-12-19
  • 打赏
  • 举报
回复
to suzh1133(suzh):
我按你的方法做了,值改变了,TAB上面是标出的40
可是还是返回的1,001
详情请参看:http://expert.csdn.net/Expert/topic/2579/2579541.xml?temp=.951626
blackfox0322 2003-12-19
  • 打赏
  • 举报
回复
晕,我终于知道我错在哪里了,我犯了一个很低级的错误,
ls_bmid=dw_1.getitemstring(dw_1.getrow(),'khdwbh')这句话应该把'KHDWBH'改为'KHDWMC'
用户选择的是客户单位名称,并不是编号,所以当名称改变时会反回相应的编号.
55555,不行,我还要加大学习PB的时间,我要发粪 ,我要涂墙.我向各位学习...
谢谢大家这么关心我,散分了

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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