$PBExportHeader$w_usergroup_edit.srw forward global type w_usergroup_edit from w_publ_base end type type dw_1 from u_dw_rbtnfilter within w_usergroup_edit end type type cb_retrievemx from uo_imflatbutton within w_usergroup_edit end type type cb_edi from uo_imflatbutton within w_usergroup_edit end type type cb_check from uo_imflatbutton within w_usergroup_edit end type type cb_save from uo_imflatbutton within w_usergroup_edit end type type dw_3 from u_dw_rbtnfilter within w_usergroup_edit end type type cb_add_group from uo_imflatbutton within w_usergroup_edit end type type cb_del_group from uo_imflatbutton within w_usergroup_edit end type type cb_rename_group from uo_imflatbutton within w_usergroup_edit end type type cb_moveone from uo_imflatbutton within w_usergroup_edit end type type cb_removeone from uo_imflatbutton within w_usergroup_edit end type type cb_moveall from uo_imflatbutton within w_usergroup_edit end type type cb_removeall from uo_imflatbutton within w_usergroup_edit end type type dw_2 from u_dw_rbtnfilter within w_usergroup_edit end type type cb_moveone2 from uo_imflatbutton within w_usergroup_edit end type type cb_moveall2 from uo_imflatbutton within w_usergroup_edit end type type ln_bar from line within w_usergroup_edit end type type ln_bar2 from line within w_usergroup_edit end type type r_bar from rectangle within w_usergroup_edit end type end forward global type w_usergroup_edit from w_publ_base integer x = 46 integer y = 36 integer width = 2354 integer height = 2204 string title = "组维护" event retrieve_dw1 ( ) event retrieve_dw2 ( ) event retrieve_dw3 ( ) dw_1 dw_1 cb_retrievemx cb_retrievemx cb_edi cb_edi cb_check cb_check cb_save cb_save dw_3 dw_3 cb_add_group cb_add_group cb_del_group cb_del_group cb_rename_group cb_rename_group cb_moveone cb_moveone cb_removeone cb_removeone cb_moveall cb_moveall cb_removeall cb_removeall dw_2 dw_2 cb_moveone2 cb_moveone2 cb_moveall2 cb_moveall2 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar end type global w_usergroup_edit w_usergroup_edit type variables long ins_usergroupid string ins_usergroupname='' uo_usergroup uo_group end variables forward prototypes public subroutine wf_facechange () public function integer wf_moveone (long sor_row) public function integer wf_removeone (long sor_row) public function integer wf_moveone2 (long sor_row) end prototypes event retrieve_dw1;dw_1.retrieve(sys_scid) end event event retrieve_dw2;dw_2.retrieve(sys_scid) end event event retrieve_dw3;long li_row,li_groupid li_row=dw_1.getrow() if li_row<=0 then dw_3.reset() else li_groupid=dw_1.object.usergroupid[li_row] dw_3.retrieve(sys_scid,li_groupid) end if end event public subroutine wf_facechange ();//wf_facechange if dw_edit_mode then cb_check.enabled=true cb_save.enabled=true cb_add_group.enabled=false cb_del_group.enabled=false cb_rename_group.enabled=false cb_moveone.enabled=true cb_moveall.enabled=true cb_removeone.enabled=true cb_removeall.enabled=true cb_moveone2.enabled=true cb_moveall2.enabled=true cb_retrievemx.enabled=false cb_edi.text='放弃' else cb_check.enabled=false cb_save.enabled=false cb_add_group.enabled=true cb_del_group.enabled=true cb_rename_group.enabled=true cb_moveone.enabled=false cb_moveall.enabled=false cb_removeone.enabled=false cb_removeall.enabled=false cb_moveone2.enabled=false cb_moveall2.enabled=false cb_retrievemx.enabled=true cb_edi.text='修改' end if end subroutine public function integer wf_moveone (long sor_row);//wf_moveone long new_row if sor_row<=0 then return 0 end if string find_str long find_row find_str="u_usergroup_empid="+string(dw_1.object.usergroupid[sor_row])+" and " find_str=find_str + "u_usergroup_usergroupid="+string(ins_usergroupid)+" and " find_str=find_str + "u_usergroup_grouptype=1" find_row=dw_3.find(find_str,1,dw_3.rowcount()) if find_row>0 then return 1 new_row=dw_3.insertrow(dw_3.rowcount()) dw_3.object.u_usergroup_scid[new_row]=dw_1.object.scid[sor_row] dw_3.object.u_usergroup_empid[new_row]=dw_1.object.usergroupid[sor_row] dw_3.object.u_usergroup_usergroupid[new_row]=ins_usergroupid dw_3.object.u_usergroup_grouptype[new_row]=1 dw_3.object.u_user_uname[new_row] =dw_1.object.usergroup[sor_row] return 1 // //// u_usergroup_empid //// u_usergroup_usergroupid //// u_usergroup_grouptype //// u_user_uname end function public function integer wf_removeone (long sor_row);//wf_removeone if sor_row<=0 then return 0 end if dw_3.deleterow(sor_row) dw_3.triggerevent(rowfocuschanged!) return 1 end function public function integer wf_moveone2 (long sor_row);//wf_moveone long new_row if sor_row<=0 then return 0 end if string find_str long find_row find_str="u_usergroup_empid="+string(dw_2.object.empid[sor_row])+" and " find_str=find_str + "u_usergroup_usergroupid="+string(ins_usergroupid)+" and " find_str=find_str + "u_usergroup_grouptype=0" find_row=dw_3.find(find_str,1,dw_3.rowcount()) if find_row>0 then return 1 new_row=dw_3.insertrow(dw_3.rowcount()) dw_3.object.u_usergroup_scid[new_row]=dw_2.object.scid[sor_row] dw_3.object.u_usergroup_empid[new_row]=dw_2.object.empid[sor_row] dw_3.object.u_usergroup_usergroupid[new_row]=ins_usergroupid dw_3.object.u_usergroup_grouptype[new_row]=0 dw_3.object.u_user_uname[new_row] =dw_2.object.username[sor_row] return 1 // //// u_usergroup_empid //// u_usergroup_usergroupid //// u_usergroup_grouptype //// u_user_uname end function on w_usergroup_edit.create int iCurrent call super::create this.dw_1=create dw_1 this.cb_retrievemx=create cb_retrievemx this.cb_edi=create cb_edi this.cb_check=create cb_check this.cb_save=create cb_save this.dw_3=create dw_3 this.cb_add_group=create cb_add_group this.cb_del_group=create cb_del_group this.cb_rename_group=create cb_rename_group this.cb_moveone=create cb_moveone this.cb_removeone=create cb_removeone this.cb_moveall=create cb_moveall this.cb_removeall=create cb_removeall this.dw_2=create dw_2 this.cb_moveone2=create cb_moveone2 this.cb_moveall2=create cb_moveall2 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_1 this.Control[iCurrent+2]=this.cb_retrievemx this.Control[iCurrent+3]=this.cb_edi this.Control[iCurrent+4]=this.cb_check this.Control[iCurrent+5]=this.cb_save this.Control[iCurrent+6]=this.dw_3 this.Control[iCurrent+7]=this.cb_add_group this.Control[iCurrent+8]=this.cb_del_group this.Control[iCurrent+9]=this.cb_rename_group this.Control[iCurrent+10]=this.cb_moveone this.Control[iCurrent+11]=this.cb_removeone this.Control[iCurrent+12]=this.cb_moveall this.Control[iCurrent+13]=this.cb_removeall this.Control[iCurrent+14]=this.dw_2 this.Control[iCurrent+15]=this.cb_moveone2 this.Control[iCurrent+16]=this.cb_moveall2 this.Control[iCurrent+17]=this.ln_bar this.Control[iCurrent+18]=this.ln_bar2 this.Control[iCurrent+19]=this.r_bar end on on w_usergroup_edit.destroy call super::destroy destroy(this.dw_1) destroy(this.cb_retrievemx) destroy(this.cb_edi) destroy(this.cb_check) destroy(this.cb_save) destroy(this.dw_3) destroy(this.cb_add_group) destroy(this.cb_del_group) destroy(this.cb_rename_group) destroy(this.cb_moveone) destroy(this.cb_removeone) destroy(this.cb_moveall) destroy(this.cb_removeall) destroy(this.dw_2) destroy(this.cb_moveone2) destroy(this.cb_moveall2) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) end on event open;call super::open;dw_1.settransobject(sqlca) dw_2.settransobject(sqlca) dw_3.settransobject(sqlca) this.triggerevent("retrieve_dw1") this.triggerevent("retrieve_dw2") this.triggerevent("retrieve_dw3") uo_group=create uo_usergroup wf_facechange() end event event close;destroy uo_group end event event resize;call super::resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width r_bar.Width = THIS.Width end event type cb_func from w_publ_base`cb_func within w_usergroup_edit boolean visible = false integer x = 1842 integer width = 165 boolean enabled = false end type type cb_exit from w_publ_base`cb_exit within w_usergroup_edit integer x = 1586 integer width = 151 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type dw_1 from u_dw_rbtnfilter within w_usergroup_edit integer y = 180 integer width = 951 integer height = 756 integer taborder = 40 boolean bringtotop = true string dataobject = "dw_usergroupdef" boolean vscrollbar = true end type event rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) IF not dw_edit_mode and currentrow >0 THEN ins_usergroupid=dw_1.object.usergroupid[dw_1.getrow()] ins_usergroupname=dw_1.object.usergroup[dw_1.getrow()] // dw_3.title=dw_1.object.usergroup[dw_1.getrow()] + '组成员' //st_1.text=' '+dw_1.object.usergroup[dw_1.getrow()] + '组成员' parent.triggerevent('retrieve_dw3') end if end event event clicked;//IF not dw_edit_mode and row >0 THEN // if dw_1.rowcount()=0 then // dw_1.retrieve(this.object.pricelistid[row]) // end if //end if end event event doubleclicked;if dw_edit_mode then cb_moveone.triggerevent(clicked!) end event type cb_retrievemx from uo_imflatbutton within w_usergroup_edit integer x = 937 integer width = 151 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;this.triggerevent("retrieve_dw3") end event type cb_edi from uo_imflatbutton within w_usergroup_edit integer x = 1093 integer width = 151 integer height = 164 integer taborder = 120 boolean bringtotop = true string text = "修改" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;long li_row li_row=dw_1.getrow() if li_row<=0 then messagebox(publ_operator,'请选择要修改的组') return end if dw_edit_mode= not dw_edit_mode wf_facechange() end event type cb_check from uo_imflatbutton within w_usergroup_edit integer x = 1394 integer width = 192 integer height = 164 integer taborder = 150 boolean bringtotop = true boolean enabled = false string text = "查闭环" string normalpicname = "update.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;//检查有否环// long ls_cr_rsl,LS_i FOR LS_i =1 TO dw_3.ROWCOUNT() ls_cr_rsl=uo_group.check_closeloop(ins_usergroupid,dw_3.object.u_usergroup_empid[ls_i],dw_3.object.u_usergroup_grouptype[ls_i]) if ls_cr_rsl=1 then messagebox(ins_usergroupname,'发现环!在 '+STRING(dw_3.object.u_user_uname[ls_i])+' ,请核对!',StopSign!) return elseif ls_cr_rsl<0 then messagebox('系统提示','因为网络或其他原因导致查环操作失败!['+ins_usergroupname+']') return end if NEXT messagebox('系统提示','没有发现闭环!') //u_usergroup_empid //u_usergroup_grouptype //u_user_uname end event type cb_save from uo_imflatbutton within w_usergroup_edit integer x = 1243 integer width = 151 integer height = 164 integer taborder = 180 boolean bringtotop = true boolean enabled = false string text = "保存" string normalpicname = "save.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;dw_3.accepttext() if dw_3.rowcount()<=0 then messagebox(publ_operator,'组没有成员,不能保存') return end if //检查有否环// long ls_cr_rsl,LS_i FOR LS_i =1 TO dw_3.ROWCOUNT() ls_cr_rsl=uo_group.check_closeloop(ins_usergroupid,dw_3.object.u_usergroup_empid[ls_i],dw_3.object.u_usergroup_grouptype[ls_i]) if ls_cr_rsl=1 then messagebox(ins_usergroupname,'发现环!在 '+STRING(dw_3.object.u_user_uname[ls_i])+' ,请核对!',StopSign!) return elseif ls_cr_rsl<0 then messagebox('系统提示','因为网络或其他原因导致查环操作失败!['+ins_usergroupname+']') return end if NEXT if dw_3.UPDAte()=1 then commit; else rollback; messagebox('系统提示','保存操作失败"!') return end if dw_edit_mode=false wf_facechange() end event type dw_3 from u_dw_rbtnfilter within w_usergroup_edit integer x = 1216 integer y = 180 integer width = 1042 integer height = 1884 integer taborder = 70 boolean bringtotop = true string dataobject = "dw_usergroup_edit" boolean vscrollbar = true end type event clicked;if row>0 then this.setrow(row) this.selectrow(0,false) this.selectrow(row,true) end if end event event rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) end event type cb_add_group from uo_imflatbutton within w_usergroup_edit integer width = 192 integer height = 164 integer taborder = 140 boolean bringtotop = true string text = "增加组" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;if dw_edit_mode then return string new_group_name='' long new_groupid=0 long ls_newid string arg_msg='' s_inputbox S_SREU S_SREU.TITLE='请输入新组名称(确定后将新建一个组):' S_SREU.OLD_TEXT='[新组表名称]' openwithparm(w_inputbox,S_SREU) new_group_name=Message.StringParm if trim(new_group_name)='' or isnull(new_group_name) then return // new_group_name if uo_group.savegroup(sys_scid,0,new_group_name,arg_msg,true)=0 then messagebox('失败',arg_msg) return end if messagebox('成功','新建组操作成功,请对其进行初始化成员!') dw_1.retrieve(sys_scid) end event type cb_del_group from uo_imflatbutton within w_usergroup_edit integer x = 384 integer width = 192 integer height = 164 integer taborder = 130 boolean bringtotop = true string text = "删除组" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;long ls_groupid,row,cnt string al_name,arg_msg row=dw_1.getrow() if not row>0 then messagebox('错误','请选择当前组!') return end if al_name=dw_1.object.usergroup[row] IF MessageBox ("全部","是否确定要删除组'"+al_name+"'吗?",Question!,YesNo! ) = 2 THEN RETURN ls_groupid=dw_1.object.UsergroupID[row] if uo_group.delgroup(sys_scid,ls_groupid,arg_msg,true)=0 then messagebox('失败',arg_msg) return end if MESSAGEBOX('成功','组删除操作成功!') dw_1.retrieve(sys_scid) end event type cb_rename_group from uo_imflatbutton within w_usergroup_edit integer x = 192 integer width = 192 integer height = 164 integer taborder = 160 boolean bringtotop = true string text = "改组名" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;if dw_edit_mode then return long ls_groupid,row,currentrow string al_name,new_group_name,arg_msg row=dw_1.getrow() if not row>0 then messagebox('错误','请选择当前组!') return end if al_name=dw_1.object.usergroup[row] ls_groupid=dw_1.object.UsergroupID[row] s_inputbox S_SREU S_SREU.TITLE='请输入组新名称:' S_SREU.OLD_TEXT=al_name openwithparm(w_inputbox,S_SREU) new_group_name=Message.StringParm if trim(new_group_name)='' or isnull(new_group_name) or trim(new_group_name)=al_name then return if uo_group.savegroup(sys_scid,ls_groupid,new_group_name,arg_msg,true)=0 then messagebox('失败',arg_msg) return end if messagebox('成功','组表名称修改成功!') dw_1.object.usergroup[row]=new_group_name end event type cb_moveone from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 456 integer width = 128 integer height = 80 integer taborder = 80 boolean bringtotop = true integer weight = 700 string text = ">" end type event clicked;long sor_row sor_row=dw_1.getrow() if sor_row<=0 then messagebox('系统提示','请选择要加入组的目标组名!') return 0 end if wf_moveone(sor_row) end event type cb_removeone from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 964 integer width = 128 integer height = 80 integer taborder = 90 boolean bringtotop = true integer weight = 700 string text = "<" end type event clicked;if not keydown(KeyControl!) then IF MessageBox ("IF","是否确定要删除当前组成员吗",Question!,YesNo! ) = 2 THEN RETURN end if long find_row=0,sor_row sor_row=dw_3.getrow() wf_removeone(sor_row) end event type cb_moveall from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 564 integer width = 128 integer height = 80 integer taborder = 100 boolean bringtotop = true integer weight = 700 string text = ">>" end type event clicked;long i for i=1 to dw_1.rowcount() wf_moveone(i) next end event type cb_removeall from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 856 integer width = 128 integer height = 80 integer taborder = 110 boolean bringtotop = true integer weight = 700 string text = "<<" end type event clicked;DO WHILE dw_3.rowcount()>0 wf_removeone(dw_3.rowcount()) LOOP end event type dw_2 from u_dw_rbtnfilter within w_usergroup_edit integer y = 936 integer width = 951 integer height = 1132 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_userindex" boolean hscrollbar = true boolean vscrollbar = true end type event rowfocuschanged;if currentrow<=0 then return this.selectrow(0,false) this.selectrow(currentrow,true) end event event doubleclicked;if dw_edit_mode then cb_moveone2.triggerevent(clicked!) end event type cb_moveone2 from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 1620 integer width = 128 integer height = 84 integer taborder = 50 boolean bringtotop = true integer weight = 700 string text = ">" end type event clicked;long sor_row sor_row=dw_2.getrow() if sor_row<=0 then messagebox('系统提示','请选择要加入组的目标用户名!') return 0 end if wf_moveone2(sor_row) end event type cb_moveall2 from uo_imflatbutton within w_usergroup_edit integer x = 1015 integer y = 1732 integer width = 128 integer height = 84 integer taborder = 60 boolean bringtotop = true integer weight = 700 string text = ">>" end type event clicked;long i for i=1 to dw_2.rowcount() wf_moveone2(i) next end event type ln_bar from line within w_usergroup_edit long linecolor = 268435456 integer linethickness = 4 integer beginy = 172 integer endx = 2007 integer endy = 172 end type type ln_bar2 from line within w_usergroup_edit long linecolor = 16777215 integer linethickness = 4 integer beginy = 176 integer endx = 2039 integer endy = 176 end type type r_bar from rectangle within w_usergroup_edit long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 2139 integer width = 146 integer height = 68 end type event constructor;this.fillcolor = 14215660 this.linecolor = 14215660 this.x = -1 this.y = -1 this.height = ln_bar.beginy - 5 end event