$PBExportHeader$w_empinfo_select.srw forward global type w_empinfo_select from w_pageretr_ch end type type cbx_mlselect from checkbox within w_empinfo_select end type type cbx_allselect from checkbox within w_empinfo_select end type type cb_2 from uo_imflatbutton within w_empinfo_select end type type dw_choice from u_dw_rbtnfilter within w_empinfo_select end type type cb_ok from uo_imflatbutton within w_empinfo_select end type type cb_del from uo_imflatbutton within w_empinfo_select end type type ddlb_status from dropdownlistbox within w_empinfo_select end type type cbx_ml from checkbox within w_empinfo_select end type type tv_1 from uo_tv_deptype within w_empinfo_select end type end forward global type w_empinfo_select from w_pageretr_ch integer width = 3543 integer height = 2308 string title = "员工选择" cbx_mlselect cbx_mlselect cbx_allselect cbx_allselect cb_2 cb_2 dw_choice dw_choice cb_ok cb_ok cb_del cb_del ddlb_status ddlb_status cbx_ml cbx_ml tv_1 tv_1 end type global w_empinfo_select w_empinfo_select type variables s_empinfo_array s_select boolean if_select_all=false boolean if_changeselect=true int if_mlselect=0 String ls_handtype = '' long il_status = 1 end variables forward prototypes public subroutine wf_face_change () end prototypes public subroutine wf_face_change ();IF Not cbx_ml.Checked THEN dw_pageretr.Height = dw_choice.Y + dw_choice.Height - dw_pageretr.Y dw_choice.Visible = False cb_ok.Visible = False cb_del.Visible = False ELSE dw_pageretr.Height = 968 dw_choice.Visible = True cb_ok.Visible = True cb_del.Visible = True END IF end subroutine on w_empinfo_select.create int iCurrent call super::create this.cbx_mlselect=create cbx_mlselect this.cbx_allselect=create cbx_allselect this.cb_2=create cb_2 this.dw_choice=create dw_choice this.cb_ok=create cb_ok this.cb_del=create cb_del this.ddlb_status=create ddlb_status this.cbx_ml=create cbx_ml this.tv_1=create tv_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cbx_mlselect this.Control[iCurrent+2]=this.cbx_allselect this.Control[iCurrent+3]=this.cb_2 this.Control[iCurrent+4]=this.dw_choice this.Control[iCurrent+5]=this.cb_ok this.Control[iCurrent+6]=this.cb_del this.Control[iCurrent+7]=this.ddlb_status this.Control[iCurrent+8]=this.cbx_ml this.Control[iCurrent+9]=this.tv_1 end on on w_empinfo_select.destroy call super::destroy destroy(this.cbx_mlselect) destroy(this.cbx_allselect) destroy(this.cb_2) destroy(this.dw_choice) destroy(this.cb_ok) destroy(this.cb_del) destroy(this.ddlb_status) destroy(this.cbx_ml) destroy(this.tv_1) end on event open;This.TriggerEvent('ue_before_open') wf_movetocenter() OLD_TITLE = This.Title s_tran = Message.PowerObjectParm IF Not IsNull(s_tran) THEN retrieve_all = s_tran.if_retrieve_all mode = s_tran.work_mode arg_pkid = s_tran.arg_pkid arg_string_code = s_tran.arg_string_code if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效 ds_share = s_tran.ds_share // il_wagemth = s_tran.d_long END IF dw_pageretr.RBUTTON_FILTER_USE = True //右键查询功能开关 dw_pageretr.titleclick_sort_use = True //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) IF s_tran.d_long > 0 THEN // tv_1.f_finditem(s_tran.d_long, 0) END IF pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字 ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select") ls_newselect = ori_oldselect ds_curquery = Create DATASTORE ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) wf_editindex_lockf() sle_usual_query.Text = Trim(arg_string_code) IF Not retrieve_all THEN This.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve ELSE IF if_sharedata THEN ds_share.ShareData(dw_pageretr) ELSE wf_retrieveuc(dw_pageretr,ls_newselect,1) This.TriggerEvent('RETRIEVE_pageretr') END IF END IF IF retrieve_all THEN This.TriggerEvent("ue_usual_query_filt") END IF if_ue_sort = True s_select.empid[1] = 0 wf_face_change() end event event close;call super::close;CLOSEWITHRETURN(THIS,s_select) end event event ue_usual_query_retr;call super::ue_usual_query_retr;String ls_querystrpart = '' ls_newselect = Lower(ori_oldselect) IF Trim(sle_usual_query.Text) <> '' THEN IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN ls_querystrpart =ls_querystrpart + "( u_rs_empinfo.empcode like '%"+Trim(sle_usual_query.Text)+"%'" ls_querystrpart =ls_querystrpart + " or u_rs_empinfo.empname like '%"+Trim(sle_usual_query.Text)+"%')" ELSE ls_querystrpart =ls_querystrpart + "( u_rs_empinfo.empcode like '"+Trim(sle_usual_query.Text)+"'" ls_querystrpart =ls_querystrpart + " or u_rs_empinfo.empname like '"+Trim(sle_usual_query.Text)+"')" END IF IF Pos(ls_newselect," where ") <> 0 THEN ls_newselect = ls_newselect+" and ("+ls_querystrpart+')' ELSE ls_newselect = ls_newselect+" where ("+ls_querystrpart+')' END IF END IF wf_retrieveuc(dw_pageretr,ls_newselect,1) THIS.TriggerEvent('retrieve_pageretr') end event event ue_usual_query_filt;call super::ue_usual_query_filt;String obj_expr = '' IF Trim(sle_usual_query.Text) <> '' THEN IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN obj_expr = obj_expr+'( u_rs_empinfo_empcode like "%'+Trim(sle_usual_query.Text)+'%" )' obj_expr = obj_expr+' or ( u_rs_empinfo_empname LIKE "%'+Trim(sle_usual_query.Text)+'%" )' ELSE obj_expr = obj_expr+'( u_rs_empinfo_empcode like "'+Trim(sle_usual_query.Text)+'" )' obj_expr = obj_expr+' or ( u_rs_empinfo_empname like "'+Trim(sle_usual_query.Text)+'" )' END IF END IF dw_pageretr.SetFilter(obj_expr) dw_pageretr.SetRedraw(FALSE) dw_pageretr.Filter() IF dw_pageretr.RowCount() >= 1 THEN dw_pageretr.SelectRow(0,FALSE) dw_pageretr.SelectRow(1,TRUE) END IF dw_pageretr.SetRedraw(TRUE) end event event retrieve_pageretr;boolean cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_func_enabled=cb_func.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false cb_func.enabled=false SetPointer(HourGlass!) dw_pageretr.retrieve(ls_handtype,il_status,0) if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1) SetPointer(Arrow!) cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled cb_func.enabled=cb_func_enabled end event type cb_func from w_pageretr_ch`cb_func within w_empinfo_select end type type cb_exit from w_pageretr_ch`cb_exit within w_empinfo_select end type type sle_usual_query from w_pageretr_ch`sle_usual_query within w_empinfo_select integer x = 1001 end type type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_empinfo_select end type type em_pagerowno from w_pageretr_ch`em_pagerowno within w_empinfo_select integer y = 44 end type type dw_pageretr from w_pageretr_ch`dw_pageretr within w_empinfo_select string tag = "dw_pageretr" integer x = 919 integer width = 2592 integer height = 968 string dataobject = "dw_rs_empinfo_select" end type event dw_pageretr::rowfocuschanged;IF if_mlselect = 1 THEN IF currentrow <= 0 THEN RETURN IF KeyDown(keycontrol!) THEN IF THIS.IsSelected(currentrow) THEN THIS.SelectRow(currentrow,FALSE) if_changeselect = FALSE ELSE if_changeselect = TRUE END IF ELSE IF NOT THIS.IsSelected(currentrow) THEN THIS.SelectRow(currentrow,TRUE) if_changeselect = FALSE ELSE if_changeselect = TRUE END IF END IF ELSE IF dw_edit_mode THEN RETURN IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) dw_pageretr.SetRow(currentrow) dw_pageretr.ScrollToRow (currentrow) END IF end event event dw_pageretr::doubleclicked;IF NOT cbx_ml.Checked THEN cb_choice.TriggerEvent(Clicked!) ELSE cb_ok.TriggerEvent(Clicked!) END IF end event event dw_pageretr::clicked;call super::clicked;if row>0 then this.setrow(row) if if_mlselect=1 then if if_changeselect then this.selectrow(row,not this.IsSelected(row)) else if_changeselect=true end if else this.selectrow(0,false) this.selectrow(row,true) end if end if end event type st_1 from w_pageretr_ch`st_1 within w_empinfo_select integer x = 658 integer width = 315 string text = "工号/姓名含" end type type cb_nextpage from w_pageretr_ch`cb_nextpage within w_empinfo_select integer width = 64 string normalpicname = "" end type type cb_choice from w_pageretr_ch`cb_choice within w_empinfo_select end type event cb_choice::clicked;call super::clicked;Long LS_ROW,ch,ls_i If cbx_ml.Checked Then For ls_i = 1 To dw_choice.RowCount() ch++ s_select.empid[ch] = dw_choice.Object.u_rs_empinfo_empid[ls_i] s_select.empname[ch] = dw_choice.Object.u_rs_empinfo_empname[ls_i] s_select.empcode[ch] = dw_choice.Object.u_rs_empinfo_empcode[ls_i] s_select.cardcode[ch] = dw_choice.Object.u_rs_empinfo_cardcode[ls_i] s_select.sex[ch] = dw_choice.Object.u_rs_empinfo_sex[ls_i] s_select.deptid[ch] = dw_choice.Object.u_rs_empinfo_deptid[ls_i] s_select.duty[ch] = dw_choice.Object.u_rs_empinfo_duty[ls_i] // s_select.handtype[ch] = dw_choice.Object.u_rs_empinfo_handtype[ls_i] // s_select.departmentname[ch] = dw_choice.Object.cw_department_departmentname[ls_i] Next Else For ls_i = 1 To dw_pageretr.RowCount() If dw_pageretr.IsSelected(ls_i) Then ch++ s_select.empid[ch] = dw_pageretr.Object.u_rs_empinfo_empid[ls_i] s_select.empname[ch] = dw_pageretr.Object.u_rs_empinfo_empname[ls_i] s_select.empcode[ch] = dw_pageretr.Object.u_rs_empinfo_empcode[ls_i] s_select.cardcode[ch] = dw_pageretr.Object.u_rs_empinfo_cardcode[ls_i] s_select.sex[ch] = dw_pageretr.Object.u_rs_empinfo_sex[ls_i] s_select.deptid[ch] = dw_pageretr.Object.u_rs_empinfo_deptid[ls_i] s_select.duty[ch] = dw_pageretr.Object.u_rs_empinfo_duty[ls_i] // s_select.handtype[ch] = dw_pageretr.Object.u_rs_empinfo_handtype[ls_i] // s_select.departmentname[ch] = dw_pageretr.Object.cw_department_departmentname[ls_i] End If Next End If If ch <= 0 Then MessageBox('系统提示','请先选择目标行!',StopSign!) Return End If Close(Parent) end event type cb_refresh from w_pageretr_ch`cb_refresh within w_empinfo_select string tag = "cb_refresh" end type type cb_help from w_pageretr_ch`cb_help within w_empinfo_select end type type ln_bar from w_pageretr_ch`ln_bar within w_empinfo_select end type type ln_bar2 from w_pageretr_ch`ln_bar2 within w_empinfo_select end type type r_bar from w_pageretr_ch`r_bar within w_empinfo_select end type type ln_1 from w_pageretr_ch`ln_1 within w_empinfo_select end type type ln_2 from w_pageretr_ch`ln_2 within w_empinfo_select end type type cbx_mlselect from checkbox within w_empinfo_select integer x = 2103 integer y = 196 integer width = 256 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "多选" end type event clicked;if this.checked then if_mlselect=1 cbx_allselect.enabled=true else if_mlselect=0 cbx_allselect.enabled=false cbx_allselect.checked=false cbx_allselect.triggerevent(clicked!) end if f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect)) if this.checked then dw_pageretr.selectrow(dw_pageretr.getrow(),false) end if end event type cbx_allselect from checkbox within w_empinfo_select integer x = 2382 integer y = 196 integer width = 256 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "全选" end type event clicked;if dw_pageretr.rowcount()<=0 then return long li if this.checked then for li =1 to dw_pageretr.rowcount() dw_pageretr.selectrow(li,true) next else for li =1 to dw_pageretr.rowcount() dw_pageretr.selectrow(li,false) next end if end event type cb_2 from uo_imflatbutton within w_empinfo_select integer y = 184 integer width = 361 integer height = 92 integer taborder = 30 boolean bringtotop = true string text = "刷新部门" string normalpicname = "refresh.bmp" end type event clicked;call super::clicked;tv_1.f_maketree() end event type dw_choice from u_dw_rbtnfilter within w_empinfo_select integer x = 919 integer y = 1372 integer width = 2592 integer height = 836 integer taborder = 50 boolean bringtotop = true string dataobject = "dw_rs_empinfo_select" end type event rowfocuschanged;call super::rowfocuschanged; if currentrow <=0 then return this.selectrow(0,false) this.selectrow(currentrow,true) end event event doubleclicked;call super::doubleclicked;cb_del.TriggerEvent(Clicked!) end event type cb_ok from uo_imflatbutton within w_empinfo_select integer x = 2830 integer y = 1264 integer width = 311 integer taborder = 50 boolean bringtotop = true string text = "↓ 选明细" end type event clicked;call super::clicked;Long ROW,ls_i,chC = 0 dw_pageretr.AcceptText() dw_choice.setredraw(false) IF dw_pageretr.RowCount() = 1 THEN IF dw_choice.Find('u_rs_empinfo_empid ='+String(dw_pageretr.Object.u_rs_empinfo_empid[1]),1,dw_choice.RowCount()) = 0 THEN dw_pageretr.RowsCopy(1, 1, Primary!, dw_choice, dw_choice.RowCount() + 1, Primary!) END IF ELSE ROW = dw_pageretr.GetRow() IF ROW <= 0 THEN MessageBox('系统提示','请先选择目标行!',StopSign!) RETURN END IF FOR ls_i = 1 TO dw_pageretr.RowCount() IF dw_pageretr.IsSelected(ls_i) THEN IF dw_choice.Find('u_rs_empinfo_empid ='+String(dw_pageretr.Object.u_rs_empinfo_empid[ls_i]),1,dw_choice.RowCount()) = 0 THEN chC++ dw_pageretr.RowsCopy(ls_i, ls_i, Primary!, dw_choice, dw_choice.RowCount() + 1, Primary!) END IF END IF NEXT END IF dw_choice.setredraw(true) end event type cb_del from uo_imflatbutton within w_empinfo_select integer x = 3205 integer y = 1264 integer width = 311 integer taborder = 60 boolean bringtotop = true string text = "↑ 删明细" end type event clicked;call super::clicked;IF dw_choice.GETROW()=0 THEN MESSAGEBOX('NO','请选择删除的行对象!') RETURN END IF dw_choice.DeleteRow (0) dw_choice.TriggerEvent (rowfocuschanged!) end event type ddlb_status from dropdownlistbox within w_empinfo_select integer x = 1659 integer y = 188 integer width = 311 integer height = 452 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "在职" boolean sorted = false string item[] = {"在职","离职"} borderstyle borderstyle = stylelowered! end type event selectionchanged;IF THIS.Text = '在职' THEN il_status = 1 ELSE il_status = 0 END IF cb_refresh.TriggerEvent(Clicked!) end event type cbx_ml from checkbox within w_empinfo_select integer x = 2629 integer y = 196 integer width = 393 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "缓冲选择" end type event clicked;wf_face_change() Int use_ml IF THIS.Checked THEN use_ml = 0 ELSE use_ml = 1 END IF f_SetProfileString (sys_empid,dw_pageretr.DataObject, "use_ml", String(use_ml)) end event event constructor;Int use_ml use_ml = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "use_ml", '0')) IF use_ml = 0 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF end event type tv_1 from uo_tv_deptype within w_empinfo_select integer y = 292 integer width = 919 integer height = 1920 integer taborder = 60 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontfamily fontfamily = anyfont! string facename = "宋体" end type event selectionchanged;call super::selectionchanged; ls_handtype = THIS.uo_cur_info.handtype ls_handtype = ls_handtype + '%' cb_refresh.TriggerEvent(Clicked!) end event