有两个dw:dw_1,dw_2,想从dw_2中取值,dw_1检索数据,dw_1可修改,保存数据。
实现方法:
录入dw_1的某个字段,dw_2即时检索符合该字段的数据,当dw_2中剩下一条数据时,(或通过上下键选择)通过回车把值赋给该字段,dw_1并能过此字段检索数据。但一直未能如愿,主要是dw_1得到该字段的值后,无法检索数据。
变相实现有两种方法:都通过另加一个文本框和检索按钮。
一、在文本框中录入字段,通过检索按钮实现dw_1的自动过滤。通过点击dw_2的数据,把相关值赋给sle_1,并通过按钮检索。
窗口的open事件:
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_1.scrolltorow(dw_1.insertrow(0))
dw_1.enabled=false
dw_2.settransobject(sqlca)
dw_2.retrieve()
sle_1.setfocus()
sle_1的自定义事件:pbm_keydown
if key=keyenter! then
cb_1.postevent(clicked!)
end if
cb_1的click事件:
string bloodidxx
int count_bloodid
bloodidxx=trim(sle_1.text)
select count(*) into :count_bloodid from t_bloodsave where blood_id=:bloodidxx;
if count_bloodid>0 then
dw_1.enabled=true
dw_1.reset()
dw_1.setfilter("blood_id ='"+bloodidxx+"'")
dw_1.filter()
dw_1.retrieve()
dw_1.setfocus()
else
messagebox('information!','录入的数据有误!')
sle_1.selecttext( 1,len(sle_1.text))
return
end if
dw_2的click事件:
dw_2.selectrow(0,false)
dw_2.selectrow(row,true)
sle_1.text=dw_2.getitemstring(row,'blood_id')
cb_1.postevent( clicked!)
二、隐藏sle_1,cb_1,通过在blood_id字段中录入进行检索。
窗口的open事件:
dw_2.settransobject(sqlca)
dw_2.retrieve()
dw_2.scrolltorow(dw_2.insertrow(0))
dw_3.settransobject(sqlca)
dw_3.retrieve()
dw_2的itemchanged事件:
string bloodidxy
int countx
if dwo.name='blood_id' then
dw_2.accepttext()
bloodidxy=trim(dw_2.getitemstring(row,'blood_id'))
select count(*) into :countx from t_bloodsave where blood_id=:bloodidxy and blood_flag='0';
if countx>0 then
dw_2.reset()
dw_2.setfilter("blood_id = '"+bloodidxy+"'")
dw_2.filter()
dw_2.retrieve()
else
messagebox('warning!','未找到相关数据!')
dw_2.setfocus()
end if
end if
dw_2.setitem(dw_2.getrow(),'delblood_date',today())
dw_2.setitem(dw_2.getrow(),'blood_flag',-1)
dw_2.setitem(dw_2.getrow(),'doc_4',doctor_name)
dw_3的click事件:
dw_3.selectrow(0,false)
dw_3.selectrow(row,true)
sle_1.text=dw_3.getitemstring(row,'blood_id')
cb_1.postevent(clicked!)
三、想通过dw_2录入,通过dw_3检索并赋值给dw_2的blood_id,再通过blood_id检索数据。未实现。
posted on 2007-08-06 22:27
wlj768 阅读(395)
评论(0) 编辑 收藏 引用