fredlifan 发表于 2007-8-25 19:21

求助!数据窗口问题

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

whiteyl 发表于 2007-8-26 00:58

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

fredlifan 发表于 2007-8-26 11:50

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

tangchangxin 发表于 2007-8-27 10:25

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

fengkun1227 发表于 2007-8-27 12:55

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

fredlifan 发表于 2007-8-27 14:48

这个问题我已经解决了,方法是编写dw_1的clicked事件<BR>IF&lt;=0 then return<BR>dw_2.retrieve(dw_1.getitemdate(row,"date"))<BR><BR>但不像4楼说的,我之前这样编写的程序用于根据“id”动态显示是完全可以的,没看出dw_2那有什么问题。我用messagebox("提示",dw_1.gettext())检查时发现没有数据显示,所以猜测是gettext用法问题,还希望高手解答

sam2080 发表于 2007-8-29 16:49

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

ugly927846 发表于 2007-9-1 11:52

[em01][em01][em01]

柳婕 发表于 2007-9-1 14:58

呵呵,我是新手,看了很多天的数据窗口了,还是有很多不明白的地方,以后希望各位大虾多多指教哦![em01]

页: [1]

编程论坛