$PBExportHeader$w_client_list.srw forward global type w_client_list from w_pageretr_ch end type type cbx_mlselect from checkbox within w_client_list end type type cbx_allselect from checkbox within w_client_list end type type cb_1 from uo_imflatbutton within w_client_list end type type cbx_1 from checkbox within w_client_list end type type cb_2 from uo_imflatbutton within w_client_list end type end forward global type w_client_list from w_pageretr_ch integer width = 3301 integer height = 2108 string title = "在线用户列表" boolean minbox = true windowtype windowtype = popup! cbx_mlselect cbx_mlselect cbx_allselect cbx_allselect cb_1 cb_1 cbx_1 cbx_1 cb_2 cb_2 end type global w_client_list w_client_list type variables //s_mtrldef_buytask_array INS_RT_STRU boolean if_changeselect=true int if_mlselect=0 long cur_sptid end variables forward prototypes public subroutine wf_retrieve (string arg_msg) end prototypes public subroutine wf_retrieve (string arg_msg);//IF arg_msg <> "" THEN dw_pageretr.Reset() dw_pageretr.ImportString(arg_msg) //END IF //long i //string username,userid //for i = 1 to dw_pageretr.rowcount() // userid = dw_pageretr.object.userid[i] // select username // into :username // from u_user // where userid = :userid; // if sqlca.sqlcode <> 0 then username = '' // dw_pageretr.object.username[i] = username //next end subroutine on w_client_list.create int iCurrent call super::create this.cbx_mlselect=create cbx_mlselect this.cbx_allselect=create cbx_allselect this.cb_1=create cb_1 this.cbx_1=create cbx_1 this.cb_2=create cb_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cbx_mlselect this.Control[iCurrent+2]=this.cbx_allselect this.Control[iCurrent+3]=this.cb_1 this.Control[iCurrent+4]=this.cbx_1 this.Control[iCurrent+5]=this.cb_2 end on on w_client_list.destroy call super::destroy destroy(this.cbx_mlselect) destroy(this.cbx_allselect) destroy(this.cb_1) destroy(this.cbx_1) destroy(this.cb_2) end on 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_mtrldef_mtrlcode like "%'+trim(sle_usual_query.text)+'%" )' else obj_expr=obj_expr+'( u_mtrldef_mtrlcode 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 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="(u_mtrldef.mtrlcode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_mtrldef.mtrlcode 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 open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() OLD_TITLE = THIS.Title dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) IF sys_wsc.getstate() = 7 THEN cb_refresh.TriggerEvent(Clicked!) END IF end event event ue_before_open;call super::ue_before_open;if_ue_sort=true end event event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled //cb_firstpage_enabled=cb_firstpage.enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled //cb_priorpage_enabled=cb_priorpage.enabled cb_func_enabled=cb_func.enabled //cb_firstpage.enabled=false cb_nextpage.enabled=false cb_retrieveall.enabled=false //cb_priorpage.enabled=false cb_func.enabled=false SetPointer(HourGlass!) dw_pageretr.retrieve(cur_sptid) if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1) SetPointer(Arrow!) //cb_firstpage.enabled=cb_firstpage_enabled cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled //cb_priorpage.enabled=cb_priorpage_enabled cb_func.enabled=cb_func_enabled IF cbx_mlselect.Checked AND dw_pageretr.RowCount() > 1 THEN dw_pageretr.SelectRow(1,FALSE) END IF end event type cb_func from w_pageretr_ch`cb_func within w_client_list integer x = 576 boolean enabled = false end type type cb_exit from w_pageretr_ch`cb_exit within w_client_list integer x = 727 end type type sle_usual_query from w_pageretr_ch`sle_usual_query within w_client_list boolean visible = false integer x = 347 boolean enabled = false end type type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_client_list boolean visible = false integer x = 1097 end type type em_pagerowno from w_pageretr_ch`em_pagerowno within w_client_list boolean visible = false integer x = 768 end type type dw_pageretr from w_pageretr_ch`dw_pageretr within w_client_list integer y = 176 integer width = 3241 integer height = 1820 string dataobject = "dw_clientlist" end type event dw_pageretr::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 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) end if end event event dw_pageretr::dwnkey;call super::dwnkey;if keydown(keyenter!) then return 1 end event type st_1 from w_pageretr_ch`st_1 within w_client_list boolean visible = false integer width = 315 boolean enabled = false string text = "物料编码含:" end type type cb_nextpage from w_pageretr_ch`cb_nextpage within w_client_list boolean visible = false integer x = 1243 end type type cb_choice from w_pageretr_ch`cb_choice within w_client_list boolean visible = false end type event cb_choice::clicked;call super::clicked;//Long ROW,ls_i = 0,chC = 0 //ROW = dw_pageretr.GetRow() //IF ROW <= 0 THEN // MessageBox('提示','请先选择目标行!', Information!, OK! ) // RETURN //END IF //FOR ls_i = 1 TO dw_pageretr.RowCount() // IF dw_pageretr.IsSelected(ls_i) THEN // chC++ // INS_RT_STRU.mtrlid[chC] = dw_pageretr.Object.u_buytaskmx_mtrlid[ls_i] // INS_RT_STRU.mtrlname[chC] = dw_pageretr.Object.u_mtrldef_mtrlname[ls_i] // INS_RT_STRU.mtrlcode[chC] = dw_pageretr.Object.u_mtrldef_mtrlcode[ls_i] // INS_RT_STRU.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i] // INS_RT_STRU.unit[chC] = dw_pageretr.Object.u_mtrldef_unit[ls_i] // INS_RT_STRU.mxunit[chC] = dw_pageretr.Object.u_buytaskmx_unit[ls_i] // INS_RT_STRU.planprice[chC] = dw_pageretr.Object.u_mtrldef_planprice[ls_i] // INS_RT_STRU.qty[chC] = dw_pageretr.Object.u_buytaskmx_uqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedqty[ls_i] // INS_RT_STRU.fprice[chC] = dw_pageretr.Object.u_buytaskmx_fprice[ls_i] // INS_RT_STRU.rebate[chC] = dw_pageretr.Object.u_buytaskmx_rebate[ls_i] // INS_RT_STRU.uqty[chC] = dw_pageretr.Object.u_buytaskmx_uqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedqty[ls_i] // INS_RT_STRU.addqty[chC] = dw_pageretr.Object.u_buytaskmx_addqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedaddqty[ls_i] // INS_RT_STRU.uprice[chC] = dw_pageretr.Object.u_buytaskmx_uprice[ls_i] // INS_RT_STRU.rate[chC] = dw_pageretr.Object.u_buytaskmx_rate[ls_i] // INS_RT_STRU.buytaskid[chC] = dw_pageretr.Object.u_buytask_taskid [ls_i] // INS_RT_STRU.buytaskcode[chC] = dw_pageretr.Object.u_buytask_taskcode[ls_i] // INS_RT_STRU.status[chC] = dw_pageretr.Object.u_buytaskmx_status[ls_i] // INS_RT_STRU.woodcode[chC] = dw_pageretr.Object.u_buytaskmx_woodcode[ls_i] // INS_RT_STRU.pcode[chC] = dw_pageretr.Object.u_buytaskmx_pcode[ls_i] // INS_RT_STRU.orderid[chC] = dw_pageretr.Object.u_buytaskmx_orderid[ls_i] // INS_RT_STRU.banktypeid[chC] = dw_pageretr.Object.u_buytask_banktypeid[ls_i] // INS_RT_STRU.dscrp[chC] = dw_pageretr.Object.u_buytaskmx_dscrp[ls_i] // INS_RT_STRU.mtrlsectype[chC] = dw_pageretr.Object.u_mtrldef_mtrlsectype[ls_i] // INS_RT_STRU.zxmtrlmode[chC] = dw_pageretr.Object.u_mtrldef_zxmtrlmode[ls_i] // INS_RT_STRU.relcode[chC] = dw_pageretr.Object.u_buytask_relcode[ls_i] // END IF //NEXT //IF chC = 0 THEN // MessageBox('提示','请至少选择一个目标行!', Information!, OK! ) // RETURN //END IF // //Close(PARENT) // // // // end event type cb_refresh from w_pageretr_ch`cb_refresh within w_client_list end type event cb_refresh::clicked;s_msgframe s_msg s_msg.framehead = 20 sys_wsc.setsendmsg( s_msg, 0) sys_wsc.TriggerEvent('ue_send') //发送命令 IF IsValid(w_ws) THEN w_ws.ins_HeartBeatSec = 0 END IF //rslt = //20秒内超时 IF f_waitforrslt_ws(sys_retritime) = 0 THEN MessageBox('系统提示','服务器超时!') return END IF if not isnull(sys_buf_s_msgFrame.frame_str[1]) then wf_retrieve(sys_buf_s_msgFrame.frame_str[1]) end if end event type ln_bar from w_pageretr_ch`ln_bar within w_client_list end type type ln_bar2 from w_pageretr_ch`ln_bar2 within w_client_list end type type r_bar from w_pageretr_ch`r_bar within w_client_list end type type ln_1 from w_pageretr_ch`ln_1 within w_client_list integer beginy = 168 integer endy = 168 end type type ln_2 from w_pageretr_ch`ln_2 within w_client_list integer beginy = 172 integer endy = 172 end type type cbx_mlselect from checkbox within w_client_list boolean visible = false integer x = 663 integer y = 92 integer width = 256 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean enabled = false string text = "多选" end type event clicked;if this.checked then if_mlselect=1 else if_mlselect=0 end if f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect)) end event event constructor;if_mlselect=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", '0')) if if_mlselect =0 then this.checked=false else this.checked=true end if end event type cbx_allselect from checkbox within w_client_list boolean visible = false integer x = 1010 integer y = 92 integer width = 256 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean enabled = false string text = "全选" end type event clicked;Int li IF THIS.Checked AND cbx_mlselect.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 event constructor;Int li IF THIS.Checked AND cbx_mlselect.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_1 from uo_imflatbutton within w_client_list integer x = 151 integer width = 151 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "终止" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_spid String ls_spid_str Long row Long ll_selcnt IF dw_pageretr.RowCount() <= 0 THEN RETURN ll_selcnt = dw_pageretr.Object.selcnt[1] IF ll_selcnt = 0 THEN row = dw_pageretr.GetRow() IF NOT row > 0 THEN MessageBox("系统提示","请选择要操作的用户!") RETURN END IF ls_spid_str = String(dw_pageretr.Object.clientdbspid[row]) ELSE FOR row = 1 TO dw_pageretr.RowCount() IF dw_pageretr.Object.sel[row] = 1 THEN ls_spid_str += String(dw_pageretr.Object.clientdbspid[row])+"," END IF NEXT END IF s_msgframe s_msg s_msg.framehead = 22 s_msg.frame_str[1] = ls_spid_str sys_wsc.setsendmsg( s_msg, 1) sys_wsc.TriggerEvent('ue_send') //发送命令 //rslt = //20秒内超时 IF f_waitforrslt_ws(sys_retritime) = 0 THEN MessageBox('系统提示','服务器超时!') RETURN END IF cb_refresh.TriggerEvent(Clicked!) end event type cbx_1 from checkbox within w_client_list integer x = 1367 integer y = 76 integer width = 402 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "全选" end type event constructor;this.backcolor = 14215660 end event event clicked;Int i IF THIS.Checked THEN FOR i = 1 TO dw_pageretr.RowCount() dw_pageretr.Object.sel[i] = 1 NEXT ELSE FOR i = 1 TO dw_pageretr.RowCount() dw_pageretr.Object.sel[i] = 0 NEXT END IF end event type cb_2 from uo_imflatbutton within w_client_list integer x = 302 integer width = 274 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "发送信息" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_spid String ls_spid_str Long row Long ll_selcnt IF dw_pageretr.RowCount() <= 0 THEN RETURN ll_selcnt = dw_pageretr.Object.selcnt[1] IF ll_selcnt = 0 THEN row = dw_pageretr.GetRow() IF NOT row > 0 THEN MessageBox("系统提示","请选择要操作的用户!") RETURN END IF ls_spid_str = String(dw_pageretr.Object.clientdbspid[row]) ELSE FOR row = 1 TO dw_pageretr.RowCount() IF dw_pageretr.Object.sel[row] = 1 THEN ls_spid_str += String(dw_pageretr.Object.clientdbspid[row])+"," END IF NEXT END IF string LS_STR s_inputbox S_SREU S_SREU.Title = '请输入要发送的内容' S_SREU.OLD_TEXT = '' OpenWithParm(w_inputbox,S_SREU) LS_STR = Message.StringParm IF Trim(LS_STR) = '' OR IsNull(LS_STR) THEN RETURN s_msgframe s_msg s_msg.framehead = 100 s_msg.frame_str[1] = ls_spid_str s_msg.frame_str[2] = LS_STR sys_wsc.setsendmsg( s_msg, 2) sys_wsc.TriggerEvent('ue_send') //发送命令 //rslt = //20秒内超时 IF f_waitforrslt_ws(sys_retritime) = 0 THEN MessageBox('系统提示','服务器超时!') RETURN END IF cb_refresh.TriggerEvent(Clicked!) end event