1. 程式人生 > >PB powerbuilder 資料庫視窗DW中下拉視窗、子資料視窗響應事件

PB powerbuilder 資料庫視窗DW中下拉視窗、子資料視窗響應事件

資料庫視窗中相應滑鼠點選、鍵盤移動等操作都有全面的事件進行支援,但是下拉資料庫視窗的相關事件就不太明朗。

比如圖中,下拉視窗“新增用途”如何相應滑鼠點選操作,很多PB新手可能就一時找不到頭緒了。 

 資料庫視窗DW中下拉視窗、子資料視窗響應事件的方法。

1、需要使用到自定義事件“pbm_command”

2、事件指令碼如下:

string  ls_object
integer ii_num

DataWindowChild ldwc_Child[]

GetChild('yt' , ldwc_Child[1])
GetChild('lqr', ldwc_Child[2])
GetChild('ghr', ldwc_Child[3])

for ii_num = 1 to 3 
	IF hwndchild = Handle(ldwc_Child[ii_num]) THEN 
        //通過‘hwndchild’來判斷操作落在哪個子視窗上
		CHOOSE CASE notificationcode
			CASE 2048 // 焦點落在子視窗上	
			CASE 1281 // 子視窗被點選	
				ls_object = ldwc_Child[ii_num].GetObjectAtPointer()	
                //確定操作相關的物件
				ls_object = left(ls_object,pos(ls_object,'~t') - 1)
				if ls_object = 't_open' then
					choose case ii_num
						case 1
							open(w_edit_sjcyt)
							ldwc_Child[ii_num].settransobject(sql_kf)
							ldwc_Child[ii_num].retrieve()		
						case 2,3
							open(w_select_sjcsyr)
							ldwc_Child[ii_num].settransobject(sql_kf)
							ldwc_Child[ii_num].retrieve(gs_gsbm)					
					end choose					
				end if
			CASE 2314 // 子視窗被滑鼠右鍵點選	
			CASE 2311 // 滑鼠滑過子視窗
		END CHOOSE
		exit
	END IF
next