如何实现下拉数据窗口的条件检索控制?
某字段使用了dddw来显示数据,数据量很大,检索了上万条发货单的表头信息,这使得在打开程序主界面时很慢。能否可以实现由代码来控制这个dddw的检索工作,让它在输入条件后,点击倒三角的下拉箭头后,再进行检索。 问题点数:100、回复次数:10Top
1 楼zhf6529(秋无痕)回复于 2005-07-08 09:30:06 得分 0
在窗口open事件中这样写
datawindowchild ldwc_child
long ll_rtn
ll_rtn = dw_1.getchild('使用dddw的字段名', ldwc_child)
if ll_rtn = 1 then
ldwc_child.settransobject(sqlca)
end if
在数据窗口中自定义一个事件,叫做ue_dwnkey,id为pbm_downkey,ue_dwnkey代码如下
string ls_filter
if key = keyenter! then
if this.getcolumn = '使用dddw的字段名' then
ls_str=this.getitemstring(this.getrow(),"使用dddw的字段名")
ldwc_child.setfilter('使用dddw的字段名='+ls_str)
ldwc_child.filter()
end if
end ifTop
2 楼sbks(hwnd,&rect)回复于 2005-07-08 09:35:02 得分 0
zhf6529(秋无痕):
这个办法不行。因为ldwc_child已经进行了retrieve了数据,上面的代码中是进行一次filter()。
我的意图是在直接控制retrieve,避免大量的数据检索。Top
3 楼zhf6529(秋无痕)回复于 2005-07-08 09:42:30 得分 25
这样呀,你可以在ldwc_child中定义一个检索参数,然后retrieve(参数)也可以的Top
4 楼lzheng2001(1加1)回复于 2005-07-08 10:01:48 得分 25
为child dw加参数就可以了,进入dw的数据源(sql)窗口->design菜单->Retrival Arguments ... 中添加参数
datawindowchild ldwc_child
long ll_rtn
ll_rtn = dw_1.getchild('使用dddw的字段名', ldwc_child)
if ll_rtn = 1 then
ldwc_child.settransobject(sqlca)
ldwc_child.retrieve(参数1,...)
end if
Top
5 楼zxjnew(重新启动)回复于 2005-07-08 10:48:43 得分 0
还可以用 getsqlselect() 和 setsqlselct() 来实现Top
6 楼shangdier(殇迪)回复于 2005-09-15 10:18:44 得分 0
编辑数据窗口对象的过滤条件
打开sql面板
design\convert to syntax
直接用sql语句来选择Top
7 楼lzp_lrp(lzp)回复于 2005-09-15 18:01:48 得分 50
你首先需要把数据窗口列的autoretrieve的勾去掉
再按lzheng2001(1加1) 的方法去做,应该就可以达到你的目的了Top
8 楼hangzhou6274(拉面贵了,馒头小了,领导知道吗?)回复于 2005-09-16 08:47:29 得分 0
lzp_lrp(lzp) 的方法可行.Top
9 楼saiche05(赛车)回复于 2005-09-16 09:05:28 得分 0
ingTop
10 楼wscft(努力工作,开心生活!))回复于 2005-09-16 11:53:59 得分 0
学习!Top




