$PBExportHeader$w_ljmail_msgmx_ch.srw forward global type w_ljmail_msgmx_ch from w_publ_base end type type cb_add from uo_imflatbutton within w_ljmail_msgmx_ch end type type cb_del from uo_imflatbutton within w_ljmail_msgmx_ch end type type dw_revlist from u_dw_rbtnfilter within w_ljmail_msgmx_ch end type type cb_ok from uo_imflatbutton within w_ljmail_msgmx_ch end type type cb_cancel from uo_imflatbutton within w_ljmail_msgmx_ch end type type tv_1 from treeview within w_ljmail_msgmx_ch end type type sle_1 from singlelineedit within w_ljmail_msgmx_ch end type type sle_2 from singlelineedit within w_ljmail_msgmx_ch end type type lv_1 from listview within w_ljmail_msgmx_ch end type type cb_find from uo_imflatbutton within w_ljmail_msgmx_ch end type type cb_3 from uo_imflatbutton within w_ljmail_msgmx_ch end type type ln_bar from line within w_ljmail_msgmx_ch end type type ln_bar2 from line within w_ljmail_msgmx_ch end type end forward global type w_ljmail_msgmx_ch from w_publ_base integer width = 4037 integer height = 2144 string title = "选择龙嘉邮件收件人" boolean minbox = false windowtype windowtype = response! event ue_add_mail ( ) cb_add cb_add cb_del cb_del dw_revlist dw_revlist cb_ok cb_ok cb_cancel cb_cancel tv_1 tv_1 sle_1 sle_1 sle_2 sle_2 lv_1 lv_1 cb_find cb_find cb_3 cb_3 ln_bar ln_bar ln_bar2 ln_bar2 end type global w_ljmail_msgmx_ch w_ljmail_msgmx_ch type variables long il_tv_handle long ll_lastrow = 0 end variables forward prototypes public function boolean wf_cansee_cusarea (long arg_cusareaid) public function boolean wf_cansee_spttype (long arg_spttypeid) public function boolean wf_cus_haschild (long cusid) public function boolean wf_spt_haschild (long sptid) public function boolean wf_cansee_cus (long arg_cusid) public function boolean wf_cansee_spt (long arg_sptid) end prototypes event ue_add_mail();long ll_row if trim(sle_2.text) = '' then return if dw_revlist.Find('revaddress=~'' + trim(sle_2.text) + '~'', 1, dw_revlist.RowCount()) = 0 then ll_row = dw_revlist.insertrow(0) dw_revlist.object.sendid[ll_row] = 0 dw_revlist.object.printid[ll_row] = 0 dw_revlist.object.reltype[ll_row] = 3 dw_revlist.object.relid[ll_row] = 0 dw_revlist.object.revaddress[ll_row] = trim(sle_2.text) dw_revlist.object.revname[ll_row] = trim(sle_2.text) dw_revlist.object.dscrp[ll_row] = '' else MessageBox('提示', sle_2.text + '已存在!') end if end event public function boolean wf_cansee_cusarea (long arg_cusareaid);Long i Long ll_i Long ll_cnt // 如果没有权限,直接返回false Boolean haspower = False FOR i = LowerBound(sys_areaid) To UpperBound(sys_areaid) IF arg_cusareaid = sys_areaid[i] THEN haspower = True EXIT END IF NEXT IF Not haspower THEN RETURN False // 下级客户字段有内容,直接返回true SELECT COUNT(0) INTO :ll_cnt FROM u_cust WHERE (cusareaid = :arg_cusareaid) AND (inuse = 1) AND (ljmail <> ''); IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True END IF // 下级客户可视,直接返回true Long ll_cusid, arr_cusid[] ll_cnt = 0 DECLARE cur1 CURSOR FOR SELECT cusid FROM u_cust WHERE inuse = 1 AND cusareaid = :arg_cusareaid; OPEN cur1; FETCH cur1 Into :ll_cusid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_cusid[ll_cnt] = ll_cusid FETCH cur1 Into :ll_cusid; LOOP CLOSE cur1; FOR ll_i = 1 To UpperBound(arr_cusid) IF wf_cansee_cus(arr_cusid[ll_i]) THEN RETURN True NEXT // 下级区域可视,直接返回true Long ll_cusareaid, arr_cusareaid[] ll_cnt = 0 DECLARE cur2 CURSOR FOR SELECT cusareaid FROM u_cusarea Where parentid = :arg_cusareaid; OPEN cur2; FETCH cur2 Into :ll_cusareaid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_cusareaid[ll_cnt] = ll_cusareaid FETCH cur2 Into :ll_cusareaid; LOOP CLOSE cur2; FOR ll_i = 1 To UpperBound(arr_cusareaid) IF wf_cansee_cusarea(arr_cusareaid[ll_i]) THEN RETURN True NEXT RETURN False end function public function boolean wf_cansee_spttype (long arg_spttypeid);Long i Boolean haspower = False FOR i = LowerBound(sys_user_spttype) To UpperBound(sys_user_spttype) IF arg_spttypeid = sys_user_spttype[i] THEN haspower = True EXIT END IF NEXT IF Not haspower THEN RETURN False Long ll_cnt = 0 Long ll_sptid, arr_sptid[] DECLARE cur1 CURSOR FOR SELECT sptid FROM u_spt WHERE spttypeid = :arg_spttypeid And inuse = 1; OPEN cur1; FETCH cur1 Into :ll_sptid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_sptid[ll_cnt] = ll_sptid FETCH cur1 Into :ll_sptid; LOOP CLOSE cur1; FOR i = 1 To ll_cnt IF wf_cansee_spt(arr_sptid[i]) THEN RETURN True NEXT RETURN False end function public function boolean wf_cus_haschild (long cusid);Long ll_count = 0 SELECT count(0) INTO :ll_count FROM u_cust_rep Where (cusid = :cusid) And ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_count > 0 THEN RETURN True END IF RETURN False end function public function boolean wf_spt_haschild (long sptid);Long ll_count = 0 SELECT count(0) INTO :ll_count FROM u_spt_rep WHERE (sptid = :sptid) And u_spt_rep.ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_count > 0 THEN RETURN True RETURN False end function public function boolean wf_cansee_cus (long arg_cusid);Long ll_cnt SELECT count(0) INTO :ll_cnt FROM u_cust_rep WHERE cusid = :arg_cusid And ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True SELECT COUNT(0) INTO :ll_cnt FROM u_cust WHERE cusid = :arg_cusid AND ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True RETURN False end function public function boolean wf_cansee_spt (long arg_sptid);Long ll_cnt SELECT count(0) INTO :ll_cnt FROM u_spt_rep WHERE sptid = :arg_sptid And ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True END IF SELECT count(0) INTO :ll_cnt FROM u_spt WHERE sptid = :arg_sptid And ljmail <> ''; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True END IF RETURN False end function on w_ljmail_msgmx_ch.create int iCurrent call super::create this.cb_add=create cb_add this.cb_del=create cb_del this.dw_revlist=create dw_revlist this.cb_ok=create cb_ok this.cb_cancel=create cb_cancel this.tv_1=create tv_1 this.sle_1=create sle_1 this.sle_2=create sle_2 this.lv_1=create lv_1 this.cb_find=create cb_find this.cb_3=create cb_3 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_add this.Control[iCurrent+2]=this.cb_del this.Control[iCurrent+3]=this.dw_revlist this.Control[iCurrent+4]=this.cb_ok this.Control[iCurrent+5]=this.cb_cancel this.Control[iCurrent+6]=this.tv_1 this.Control[iCurrent+7]=this.sle_1 this.Control[iCurrent+8]=this.sle_2 this.Control[iCurrent+9]=this.lv_1 this.Control[iCurrent+10]=this.cb_find this.Control[iCurrent+11]=this.cb_3 this.Control[iCurrent+12]=this.ln_bar this.Control[iCurrent+13]=this.ln_bar2 end on on w_ljmail_msgmx_ch.destroy call super::destroy destroy(this.cb_add) destroy(this.cb_del) destroy(this.dw_revlist) destroy(this.cb_ok) destroy(this.cb_cancel) destroy(this.tv_1) destroy(this.sle_1) destroy(this.sle_2) destroy(this.lv_1) destroy(this.cb_find) destroy(this.cb_3) destroy(this.ln_bar) destroy(this.ln_bar2) end on event open;call super::open;s_sendmx_parm s_sendmx Long i, ll_row s_sendmx = Message.PowerObjectParm IF Not IsNull(s_sendmx) And IsValid(s_sendmx) THEN FOR i = 1 To UpperBound(s_sendmx.sendmx) ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = 0 dw_revlist.Object.printid[ll_row] = ll_row dw_revlist.Object.reltype[ll_row] = s_sendmx.sendmx[i].reltype dw_revlist.Object.relid[ll_row] = s_sendmx.sendmx[i].relid dw_revlist.Object.revaddress[ll_row] = s_sendmx.sendmx[i].revaddress dw_revlist.Object.revname[ll_row] = s_sendmx.sendmx[i].revname NEXT END IF end event event resize;call super::resize;ln_bar.endx = this.width ln_bar2.endx = this.width end event type cb_func from w_publ_base`cb_func within w_ljmail_msgmx_ch boolean visible = false integer x = 2245 integer y = 1656 end type type cb_exit from w_publ_base`cb_exit within w_ljmail_msgmx_ch boolean visible = false end type type cb_add from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 1705 integer y = 612 integer taborder = 20 boolean bringtotop = true string text = "添加" string normalpicname = "p4.ICO" integer picsize = 16 toolbaralignment pic_align = alignatright! end type event clicked;call super::clicked;IF tv_1.Visible THEN tv_1.Trigger Event DoubleClicked(il_tv_handle) tv_1.SetFocus( ) ELSE listviewitem l_lvi s_tv_data s_data Long ll_index = 0, ll_row ll_index = lv_1.FindItem(ll_index, DirectionAll!, False, True, False, False) DO While (ll_index > 0) IF lv_1.GetItem(ll_index, l_lvi) = 1 THEN s_data = l_lvi.Data IF Trim(s_data.mailAddress) = '' THEN GOTO ext IF dw_revlist.Find('relid=' + String(s_data.relid) + ' and reltype=' + String(s_data.reltype), 1, dw_revlist.RowCount()) = 0 THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = 0 dw_revlist.Object.printid[ll_row] = 0 dw_revlist.Object.reltype[ll_row] = s_data.reltype dw_revlist.Object.relid[ll_row] = s_data.relid dw_revlist.Object.revaddress[ll_row] = s_data.mailAddress dw_revlist.Object.revname[ll_row] = s_data.mailname dw_revlist.Object.dscrp[ll_row] = '' END IF END IF ext: ll_index = lv_1.FindItem(ll_index, DirectionDown!, False, True, False, False) LOOP END IF end event type cb_del from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 1705 integer y = 768 integer taborder = 30 boolean bringtotop = true string text = "删除" string normalpicname = "p1.ICO" integer picsize = 16 end type event clicked;call super::clicked;long ll_row dw_revlist.setredraw(false) for ll_row = dw_revlist.RowCount() TO 1 Step -1 if dw_revlist.IsSelected(ll_row) then dw_revlist.deleteRow(ll_row) end if next dw_revlist.setredraw(true) dw_revlist.setfocus( ) end event type dw_revlist from u_dw_rbtnfilter within w_ljmail_msgmx_ch integer x = 2048 integer y = 112 integer width = 1952 integer height = 1788 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_email_sendmx_view" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" end type event doubleclicked;call super::doubleclicked;if row > 0 then dw_revlist.deleterow(row) end if end event event clicked;call super::clicked;long ll_i IF row > 0 THEN THIS.SetRow(row) IF KeyDown(keycontrol!) THEN THIS.SelectRow(row,NOT THIS.IsSelected(row)) ll_lastrow = row ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键 IF ll_lastrow = 0 THEN //上次没选中任何行 THIS.SelectRow(row,TRUE) ll_lastrow = row //ll_lastrow为实例变量,记录上次单击的行 ELSE THIS.SelectRow(0,FALSE) //全都不选中 IF row > ll_lastrow THEN FOR ll_i = ll_lastrow TO row THIS.SelectRow(ll_i,TRUE) NEXT ELSE FOR ll_i = ll_lastrow TO row STEP -1 THIS.SelectRow(ll_i,TRUE) NEXT END IF END IF ELSE THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) ll_lastrow = row END IF END IF end event type cb_ok from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 3337 integer y = 1952 integer taborder = 30 boolean bringtotop = true string normalpicname = "ok.bmp" integer picsize = 16 end type event clicked;call super::clicked;s_sendmx_parm s_sendmx long i FOR i = 1 TO dw_revlist.RowCount() s_sendmx.sendmx[i].printid = i s_sendmx.sendmx[i].sendid = 0 s_sendmx.sendmx[i].reltype = dw_revlist.Object.reltype[i] s_sendmx.sendmx[i].Relid = dw_revlist.Object.Relid[i] s_sendmx.sendmx[i].Revname = RightTrim(LeftTrim(dw_revlist.Object.Revname[i])) s_sendmx.sendmx[i].revaddress = RightTrim(LeftTrim(dw_revlist.Object.revaddress[i])) NEXT closewithreturn(parent, s_sendmx) end event type cb_cancel from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 3680 integer y = 1952 integer taborder = 40 boolean bringtotop = true string text = "取消" boolean cancel = true string normalpicname = "exit.bmp" integer picsize = 16 end type event clicked;call super::clicked;close(parent) end event type tv_1 from treeview within w_ljmail_msgmx_ch integer y = 112 integer width = 1659 integer height = 1788 integer taborder = 20 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" borderstyle borderstyle = stylelowered! string picturename[] = {"email_whitebook.bmp","email_colorbook.bmp","email_rep.bmp",""} long picturemaskcolor = 536870912 long statepicturemaskcolor = 536870912 end type event constructor;/**************************************************************** * global type s_tv_data from structure * integer reltype * long relid * string mailname * string mailaddress * end type * reltype: 0: 通信录联系人 * 1: 客户 * 2: 供应商 * 3: 手动 * 4: 客户联系人 * 5: 供应商联系人 * 6: 员工 * --------------- * 10: 通信录 * 11: 客户区域 * 12: 客户区域根目录 * 13: 供应商类别 * 14: 供应商类别根目录 * 15: 部门 * 16: 部门根目录 * ------------------- * -1: 根目录 * * * *****************************************************************/ Long tvi_hdl = 0 Long ll_parent, ll_rep_hand, ll_cus_hand, ll_spt_hand ll_parent = This.InsertItemLast(0,'[双击添加]', 1) ll_rep_hand = This.InsertItemLast(ll_parent, '通讯录', 2) ll_cus_hand = This.InsertItemLast(ll_parent, '客户', 2) ll_spt_hand = This.InsertItemLast(ll_parent, '供应商', 2) TreeViewItem l_tvi s_tv_data s_data IF This.GetItem(ll_parent, l_tvi) = 1 THEN s_data.reltype = -1 s_data.relid = 0 s_data.mailname = '' s_data.mailAddress = '' l_tvi.Data = s_data This.SetItem(ll_parent, l_tvi) END IF IF This.GetItem(ll_rep_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 10 s_data.relid = 0 s_data.mailname = '' s_data.mailAddress = '' l_tvi.Data = s_data This.SetItem(ll_rep_hand, l_tvi) END IF IF This.GetItem(ll_cus_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 12 s_data.relid = 0 s_data.mailname = '' s_data.mailAddress = '' l_tvi.Data = s_data This.SetItem(ll_cus_hand, l_tvi) END IF IF This.GetItem(ll_spt_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 14 s_data.relid = 0 s_data.mailname = '' s_data.mailAddress = '' l_tvi.Data = s_data This.SetItem(ll_spt_hand, l_tvi) END IF This.ExpandItem(ll_parent) end event event itemexpanding;treeviewitem l_tvi, l_tvi_new IF This.GetItem(Handle, l_tvi) <> 1 THEN RETURN END IF s_tv_data s_data, s_data_new s_data = l_tvi.Data Long ll_relid, ll_new_handle, ll_cnt String ls_mailname, ls_mailaddress,ls_repname IF Not l_tvi.ExpandedOnce THEN Boolean hasChild = False /////////////////////////////////////////////////////////////// // IF s_data.reltype = 10 THEN // 加入通信录联系人 // TODO: 要改成ljmail联系人 DECLARE cursor10 CURSOR FOR SELECT repID AS relid, mailname, mailaddress FROM u_email_rep WHERE ( (empid = :sys_empid) OR (empid = 0) )And (reptype = 1); OPEN cursor10; FETCH cursor10 Into :ll_relid, :ls_mailname, :ls_mailaddress; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 0 // s_data_new.relid = ll_relid s_data_new.mailname = ls_mailname s_data_new.mailAddress = ls_mailaddress ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 在此设置联系人图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True FETCH cursor10 Into :ll_relid, :ls_mailname, :ls_mailaddress; LOOP CLOSE cursor10; ///////////////////////////////////////////////////////////////// // ELSEIF s_data.reltype = 12 Or s_data.reltype = 11 THEN // 加入客户区域 DECLARE cursor12 CURSOR FOR SELECT cusareaid, cusareaname, areaname FROM u_cusarea Where parentid = :s_data.relid; OPEN cursor12; FETCH cursor12 Into :ll_relid, :ls_mailname, :ls_mailaddress; DO While (sqlca.SQLCode = 0) IF Not wf_cansee_cusarea(ll_relid) THEN GOTO ext12 s_data_new.reltype = 11 s_data_new.relid = ll_relid s_data_new.mailname = '' s_data_new.mailAddress = '' s_data_new.repname='' ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置区域图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = true l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True ext12: FETCH cursor12 Into :ll_relid, :ls_mailname, :ls_mailaddress; LOOP CLOSE cursor12; ///////////////////////////////////////////////////////////////// // IF s_data.reltype = 11 THEN // 加入客户 DECLARE cursor11 CURSOR FOR SELECT cusid AS relid,ltrim(rtrim( name))+' '+rep AS mailname, ljmail AS mailaddress,u_cust.rep FROM u_cust Where (inuse = 1) And (cusareaid = :s_data.relid); OPEN cursor11; FETCH cursor11 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 1 s_data_new.relid = ll_relid s_data_new.mailname = ls_mailname s_data_new.mailAddress = ls_mailaddress s_data_new.repname=ls_repname long len len=len(ls_mailname) IF Not wf_cansee_cus(ll_relid) THEN GOTO ext11 ll_new_handle = This.InsertItemLast(Handle,ls_mailname + '<' + ls_mailaddress + '>', 3) // 在此设置客户图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = wf_cus_haschild(ll_relid) l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True ext11: FETCH cursor11 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; LOOP CLOSE cursor11; END IF ///////////////////////////////////////////////////////////////////// // ELSEIF s_data.reltype = 14 THEN // 加入供应商类别 DECLARE cursor14 CURSOR FOR SELECT u_spttype.spttypeid, u_spttype.spttypename FROM u_spttype Where u_spttype.inuse = 1; OPEN cursor14; FETCH cursor14 Into :ll_relid, :ls_mailname; DO While (sqlca.SQLCode = 0) IF Not wf_cansee_spttype(ll_relid) THEN GOTO ext14 s_data_new.reltype = 13 s_data_new.relid = ll_relid s_data_new.mailname = '' s_data_new.mailAddress = '' s_data_new.repname='' ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置供应商类别图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = True l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True ext14: FETCH cursor14 Into :ll_relid, :ls_mailname; LOOP CLOSE cursor14; ///////////////////////////////////////////////////// // ELSEIF s_data.reltype = 13 THEN // 加入供应商 DECLARE cursor13 CURSOR FOR SELECT sptid AS relid, ltrim(rtrim( name))+' '+rep AS mailname, ljmail AS mailaddress,u_spt.rep FROM u_spt Where (inuse = 1) And (spttypeid = :s_data.relid); OPEN cursor13; FETCH cursor13 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 2 s_data_new.relid = ll_relid s_data_new.mailname = ls_mailname s_data_new.mailAddress = ls_mailaddress s_data_new.repname=ls_repname IF Not wf_cansee_spt(ll_relid) THEN GOTO ext13 ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置供应商图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = wf_spt_haschild(ll_relid) l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True ext13: FETCH cursor13 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; LOOP CLOSE cursor13; //////////////////////////////////////////////////////////// // ELSEIF s_data.reltype = 1 THEN // 加入客户联系人 DECLARE cursor1 CURSOR FOR SELECT u_cust_rep.repid, RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) AS mailname, u_cust_rep.ljmail AS mailaddress,u_cust_rep.repname FROM u_cust AS u_cust_1 INNER JOIN u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid WHERE (u_cust_1.cusid = :s_data.relid) And (u_cust_rep.ljmail <> ''); OPEN cursor1; FETCH cursor1 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; DO While(sqlca.SQLCode = 0) s_data_new.reltype = 4 s_data_new.relid = ll_relid s_data_new.mailname = ls_mailname s_data_new.mailAddress = ls_mailaddress s_data_new.repname=ls_repname ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置客户联系人图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True FETCH cursor1 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; LOOP CLOSE cursor1; ELSEIF s_data.reltype = 2 THEN // 加入供应商联系人 DECLARE cursor2 CURSOR FOR SELECT u_spt_rep.repid, RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) AS mailname, u_spt_rep.ljmail AS mailaddress,u_spt_rep.repname FROM u_spt AS u_spt_1 INNER JOIN u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid WHERE (u_spt_1.inuse = 1) AND (u_spt_1.sptid = :s_data.relid) And (u_spt_rep.ljmail <> ''); OPEN cursor2; FETCH cursor2 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; DO While(sqlca.SQLCode = 0) s_data_new.reltype = 5 s_data_new.relid = ll_relid s_data_new.mailname = ls_mailname s_data_new.mailAddress = ls_mailaddress s_data_new.repname=ls_repname ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>', 3) // 设置供应商联系人图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True FETCH cursor2 Into :ll_relid, :ls_mailname, :ls_mailaddress,:ls_repname; LOOP CLOSE cursor2; END IF IF s_data.reltype <> -1 THEN l_tvi.Children = hasChild This.SetItem(Handle, l_tvi) END IF END IF end event event doubleclicked;treeviewitem l_tvi long ll_row s_tv_data s_data if this.getitem(handle, l_tvi) = 1 then s_data = l_tvi.data if trim(s_data.mailaddress) = '' then return end if if dw_revlist.Find('relid=' + string(s_data.relid) + ' and reltype=' + string(s_data.reltype), 1, dw_revlist.RowCount()) = 0 then ll_row = dw_revlist.insertrow(0) dw_revlist.object.sendid[ll_row] = 0 dw_revlist.object.printid[ll_row] = 0 dw_revlist.object.reltype[ll_row] = s_data.reltype dw_revlist.object.relid[ll_row] = s_data.relid dw_revlist.object.revaddress[ll_row] = s_data.mailaddress dw_revlist.object.revname[ll_row] = s_data.mailname dw_revlist.object.dscrp[ll_row] = '' end if end if end event event selectionchanged;il_tv_handle = newhandle end event type sle_1 from singlelineedit within w_ljmail_msgmx_ch event keyup pbm_keyup integer x = 5 integer y = 12 integer width = 1335 integer height = 84 integer taborder = 20 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" borderstyle borderstyle = stylelowered! end type event keyup;if key <> KeyEnter! then return cb_find.triggerevent(clicked!) end event type sle_2 from singlelineedit within w_ljmail_msgmx_ch event keyup pbm_keyup integer x = 2053 integer y = 12 integer width = 1627 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" borderstyle borderstyle = stylelowered! end type event keyup;if key = KeyEnter! then parent.triggerevent('ue_add_mail') end if end event type lv_1 from listview within w_ljmail_msgmx_ch boolean visible = false integer y = 112 integer width = 1659 integer height = 1788 integer taborder = 40 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" borderstyle borderstyle = stylelowered! boolean extendedselect = true grsorttype sorttype = ascending! listviewview view = listviewsmallicon! long largepicturemaskcolor = 536870912 string smallpicturename[] = {"email_rep.bmp"} long smallpicturemaskcolor = 536870912 long statepicturemaskcolor = 536870912 end type event doubleclicked;listviewitem l_tvi long ll_row s_tv_data s_data if this.getitem(index, l_tvi) = 1 then s_data = l_tvi.data if trim(s_data.mailaddress) = '' then return end if if dw_revlist.Find('relid=' + string(s_data.relid) + ' and reltype=' + string(s_data.reltype), 1, dw_revlist.RowCount()) = 0 then ll_row = dw_revlist.insertrow(0) dw_revlist.object.sendid[ll_row] = 0 dw_revlist.object.printid[ll_row] = 0 dw_revlist.object.reltype[ll_row] = s_data.reltype dw_revlist.object.relid[ll_row] = s_data.relid dw_revlist.object.revaddress[ll_row] = s_data.mailaddress dw_revlist.object.revname[ll_row] = s_data.mailname dw_revlist.object.dscrp[ll_row] = '' end if end if end event type cb_find from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 1353 integer y = 4 integer taborder = 30 boolean bringtotop = true string text = "查找" string normalpicname = "PREVIEW.BMP" integer picsize = 16 end type event clicked;call super::clicked;if sle_1.text = '' then tv_1.visible = true lv_1.visible = not tv_1.visible else tv_1.visible = false lv_1.visible = not tv_1.visible lv_1.DeleteItems() long ll_relid, ll_tmp string arg_parm, ls_mailname, ls_mailaddress s_tv_data s_data listviewitem l_lvi arg_parm = '%' + sle_1.text + '%' lv_1.setredraw(false) // 通信录 declare cursor1 cursor for SELECT repID AS relid, mailname, mailaddress FROM u_email_rep WHERE (empid = :sys_empid OR empid = 0) AND (reptype = 1) AND (LOWER(mailname) LIKE LOWER(:arg_parm) OR LOWER(mailaddress) LIKE LOWER(:arg_parm)); open cursor1; fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress; do while (sqlca.sqlcode = 0) s_data.reltype = 0 s_data.relid = ll_relid s_data.mailname = ls_mailname s_data.mailaddress = ls_mailaddress l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>' l_lvi.data = s_data l_lvi.pictureindex = 1 lv_1.additem(l_lvi) fetch cursor1 INTO :ll_relid, :ls_mailname, :ls_mailaddress; loop close cursor1; // 客户 declare cursor2 cursor for SELECT cusid, cuscode, ljmail, cusareaid FROM u_cust WHERE (inuse = 1) AND (ljmail <> '') AND (LOWER(cuscode) LIKE LOWER(:arg_parm) OR LOWER(ljmail) LIKE LOWER(:arg_parm)); open cursor2; fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; do while (sqlca.sqlcode = 0) if not wf_cansee_cusarea(ll_tmp) then goto ext2 s_data.reltype = 1 s_data.relid = ll_relid s_data.mailname = ls_mailname s_data.mailaddress = ls_mailaddress l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>' l_lvi.data = s_data l_lvi.pictureindex = 1 lv_1.additem(l_lvi) ext2: fetch cursor2 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; loop close cursor2; // 客户联系人 declare cursor3 cursor for SELECT u_cust_rep.repid, RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) AS mailname, u_cust_rep.ljmail AS mailaddress, u_cust_1.cusareaid FROM u_cust AS u_cust_1 INNER JOIN u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid WHERE (u_cust_1.inuse = 1) AND (u_cust_rep.ljmail <> '') AND (LOWER(RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname))) LIKE LOWER(:arg_parm) OR LOWER(u_cust_rep.ljmail) LIKE LOWER(:arg_parm)); open cursor3; fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; do while (sqlca.sqlcode = 0) if not wf_cansee_cusarea(ll_tmp) then goto ext3 s_data.reltype = 4 s_data.relid = ll_relid s_data.mailname = ls_mailname s_data.mailaddress = ls_mailaddress l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>' l_lvi.data = s_data l_lvi.pictureindex = 1 lv_1.additem(l_lvi) ext3: fetch cursor3 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; loop close cursor3; // 供应商 declare cursor4 cursor for SELECT sptid, sptcode, ljmail,spttypeid FROM u_spt WHERE (inuse = 1) AND (ljmail <> '') AND (LOWER(sptcode) LIKE LOWER(:arg_parm) OR LOWER(ljmail) LIKE LOWER(:arg_parm)); open cursor4; fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; do while (sqlca.sqlcode = 0) if not wf_cansee_spttype(ll_tmp) then goto ext4 s_data.reltype = 2 s_data.relid = ll_relid s_data.mailname = ls_mailname s_data.mailaddress = ls_mailaddress l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>' l_lvi.data = s_data l_lvi.pictureindex = 1 lv_1.additem(l_lvi) ext4: fetch cursor4 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; loop close cursor4; // 供应商联系人 declare cursor5 cursor for SELECT u_spt_rep.repid, RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) AS mailname, u_spt_rep.ljmail AS mailaddress,u_spt_1.spttypeid FROM u_spt AS u_spt_1 INNER JOIN u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid WHERE (u_spt_1.inuse = 1) AND (u_spt_rep.ljmail <> '') AND (LOWER(RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname))) LIKE LOWER(:arg_parm) OR LOWER(u_spt_rep.ljmail) LIKE LOWER(:arg_parm)); open cursor5; fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; do while (sqlca.sqlcode = 0) if not wf_cansee_spttype(ll_tmp) then goto ext5 s_data.reltype = 2 s_data.relid = ll_relid s_data.mailname = ls_mailname s_data.mailaddress = ls_mailaddress l_lvi.label = ls_mailname + '<' + ls_mailaddress + '>' l_lvi.data = s_data l_lvi.pictureindex = 1 lv_1.additem(l_lvi) ext5: fetch cursor5 INTO :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp; loop close cursor5; lv_1.setredraw(true) end if end event type cb_3 from uo_imflatbutton within w_ljmail_msgmx_ch integer x = 3698 integer y = 4 integer taborder = 30 boolean bringtotop = true string text = "添加" string normalpicname = "NEW.BMP" integer picsize = 16 end type event clicked;call super::clicked;parent.triggerevent('ue_add_mail') end event type ln_bar from line within w_ljmail_msgmx_ch long linecolor = 268435456 integer linethickness = 4 integer beginy = 1924 integer endx = 3118 integer endy = 1924 end type type ln_bar2 from line within w_ljmail_msgmx_ch long linecolor = 16777215 integer linethickness = 4 integer beginy = 1928 integer endx = 3150 integer endy = 1928 end type