$PBExportHeader$uo_ddlb_scid.sru forward global type uo_ddlb_scid from dropdownlistbox end type end forward global type uo_ddlb_scid from dropdownlistbox integer width = 521 integer height = 524 integer taborder = 10 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false boolean vscrollbar = true borderstyle borderstyle = stylelowered! end type global uo_ddlb_scid uo_ddlb_scid type variables long uo_scid long uo_scid_arr[] end variables forward prototypes public subroutine uf_selectsc (long arg_scid) end prototypes public subroutine uf_selectsc (long arg_scid);Long ll_count, ll_i ll_count = THIS.TotalItems() IF arg_scid = -1 THEN FOR ll_i = 1 TO ll_count IF THIS.Text(ll_i) = '[全部]' THEN THIS.SelectItem(ll_i) THIS.TRIGGER EVENT SelectionChanged(ll_i) RETURN END IF NEXT END IF string ls_txt FOR ll_i = 1 TO ll_count ls_txt = Mid ( THIS.Text(ll_i),Pos(THIS.Text(ll_i),'[') + 1,Len(THIS.Text(ll_i)) - Pos(THIS.Text(ll_i),'[') - 1 ) IF string(arg_scid) = ls_txt THEN THIS.SelectItem(ll_i) THIS.TRIGGER EVENT SelectionChanged(ll_i) RETURN END IF NEXT end subroutine event constructor;Long ls_scid,ls_scid_save, ls_scid_get Long cnt = 0 String ls_scname, ls_scname_get Long ll_i String ls_space Int li_spacenum String ls_scname_dft Boolean lb_getdft = FALSE ls_scid_save = Long(f_ProfileString(sys_empid, String(PARENT.ClassName()), "scid",'0')) SELECT count(*) INTO :cnt FROM u_scdef ; IF cnt > 1 THEN THIS.AddItem ('[全部]') END IF FOR ll_i = 1 TO UpperBound(sys_user_scid) ls_scid = sys_user_scid[ll_i] SELECT scname INTO :ls_scname FROM u_scdef Where scid = :ls_scid; IF sqlca.SQLCode <> 0 OR IsNull(ls_scname) THEN ls_scname = '' li_spacenum = 50 - Len(Trim(ls_scname)) - 2 - Len(String(ls_scid)) ls_space = Fill(' ',li_spacenum) THIS.AddItem (ls_scname+ls_space+'['+String(ls_scid)+']') IF NOT lb_getdft THEN ls_scid_get = ls_scid ls_scname_get = ls_scname END IF IF ls_scid_save = ls_scid THEN lb_getdft = TRUE ls_scid_get = ls_scid ls_scname_get = ls_scname END IF NEXT //THIS.uo_scid = ls_scid //uo_scid_arr[1] = ls_scid //THIS.Text = ls_scname+ls_space+'['+String(ls_scid)+']' IF ls_scid_save = -1 THEN THIS.uo_scid = ls_scid_save THIS.uo_scid_arr = sys_user_scid THIS.Text = '[全部]' ELSE li_spacenum = 50 - Len(Trim(ls_scname_get)) - 2 - Len(String(ls_scid_get)) ls_space = Fill(' ',li_spacenum) THIS.uo_scid = ls_scid_get THIS.uo_scid_arr[1] = ls_scid_get THIS.Text = ls_scname_get+ls_space+'['+String(ls_scid_get)+']' END IF end event event selectionchanged;long ll_scid_arr[] IF THIS.Text = '[全部]' THEN uo_scid = -1 ll_scid_arr = sys_user_scid uo_scid_arr = ll_scid_arr ELSE uo_scid = Long(Mid ( THIS.Text,Pos(THIS.Text,'[') + 1,Len(THIS.Text) - Pos(THIS.Text,'[') - 1 )) ll_scid_arr[1] = uo_scid uo_scid_arr = ll_scid_arr END IF end event on uo_ddlb_scid.create end on on uo_ddlb_scid.destroy end on event destructor;f_SetProfileString(sys_empid, String(parent.ClassName()), "scid", string(this.uo_scid)) //f_SetProfileString(SYS_INIFILENAME, String(parent.ClassName()), "scname", trim(mid(this.text,1,pos(this.text,' ') - 1))) end event