学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

求助!数据窗口问题

求助!数据窗口问题

我是PB初学者,想做一个窗口,其数据窗口控件dw_1中是显示日期的数据,数据窗口控件dw_2中希望根据dw_1选中行的数据进行动态显示,如选中2007-1-1,则只显示这一天的相关数据,在dw_2的数据窗口对象中已创建了检索参数":when",Type为date。编写dw_1的RowFocusChanged事件如下
dw_1.setcolumn("date")
if dw_1.gettext()<>"" then
dw_2.retrieve(dw_1.gettext())
end if
但是运行时dw_2不能显示,请各位大侠帮帮忙。

TOP

先检查dw_2.retrieve()的返回值,最后中断到RocusChanged,看返回结果.

TOP

这个楼上是什么意思能不能说清楚点,我对PB还不是很熟悉。
另外我用这个方法做的另外一个窗口则可以实现功能,那个窗口是根据dw_1中选定行的“id”动态显示,id是varchar类型,我觉得是不是dw_1.gettext()不能获取date数据,不知道是不是这样。

TOP

dw_2那边写错了.自己检查一下吧

TOP

这个很好实现的,你可以W_2的检索参数设置为日期,然后在W_1的写一个获得日期的程序
long ll_spnm
//string ll_spnm
//获取行号
ll_spnm=getrow(dw_2)
selectrow(dw_2,0,false)
selectrow(dw_2,ll_spnm,true)
//获取第一例的值
gs_id_1=dw_2.getitemstring(ll_spnm,1)
gs_id_2=dw_2.getitemstring(ll_spnm,1)
if gs_id_1='' and gs_id_2='' then
return
else
dw_1.settransobject(sqlca)
dw_1.retrieve(gs_id_1,gs_id_2)
end if


这样ok.

TOP

这个问题我已经解决了,方法是编写dw_1的clicked事件
IF<=0 then return
dw_2.retrieve(dw_1.getitemdate(row,"date"))

但不像4楼说的,我之前这样编写的程序用于根据“id”动态显示是完全可以的,没看出dw_2那有什么问题。我用messagebox("提示",dw_1.gettext())检查时发现没有数据显示,所以猜测是gettext用法问题,还希望高手解答

TOP

取数据窗的数据用 getitem来取,不同的类型getitem后面的写法也不同。。。看下帮助就知道了
或者可以加个 刷新 按钮,填写完DW1中的日期后,点刷新按钮
ldt_time
ldt_time = dw_1.GetItemDateTime(dw_1.GetRow(),'date')
dw_2.SetTransObject(Sqcla)
dw_2.Retrieve(ldt_time)

TOP

pb交流群:23037600软件设计师24088104
[url=http://hi.baidu.com/ugly927846] 版主博客[/url]

TOP

呵呵,我是新手,看了很多天的数据窗口了,还是有很多不明白的地方,以后希望各位大虾多多指教哦!
爱若让人患上记忆,只因此情此景有你……

TOP

发新话题