一个在数据窗口中显示数据的问题

hifrog 2004-03-23 04:18:32
我在用filter检索数据时想让它在没有找到任何数据时显示先前数据窗口中的数据,我是用下面的代码做的:

string ls_memberid
ls_memberid=sle_1.text

m_row=dw_1.getrow() //m_row是全局变量,用来保存当前的行数
messagebox("x",string(m_row))
//设置过滤条件
dw_1.setfilter("memberid='"+ls_memberid+"'")
//过滤数据
dw_1.filter()
if dw_1.rowcount()>0 then
refreshborrowbook()
else
messagebox("系统提示","找不到有关该会员编号的记录!")
dw_1.scrolltorow(m_row)
//dw_1.retrieve()
end if

然而dw_1.scrolltorow(m_row)这句好像不管用,数据窗口中并没有显示相应行的数据,我用下面的代码代替也不管用:

dw_1.selectrow(0,false)
dw_1.SetRow(m_row)
dw_1.selectrow(m_row,true)

我写了个事件函数把这些代码放在函数里用post来调用这些函数也不管用。数据窗口老是显示不出数据来,郁闷ing,望各位高手指教,怎么才能在数据窗口中显示先前行的数据?
...全文
9 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sun1976 2004-03-23
dw_1.setredraw(false)的位置错了,提到第一句,所有语句之前
回复
sun1976 2004-03-23
if dw_1.rowcount()>0 then
refreshborrowbook()
else
dw_1.setfilter('')
dw_1.filter()
messagebox("系统提示","找不到有关该会员编号的记录!")
dw_1.scrolltorow(m_row)
//dw_1.retrieve()
end if
你最好记录setfilter的字符串再设置回去而不是dw_1.setfilter('')

做法如下

string ls_memberid,ls_filter
ls_memberid=sle_1.text

m_row=dw_1.getrow() //m_row是全局变量,用来保存当前的行数
messagebox("x",string(m_row))
//设置过滤条件
//记录
ls_filter="memberid='"+ls_memberid+"'"
dw_1.setfilter(ls_filter)
//过滤数据
dw_1.filter()
dw_1.setredraw(false)
if dw_1.rowcount()>0 then
refreshborrowbook()
dw_1.tag=ls_filter
else
dw_1.setfilter(dw_1.tag)
dw_1.filter()
messagebox("系统提示","找不到有关该会员编号的记录!")
dw_1.scrolltorow(m_row)
//dw_1.retrieve()
end if

dw_1.setredraw(true)
回复
FanqiTiger 2004-03-23
你已经用dw_1.filter()了,还如何能显示先前的数据,将数据窗口的filter条件再改回去应该就行了。
回复
sun1976 2004-03-23
if dw_1.rowcount()>0 then
refreshborrowbook()
else
dw_1.
messagebox("系统提示","找不到有关该会员编号的记录!")
dw_1.scrolltorow(m_row)
//dw_1.retrieve()
end if
回复
发帖
DataWindow
创建于2007-09-28

572

社区成员

PowerBuilder DataWindow
申请成为版主
帖子事件
创建了帖子
2004-03-23 04:18
社区公告
暂无公告