$PBExportHeader$uo_ddlb_storageid.sru forward global type uo_ddlb_storageid from dropdownlistbox end type end forward global type uo_ddlb_storageid from dropdownlistbox integer width = 686 integer height = 580 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_storageid uo_ddlb_storageid type variables long uo_storageid long uo_storageid_arr[] string LS_storage_ter end variables forward prototypes public function integer uf_get_storageid_arr (long arg_mode) end prototypes public function integer uf_get_storageid_arr (long arg_mode);long rslt = 1 long ls_i LS_storage_ter ='' if arg_mode = -1 then for ls_i = 1 to UpperBound(uo_storageid_arr) - 1 LS_storage_ter = LS_storage_ter+"u_mtrldef.storagestr like '%,"+string(uo_storageid_arr[ls_i])+",%' or " next LS_storage_ter = LS_storage_ter+"u_mtrldef.storagestr like '%,"+string(uo_storageid_arr[UpperBound(uo_storageid_arr)])+",%'" else LS_storage_ter = "u_mtrldef.storagestr like '%,"+string(uo_storageid_arr[1])+",%'" end if return rslt end function event constructor;Long ls_storageid, ls_storageid_save, ls_storageid_get String ls_storagename, ls_storagename_get Long cnt = 0 Long ll_i String ls_space Int li_spacenum Boolean lb_getdft = FALSE datastore ds_ddlb ds_ddlb = create datastore ds_ddlb.dataobject = 'ds_uo_ddlb_storageid' ds_ddlb.settransobject(sqlca) ds_ddlb.retrieve(sys_user_storageid) ls_storageid_save = Long(f_ProfileString (sys_empid,String(PARENT.ClassName()), "storageid",'0')) SELECT count(*) INTO :cnt FROM u_storage Where inuse = 1 ; IF cnt > 1 THEN THIS.AddItem ('[全部]') END IF FOR ll_i = 1 TO ds_ddlb.rowcount() ls_storageid = ds_ddlb.object.storageid[ll_i] ls_storagename = ds_ddlb.object.storagename[ll_i] li_spacenum = 50 - Len(Trim(ls_storagename)) - 2 - Len(String(ls_storageid)) ls_space = Fill(' ',li_spacenum) THIS.AddItem (ls_storagename+ls_space+'['+String(ls_storageid)+']') IF NOT lb_getdft THEN ls_storageid_get = ls_storageid ls_storagename_get = ls_storagename END IF IF ls_storageid_save = ls_storageid THEN lb_getdft = TRUE ls_storageid_get = ls_storageid ls_storagename_get = ls_storagename END IF NEXT //FOR ll_i = 1 TO UpperBound(sys_user_storageid) // ls_storageid = sys_user_storageid[ll_i] // SELECT storagename // INTO :ls_storagename // FROM u_storage // Where storageid = :ls_storageid; // IF sqlca.SQLCode <> 0 OR IsNull(ls_storagename) THEN ls_storagename = '' // // li_spacenum = 50 - Len(Trim(ls_storagename)) - 2 - Len(String(ls_storageid)) // ls_space = Fill(' ',li_spacenum) // // THIS.AddItem (ls_storagename+ls_space+'['+String(ls_storageid)+']') // // IF NOT lb_getdft THEN // ls_storageid_get = ls_storageid // ls_storagename_get = ls_storagename // END IF // // IF ls_storageid_save = ls_storageid THEN // lb_getdft = TRUE // ls_storageid_get = ls_storageid // ls_storagename_get = ls_storagename // END IF // //NEXT //THIS.uo_storageid = ls_storageid //uo_storageid_arr[1] = ls_storageid //THIS.Text = ls_storagename+ls_space+'['+String(ls_storageid)+']' // IF ls_storageid_save = -1 THEN THIS.Text = '[全部]' THIS.uo_storageid = -1 THIS.uo_storageid_arr = sys_user_storageid ELSE li_spacenum = 50 - Len(Trim(ls_storagename_get)) - 2 - Len(String(ls_storageid_get)) ls_space = Fill(' ',li_spacenum) THIS.Text = ls_storagename_get+ls_space+'['+String(ls_storageid_get)+']' THIS.uo_storageid = ls_storageid_get THIS.uo_storageid_arr[1] = ls_storageid_get END IF uf_get_storageid_arr(ls_storageid_get) end event event selectionchanged;Long ll_storageid_arr[] IF THIS.Text = '[全部]' THEN uo_storageid = -1 ll_storageid_arr = sys_user_storageid uo_storageid_arr = ll_storageid_arr ELSE uo_storageid = Long(Mid ( THIS.Text,Pos(THIS.Text,'[') + 1,Len(THIS.Text) - Pos(THIS.Text,'[') - 1 )) ll_storageid_arr[1] = uo_storageid uo_storageid_arr = ll_storageid_arr END IF uf_get_storageid_arr(uo_storageid) end event on uo_ddlb_storageid.create end on on uo_ddlb_storageid.destroy end on event destructor;f_SetProfileString(sys_empid, String(parent.ClassName()), "storageid", string(uo_storageid)) //SetProfileString(SYS_INIFILENAME, publ_userid+'_'+String(parent.ClassName()), "storagename", trim(mid(this.text,1,pos(this.text,' ') - 1))) end event