$PBExportHeader$w_sms_send_new_ch.srw forward global type w_sms_send_new_ch from w_publ_base end type type cb_add from uo_imflatbutton within w_sms_send_new_ch end type type cb_del from uo_imflatbutton within w_sms_send_new_ch end type type dw_revlist from u_dw_rbtnfilter within w_sms_send_new_ch end type type cb_ok from uo_imflatbutton within w_sms_send_new_ch end type type cb_cancel from uo_imflatbutton within w_sms_send_new_ch end type type tv_1 from treeview within w_sms_send_new_ch end type type sle_1 from singlelineedit within w_sms_send_new_ch end type type sle_2 from singlelineedit within w_sms_send_new_ch end type type lv_1 from listview within w_sms_send_new_ch end type type cb_find from uo_imflatbutton within w_sms_send_new_ch end type type cb_3 from uo_imflatbutton within w_sms_send_new_ch end type type st_1 from statictext within w_sms_send_new_ch end type type ddlb_1 from dropdownlistbox within w_sms_send_new_ch end type type ln_bar from line within w_sms_send_new_ch end type type ln_bar2 from line within w_sms_send_new_ch end type type ln_1 from line within w_sms_send_new_ch end type type ln_2 from line within w_sms_send_new_ch end type type s_tv_data from structure within w_sms_send_new_ch end type end forward type s_tv_data from structure long reltype long revtype long revid string revname string revrep string revphone string status end type global type w_sms_send_new_ch from w_publ_base integer width = 4037 integer height = 2264 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 st_1 st_1 ddlb_1 ddlb_1 ln_bar ln_bar ln_bar2 ln_bar2 ln_1 ln_1 ln_2 ln_2 end type global w_sms_send_new_ch w_sms_send_new_ch type variables long il_tv_handle long ll_lastrow = 0 s_spring_send s_rslt long ins_status = 1 long ins_emp_handle long ins_parent 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_spttype_haschild (long spttypeid) public function boolean wf_spt_haschild (long sptid) public function boolean wf_cansee_dept (long arg_deptid) public function boolean wf_cansee_cus (long arg_cusid) public subroutine wf_tv_select (long arg_handle) public function boolean wf_group_haschild (long arg_groupid) end prototypes event ue_add_mail();long ll_row if trim(sle_2.text) = '' then return if dw_revlist.Find('revphone=~'' + trim(sle_2.text) + '~'', 1, dw_revlist.RowCount()) = 0 then ll_row = dw_revlist.insertrow(0) dw_revlist.object.revphone[ll_row] = trim(sle_2.text) else MessageBox('提示', sle_2.text + '已存在!') end if end event public function boolean wf_cansee_cusarea (long arg_cusareaid);Long ll_i, ll_cnt, arr_cusareaid[],ll_cusareaid Long arr_cusid[], ll_cusid Boolean haspower // 如果没有权限,直接返回false haspower = False FOR ll_i = LowerBound(sys_areaid) To UpperBound(sys_areaid) IF arg_cusareaid = sys_areaid[ll_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 (inuse = 1) AND (cusareaid = :arg_cusareaid) AND (ltrim(rtrim(tele1)) <> ''); IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True END IF // 下级客户可视,直接返回true 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 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 for i = lowerbound(sys_user_spttype) to upperbound(sys_user_spttype) if arg_spttypeid = sys_user_spttype[i] then return true end if next return false end function public function boolean wf_cus_haschild (long cusid);boolean rslt = false long ll_count = 0 SELECT count(0) INTO :ll_count FROM u_cust_rep WHERE (cusid = :cusid) and RTRIM(LTRIM(handtel)) <> ''; if ll_count > 0 then rslt = true end if return rslt end function public function boolean wf_spttype_haschild (long spttypeid);return false end function public function boolean wf_spt_haschild (long sptid);boolean rslt = false long ll_count = 0 SELECT count(0) INTO :ll_count FROM u_spt_rep WHERE (sptid = :sptid) and RTRIM(LTRIM(u_spt_rep.email)) <> ''; if ll_count > 0 then rslt = true return rslt end function public function boolean wf_cansee_dept (long arg_deptid);Long ll_cnt, ll_deptid, arr_deptid[], ll_i // 如果没有权限,直接返回false // 1.下级员工有手机号,直接返回true SELECT COUNT(0) INTO :ll_cnt FROM u_rs_empinfo WHERE ltrim(rtrim(handtel)) <> '' AND deptid = :arg_deptid AND (status = :ins_status OR :ins_status = -1); IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True // 2.下级部门有一个可视,直接返回true DECLARE cur1 CURSOR FOR SELECT departmentid FROM cw_department Where parentid = :arg_deptid; OPEN cur1; FETCH cur1 Into :ll_deptid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_deptid[ll_cnt] = ll_deptid FETCH cur1 Into :ll_deptid; LOOP CLOSE cur1; FOR ll_i = 1 To UpperBound(arr_deptid) IF wf_cansee_dept(arr_deptid[ll_i]) THEN RETURN True END IF NEXT // 结果 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 WHERE cusid = :arg_cusid AND ltrim(rtrim(tele1)) <> '' AND inuse = 1; IF sqlca.SQLCode <> 0 THEN RETURN False END IF IF ll_cnt > 0 THEN RETURN True RETURN wf_cus_haschild(arg_cusid) end function public subroutine wf_tv_select (long arg_handle);treeviewitem l_tvi Long ll_row Long ll_revid, arr_revid[] String ls_mailname, arr_mailname[],ls_repname String ls_mailaddress, arr_mailaddress[] String ls_rep, arr_rep[] Long ll_areaid, arr_areaid[] Long ll_cnt = 0 Long ll_i datastore dw_1,dw_2 Long ll_row1,i,j,ll_relid,ll_repid Long ll_status s_tv_data s_data IF tv_1.GetItem(arg_handle, l_tvi) = 1 THEN s_data = l_tvi.Data IF Trim(s_data.revphone) = '' THEN IF s_data.reltype = 1801 or s_data.reltype = 18 THEN IF MessageBox('提问', '是否添加自定义下有手机号的员工?', Question!, YesNo!) <> 1 THEN RETURN END IF dw_1 = Create datastore dw_1.DataObject = 'dw_rep_groupmx' dw_1.SetTransObject(sqlca) dw_1.Retrieve(s_data.revid) FOR i = 1 To dw_1.RowCount() ll_relid = dw_1.Object.relid[i] ll_repid = dw_1.Object.repid[i] IF dw_1.Object.reltype[i] = 0 THEN //客户类型 IF dw_1.Object.repid[i] = 0 THEN //没有客户联系人 SELECT u_cust.Name, u_cust.rep,u_cust.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_cust Where u_cust.cusid = :ll_relid; ELSE //有客户联系人 SELECT u_cust.Name Into :ls_mailname From u_cust Where u_cust.cusid = :ll_relid; SELECT u_cust_rep.repname, u_cust_rep.handtel Into :ls_repname,:ls_mailaddress From u_cust_rep Where u_cust_rep.cusid = :ll_relid And u_cust_rep.repid = :ll_repid; END IF ELSEIF dw_1.Object.reltype[i] = 1 THEN //供应商类型 IF dw_1.Object.repid[i] = 0 THEN //没有供应商联系人 SELECT u_spt.Name, u_spt.rep, u_spt.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_spt Where u_spt.sptid = :ll_relid; ELSE //有供应商联系人 SELECT u_spt.Name Into :ls_mailname From u_spt Where u_spt.sptid = :ll_relid; SELECT u_spt_rep.repname,u_spt_rep.handtel Into :ls_repname,:ls_mailaddress From u_spt_rep Where u_spt_rep.sptid = :ll_relid And u_spt_rep.repid = :ll_repid; END IF END IF IF dw_1.Object.reltype[i] <> 2 THEN IF ls_mailaddress <> '' THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 4 dw_revlist.Object.revid[ll_row] = 1 dw_revlist.Object.revname[ll_row] = ls_mailname + '_' + ls_repname dw_revlist.Object.revrep[ll_row] = ls_repname dw_revlist.Object.revphone[ll_row] = ls_mailaddress END IF ELSE // dw_2 = Create datastore dw_2.DataObject = 'dw_rep_groupmx' dw_2.SetTransObject(sqlca) dw_2.Retrieve( ll_relid) FOR j = 1 To dw_2.RowCount() ll_relid = dw_2.Object.relid[j] ll_repid = dw_2.Object.repid[j] IF dw_2.Object.reltype[j] = 0 THEN //客户类型 IF dw_2.Object.repid[j] = 0 THEN //没有客户联系人 SELECT u_cust.Name, u_cust.rep,u_cust.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_cust Where u_cust.cusid = :ll_relid; ELSE //有客户联系人 SELECT u_cust.Name Into :ls_mailname From u_cust Where u_cust.cusid = :ll_relid; SELECT u_cust_rep.repname, u_cust_rep.handtel Into :ls_repname,:ls_mailaddress From u_cust_rep Where u_cust_rep.cusid = :ll_relid And u_cust_rep.repid = :ll_repid; END IF ELSEIF dw_2.Object.reltype[j] = 1 THEN //供应商类型 IF dw_2.Object.repid[j] = 0 THEN //没有供应商联系人 SELECT u_spt.Name, u_spt.rep, u_spt.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_spt Where u_spt.sptid = :ll_relid; ELSE //有供应商联系人 SELECT u_spt.Name Into :ls_mailname From u_spt Where u_spt.sptid = :ll_relid; SELECT u_spt_rep.repname,u_spt_rep.handtel Into :ls_repname,:ls_mailaddress From u_spt_rep Where u_spt_rep.sptid = :ll_relid And u_spt_rep.repid = :ll_repid; END IF END IF IF dw_2.Object.reltype[j] <> 2 THEN IF ls_mailaddress <> '' THEN ll_row1 = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row1] = 4 dw_revlist.Object.revid[ll_row1] = 1 dw_revlist.Object.revname[ll_row1] = ls_mailname + '_' + ls_repname dw_revlist.Object.revrep[ll_row1] = ls_repname dw_revlist.Object.revphone[ll_row1] = ls_mailaddress END IF END IF NEXT END IF // NEXT RETURN END IF IF s_data.reltype = 11 Or s_data.reltype = 12 THEN IF MessageBox('提问', '是否添加区域下的所有有手机号的客户及联系人?', Question!, YesNo!) <> 1 THEN RETURN END IF DECLARE cur1 CURSOR FOR SELECT cusid AS relid, name AS mailname, tele1 AS mailaddress, cusareaid FROM u_cust WHERE (inuse = 1) AND (:s_data.revid = 0 OR cusareaid = :s_data.revid OR dbo.f_u_cusarea_isparentandchild(:s_data.revid, cusareaid) = 1) AND (ltrim(rtrim(tele1)) <> ''); OPEN cur1; FETCH cur1 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ll_areaid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_revid[ll_cnt] = ll_revid arr_mailname[ll_cnt] = ls_mailname arr_mailaddress[ll_cnt] = ls_mailaddress arr_areaid[ll_cnt] = ll_areaid FETCH cur1 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ll_areaid; LOOP CLOSE cur1; FOR ll_i = 1 To ll_cnt IF wf_cansee_cusarea(arr_areaid[ll_i]) THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 1 dw_revlist.Object.revid[ll_row] = arr_revid[ll_i] dw_revlist.Object.revname[ll_row] = arr_mailname[ll_i] dw_revlist.Object.revrep[ll_row] = '' dw_revlist.Object.revphone[ll_row] = arr_mailaddress[ll_i] END IF NEXT ll_cnt = 0 DECLARE cur2 CURSOR FOR SELECT u_cust_rep.repid, LTRIM(RTRIM(u_cust.cuscode)) + '-' + LTRIM(RTRIM(u_cust_rep.repname)), u_cust_rep.handtel, u_cust_rep.repname, u_cust.cusareaid FROM u_cust INNER JOIN u_cust_rep ON u_cust.cusid = u_cust_rep.cusid WHERE (u_cust.inuse = 1) AND (:s_data.revid = 0 OR u_cust.cusareaid = :s_data.revid OR dbo.f_u_cusarea_isparentandchild(:s_data.revid, u_cust.cusareaid) = 1) AND (ltrim(rtrim(u_cust_rep.handtel)) <> ''); OPEN cur2; FETCH cur2 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ls_rep, :ll_areaid; DO WHILE sqlca.SQLCode = 0 ll_cnt ++ arr_revid[ll_cnt] = ll_revid arr_mailname[ll_cnt] = ls_mailname arr_mailaddress[ll_cnt] = ls_mailaddress arr_rep[ll_cnt] = ls_rep arr_areaid[ll_cnt] = ll_areaid FETCH cur2 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ls_rep, :ll_areaid; LOOP CLOSE cur2; FOR ll_i = 1 To ll_cnt IF wf_cansee_cusarea(arr_areaid[ll_i]) THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 1 dw_revlist.Object.revid[ll_row] = arr_revid[ll_i] dw_revlist.Object.revname[ll_row] = arr_mailname[ll_i] dw_revlist.Object.revrep[ll_row] = arr_rep[ll_i] dw_revlist.Object.revphone[ll_row] = arr_mailaddress[ll_i] END IF NEXT ELSEIF s_data.reltype = 13 Or s_data.reltype = 14 THEN IF MessageBox('提问', '是否添加类别下有手机号的供应商及联系人?', Question!, YesNo!) <> 1 THEN RETURN END IF DECLARE cur3 CURSOR FOR SELECT sptid AS relid, name AS mailname, tele1 AS mailaddress FROM u_spt WHERE (inuse = 1) AND (spttypeid = :s_data.revid OR :s_data.revid = 0) AND (ltrim(rtrim(tele1)) <> ''); OPEN cur3; FETCH cur3 Into :ll_revid, :ls_mailname, :ls_mailaddress; DO WHILE sqlca.SQLCode = 0 ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 2 dw_revlist.Object.revid[ll_row] = ll_revid dw_revlist.Object.revname[ll_row] = ls_mailname dw_revlist.Object.revrep[ll_row] = '' dw_revlist.Object.revphone[ll_row] = ls_mailaddress FETCH cur3 Into :ll_revid, :ls_mailname, :ls_mailaddress; LOOP CLOSE cur3; DECLARE cur4 CURSOR FOR SELECT u_spt_rep.repid, LTRIM(RTRIM(u_spt.sptcode)) + '-' + LTRIM(RTRIM(u_spt_rep.repname)), u_spt_rep.handtel, u_spt_rep.repname FROM u_spt_rep INNER JOIN u_spt ON u_spt_rep.sptid = u_spt.sptid WHERE (u_spt.inuse = 1) AND (u_spt.spttypeid = :s_data.revid OR :s_data.revid = 0) AND (ltrim(rtrim(u_spt_rep.handtel)) <> ''); OPEN cur4; FETCH cur4 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ls_rep; DO WHILE sqlca.SQLCode = 0 ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 2 dw_revlist.Object.revid[ll_row] = ll_revid dw_revlist.Object.revname[ll_row] = ls_mailname dw_revlist.Object.revrep[ll_row] = ls_rep dw_revlist.Object.revphone[ll_row] = ls_mailaddress FETCH cur4 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ls_rep; LOOP CLOSE cur4; ELSEIF s_data.reltype = 15 Or s_data.reltype = 16 THEN IF MessageBox('提问', '是否添加部门下有手机号的员工?', Question!, YesNo!) <> 1 THEN RETURN END IF DECLARE cur5 CURSOR FOR SELECT empid AS relid, empname AS mailname, handtel AS mailaddress, status FROM u_rs_empinfo WHERE (:s_data.revid = 0 OR deptid = :s_data.revid OR dbo.f_cw_department_isparentandchild(:s_data.revid, deptid) = 1) AND ltrim(rtrim(handtel)) <> '' And (status = :ins_status Or :ins_status = -1); OPEN cur5; FETCH cur5 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ll_status; DO WHILE sqlca.SQLCode = 0 ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = 3 dw_revlist.Object.revid[ll_row] = ll_revid dw_revlist.Object.revname[ll_row] = ls_mailname dw_revlist.Object.revrep[ll_row] = '' dw_revlist.Object.revphone[ll_row] = ls_mailaddress IF ll_status = 1 THEN dw_revlist.Object.status[ll_row] = '在职' ELSE dw_revlist.Object.status[ll_row] = '离职' END IF FETCH cur5 Into :ll_revid, :ls_mailname, :ls_mailaddress, :ll_status; LOOP CLOSE cur5; END IF RETURN END IF IF dw_revlist.Find('revphone=~'' + s_data.revphone + '~'', 1, dw_revlist.RowCount()) = 0 THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = s_data.revtype dw_revlist.Object.revid[ll_row] = s_data.revid dw_revlist.Object.revname[ll_row] = s_data.revname dw_revlist.Object.revrep[ll_row] = s_data.revrep dw_revlist.Object.revphone[ll_row] = s_data.revphone dw_revlist.Object.status[ll_row] = s_data.status END IF END IF end subroutine public function boolean wf_group_haschild (long arg_groupid);boolean rslt = false long ll_count = 0 SELECT count(0) INTO :ll_count FROM u_rep_group WHERE (groupid = :arg_groupid); if ll_count > 0 then rslt = true end if return rslt end function on w_sms_send_new_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.st_1=create st_1 this.ddlb_1=create ddlb_1 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.ln_1=create ln_1 this.ln_2=create ln_2 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.st_1 this.Control[iCurrent+13]=this.ddlb_1 this.Control[iCurrent+14]=this.ln_bar this.Control[iCurrent+15]=this.ln_bar2 this.Control[iCurrent+16]=this.ln_1 this.Control[iCurrent+17]=this.ln_2 end on on w_sms_send_new_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.st_1) destroy(this.ddlb_1) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.ln_1) destroy(this.ln_2) end on event resize;call super::resize;ln_bar.endx = this.width ln_bar2.endx = this.width ln_1.endx = this.width ln_2.endx = this.width end event event open;call super::open;//s_spring_sendmx mx[] //s_rslt.mx = mx end event event close;call super::close;closewithreturn(this, s_rslt) end event type cb_func from w_publ_base`cb_func within w_sms_send_new_ch boolean visible = false integer x = 2245 integer y = 1656 end type type cb_exit from w_publ_base`cb_exit within w_sms_send_new_ch boolean visible = false end type type cb_add from uo_imflatbutton within w_sms_send_new_ch integer x = 1705 integer y = 724 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 wf_tv_select(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.revphone) = '' THEN GOTO ext IF dw_revlist.Find('revphone=~'' + s_data.revphone + '~'', 1, dw_revlist.RowCount()) = 0 THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = s_data.revtype dw_revlist.Object.revid[ll_row] = s_data.revid dw_revlist.Object.revname[ll_row] = s_data.revname dw_revlist.Object.revrep[ll_row] = s_data.revrep dw_revlist.Object.revphone[ll_row] = s_data.revphone dw_revlist.Object.status[ll_row] = s_data.status 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_sms_send_new_ch integer x = 1705 integer y = 880 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_sms_send_new_ch integer x = 2048 integer y = 224 integer width = 1952 integer height = 1788 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_sms_send_new_mx" 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_sms_send_new_ch integer x = 3337 integer y = 2064 integer taborder = 30 boolean bringtotop = true string normalpicname = "ok.bmp" integer picsize = 16 end type event clicked;call super::clicked;Long i FOR i = 1 To dw_revlist.RowCount() s_rslt.mx[i].revtype = dw_revlist.Object.revtype[i] s_rslt.mx[i].revid = dw_revlist.Object.revid[i] s_rslt.mx[i].revname = dw_revlist.Object.revname[i] s_rslt.mx[i].revrep = Trim(dw_revlist.Object.revrep[i]) s_rslt.mx[i].revphone = Trim(dw_revlist.Object.revphone[i]) NEXT CloseWithReturn(Parent, s_rslt) end event type cb_cancel from uo_imflatbutton within w_sms_send_new_ch integer x = 3680 integer y = 2064 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;closewithreturn(parent, s_rslt) end event type tv_1 from treeview within w_sms_send_new_ch integer y = 224 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: 供应商联系人 * --------------- * 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_hand,ll_self_hand ll_parent = This.InsertItemLast(0,'[双击添加]', 1) TreeViewItem l_tvi s_tv_data s_data s_data.revtype = 0 s_data.revid = 0 s_data.revname = '' s_data.revrep = '' s_data.revphone = '' IF This.GetItem(ll_parent, l_tvi) = 1 THEN s_data.reltype = -1 l_tvi.Data = s_data This.SetItem(ll_parent, l_tvi) END IF //ll_rep_hand = this.insertitemlast(ll_parent, '通讯录', 2) //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 ll_cus_hand = This.InsertItemLast(ll_parent, '客户', 2) IF This.GetItem(ll_cus_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 12 l_tvi.Data = s_data This.SetItem(ll_cus_hand, l_tvi) END IF ll_spt_hand = This.InsertItemLast(ll_parent, '供应商', 2) IF This.GetItem(ll_spt_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 14 l_tvi.Data = s_data This.SetItem(ll_spt_hand, l_tvi) END IF ll_hand = This.InsertItemLast(ll_parent,'员工', 2) IF This.GetItem(ll_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 16 l_tvi.Data = s_data This.SetItem(ll_hand, l_tvi) END IF ll_self_hand= This.InsertItemLast(ll_parent, '自定义分组', 2) IF This.GetItem(ll_self_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 18 l_tvi.Data = s_data This.SetItem(ll_self_hand, l_tvi) END IF ins_emp_handle = ll_hand This.ExpandItem(ll_parent) ins_parent = ll_parent end event event itemexpanding;treeviewitem l_tvi, l_tvi_new string ls_repname 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_rep Long ll_status IF Not l_tvi.ExpandedOnce THEN Boolean hasChild = False /////////////////////////////////////////////////////////////// // IF s_data.reltype = 10 THEN // 加入通信录联系人 // 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 = 18 THEN // 加入自定义分组 DECLARE cursor18 CURSOR FOR SELECT groupid, groupname FROM u_rep_group Where if_Parent = 0; OPEN cursor18; FETCH cursor18 Into :ll_relid, :ls_mailname; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 1801 s_data_new.revtype = 1 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = '' s_data_new.revphone = ls_mailaddress ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置区域图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = wf_group_haschild(ll_relid) l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True FETCH cursor18 Into :ll_relid, :ls_mailname; LOOP CLOSE cursor18; ///////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////// // ELSEIF s_data.reltype = 1801 THEN // 加入自定义分组 Long lj_groupid,lj_reltype,lj_relid,lj_repid DECLARE cursor1801 CURSOR FOR SELECT groupid, reltype,relid,repid FROM u_rep_groupmx Where groupid = :s_data.revid; OPEN cursor1801; FETCH cursor1801 Into :lj_groupid, :lj_reltype,:lj_relid,:lj_repid; DO While (sqlca.SQLCode = 0) IF lj_reltype = 0 THEN //客户类型 IF lj_repid = 0 THEN //没有客户联系人 SELECT u_cust.Name, u_cust.rep,u_cust.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_cust Where u_cust.cusid = :lj_relid; ELSE //有客户联系人 SELECT u_cust.Name Into :ls_mailname From u_cust Where u_cust.cusid = :lj_relid; SELECT u_cust_rep.repname, u_cust_rep.handtel Into :ls_repname,:ls_mailaddress From u_cust_rep Where u_cust_rep.cusid = :lj_relid And u_cust_rep.repid = :lj_repid; END IF ELSEIF lj_reltype = 1 THEN //供应商类型 IF lj_repid = 0 THEN //没有供应商联系人 SELECT u_spt.Name, u_spt.rep, u_spt.tele1 Into :ls_mailname,:ls_repname,:ls_mailaddress From u_spt Where u_spt.sptid = :lj_relid; ELSE //有供应商联系人 SELECT u_spt.Name Into :ls_mailname From u_spt Where u_spt.sptid = :lj_relid; SELECT u_spt_rep.repname,u_spt_rep.handtel Into :ls_repname,:ls_mailaddress From u_spt_rep Where u_spt_rep.sptid = :lj_relid And u_spt_rep.repid = :lj_repid; END IF END IF IF lj_reltype = 2 THEN SELECT groupname INTO :ls_mailname FROM u_rep_group Where groupid = :lj_relid; if pos(ls_mailname,'五金')>0 then int a a=0 end if s_data_new.reltype = 1801 s_data_new.revtype = 1 s_data_new.revid = lj_relid s_data_new.revname = ls_mailname s_data_new.revrep = '' s_data_new.revphone = ls_mailaddress 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 ELSE s_data_new.reltype =4 s_data_new.revtype = 1 s_data_new.revid = lj_relid s_data_new.revname = ls_mailname + '_' +ls_repname s_data_new.revphone = ls_mailaddress IF ls_mailaddress <> '' THEN ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '_' + ls_repname + '<' + ls_mailaddress + '>', 3) IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = False l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF END IF END IF hasChild = True FETCH cursor1801 Into :lj_groupid, :lj_reltype,:lj_relid,:lj_repid; LOOP CLOSE cursor1801; ///////////////////////////////////////////////////////////////// // 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.revid; 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.revid = ll_relid 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, name AS mailname, tele1 AS mailaddress FROM u_cust Where (inuse = 1) And (cusareaid = :s_data.revid); OPEN cursor11; FETCH cursor11 Into :ll_relid, :ls_mailname, :ls_mailaddress; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 1 s_data_new.revtype = 1 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = '' s_data_new.revphone = ls_mailaddress IF Trim(ls_mailaddress) = '' And Not wf_cus_haschild(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; 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.revid = ll_relid ll_new_handle = This.InsertItemLast(Handle, ls_mailname, 2) // 在此设置供应商类别图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN SELECT count(0) Into :ll_cnt From u_spt Where spttypeid = :ll_relid; IF sqlca.SQLCode = 0 And ll_cnt > 0 THEN l_tvi_new.Children = True END IF 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, name AS mailname, tele1 AS mailaddress FROM u_spt Where (inuse = 1) And (spttypeid = :s_data.revid); OPEN cursor13; FETCH cursor13 Into :ll_relid, :ls_mailname, :ls_mailaddress; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 2 s_data_new.revtype = 2 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = '' s_data_new.revphone = ls_mailaddress; IF Trim(ls_mailaddress) = '' And Not wf_spt_haschild(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 SELECT count(0) Into :ll_cnt From u_spt_rep Where sptid = :ll_relid; IF sqlca.SQLCode = 0 And ll_cnt > 0 THEN l_tvi_new.Children = True END IF 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; LOOP CLOSE cursor13; //////////////////////////////////////////////////////////// // ELSEIF s_data.reltype = 1 THEN // 加入客户联系人 DECLARE cursor1 CURSOR FOR SELECT u_cust_rep.repid, u_cust_1.cuscode, u_cust_rep.repname, u_cust_rep.handtel 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.inuse = 1) AND (u_cust_1.cusid = :s_data.revid) And (RTRIM(LTRIM(u_cust_rep.handtel)) <> ''); OPEN cursor1; FETCH cursor1 Into :ll_relid, :ls_mailname, :ls_rep, :ls_mailaddress; DO While(sqlca.SQLCode = 0) s_data_new.reltype = 4 s_data_new.revtype = 1 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = ls_rep s_data_new.revphone = ls_mailaddress ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '-' + ls_rep + '<' + 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_rep, :ls_mailaddress; LOOP CLOSE cursor1; ELSEIF s_data.reltype = 2 THEN // 加入供应商联系人 DECLARE cursor2 CURSOR FOR SELECT u_spt_rep.repid, u_spt_1.sptcode, u_spt_rep.repname, u_spt_rep.handtel 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.revid) And (RTRIM(LTRIM(u_spt_rep.handtel)) <> ''); OPEN cursor2; FETCH cursor2 Into :ll_relid, :ls_mailname, :ls_rep, :ls_mailaddress; DO While(sqlca.SQLCode = 0) s_data_new.reltype = 5 s_data_new.revtype = 2 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = ls_rep s_data_new.revphone = ls_mailaddress ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '-' + ls_rep + '<' + 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; LOOP CLOSE cursor2; ELSEIF s_data.reltype = 15 Or s_data.reltype = 16 THEN // 部门,员工 // 部门 DECLARE cursor15 CURSOR FOR SELECT departmentid, departmentname, handtype FROM cw_department Where parentid = :s_data.revid; OPEN cursor15; FETCH cursor15 Into :ll_relid, :ls_mailname, :ls_mailaddress; DO While (sqlca.SQLCode = 0) IF Not wf_cansee_dept(ll_relid) THEN GOTO ext15 s_data_new.reltype = 15 s_data_new.revid = ll_relid 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 ext15: FETCH cursor15 Into :ll_relid, :ls_mailname, :ls_mailaddress; LOOP CLOSE cursor15; // 员工 DECLARE cursor16 CURSOR FOR SELECT empid AS relid, empname AS mailname, handtel AS mailaddress, status FROM u_rs_empinfo Where (deptid = :s_data.revid) And ltrim(rtrim(handtel)) <> '' And (status = :ins_status Or :ins_status = -1); OPEN cursor16; FETCH cursor16 Into :ll_relid, :ls_mailname, :ls_mailaddress, :ll_status; DO While (sqlca.SQLCode = 0) s_data_new.reltype = 3 s_data_new.revtype = 3 s_data_new.revid = ll_relid s_data_new.revname = ls_mailname s_data_new.revrep = '' s_data_new.revphone = ls_mailaddress IF ll_status = 1 THEN s_data_new.status = '在职' ELSE s_data_new.status = '离职' END IF // IF Trim(ls_mailaddress) = '' And Not wf_cus_haschild(ll_relid) THEN GOTO ext16 ll_new_handle = This.InsertItemLast(Handle, ls_mailname + '<' + ls_mailaddress + '>('+s_data_new.status+')', 3) // 在此设置客户图标 IF This.GetItem(ll_new_handle, l_tvi_new) = 1 THEN l_tvi_new.Children = False //wf_cus_haschild(ll_relid) l_tvi_new.Data = s_data_new This.SetItem(ll_new_handle, l_tvi_new) END IF hasChild = True // ext16: FETCH cursor16 Into :ll_relid, :ls_mailname, :ls_mailaddress, :ll_status; LOOP CLOSE cursor16; 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;wf_tv_select(Handle) end event event selectionchanged;il_tv_handle = newhandle end event type sle_1 from singlelineedit within w_sms_send_new_ch event keyup pbm_keyup integer x = 5 integer y = 124 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_sms_send_new_ch event keyup pbm_keyup integer x = 2053 integer y = 124 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_sms_send_new_ch boolean visible = false integer y = 224 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 = listviewreport! 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.revphone) = '' THEN RETURN END IF IF dw_revlist.Find('revphone=~'' + s_data.revphone + '~'', 1, dw_revlist.RowCount()) = 0 THEN ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.revtype[ll_row] = s_data.revtype dw_revlist.Object.revid[ll_row] = s_data.revid dw_revlist.Object.revname[ll_row] = s_data.revname dw_revlist.Object.revrep[ll_row] = s_data.revrep dw_revlist.Object.revphone[ll_row] = s_data.revphone dw_revlist.Object.status[ll_row] = s_data.status END IF END IF end event event constructor;This.X = tv_1.X This.Y = tv_1.Y This.Width = tv_1.Width This.Height = tv_1.Height AddColumn ( '号码', Left!, This.Width - 100 ) end event type cb_find from uo_imflatbutton within w_sms_send_new_ch integer x = 1353 integer y = 116 integer taborder = 30 boolean bringtotop = true string text = "查找" string normalpicname = "PREVIEW.BMP" integer picsize = 16 end type event clicked;call super::clicked;long ll_status 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, ls_rep 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, name, tele1, cusareaid FROM u_cust WHERE (inuse = 1) AND (RTRIM(LTRIM(tele1)) <> '') AND (LOWER(cuscode) LIKE LOWER(:arg_parm) OR Lower(tele1) Like Lower(:arg_parm) OR Lower(name) 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.revtype = 1 s_data.revid = ll_relid s_data.revname = ls_mailname s_data.revrep = '' s_data.revphone = 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)), u_cust_rep.handtel 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 (RTRIM(LTRIM(u_cust_rep.handtel)) <> '') AND (LOWER(RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname))) LIKE LOWER(:arg_parm) OR Lower(u_cust_rep.handtel) Like Lower(:arg_parm)); OPEN cursor3; FETCH cursor3 Into :ll_relid, :ls_mailname, :ls_rep, :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.revtype = 1 s_data.revid = ll_relid s_data.revname = ls_mailname s_data.revrep = ls_rep s_data.revphone = ls_mailaddress l_lvi.Label = ls_mailname + '-' + ls_rep + '<' + 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_rep, :ls_mailaddress, :ll_tmp; LOOP CLOSE cursor3; // 供应商 DECLARE cursor4 CURSOR FOR SELECT sptid, name, tele1,spttypeid FROM u_spt WHERE (inuse = 1) AND (RTRIM(LTRIM(tele1)) <> '') AND (LOWER(name) LIKE LOWER(:arg_parm) OR Lower(tele1) 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.revtype = 2 s_data.revid = ll_relid s_data.revname = ls_mailname s_data.revrep = '' s_data.revphone = 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)), u_spt_rep.handtel 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 (RTRIM(LTRIM(u_spt_rep.handtel)) <> '') AND (LOWER(RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname))) LIKE LOWER(:arg_parm) OR Lower(u_spt_rep.handtel) Like Lower(:arg_parm)); OPEN cursor5; FETCH cursor5 Into :ll_relid, :ls_mailname, :ls_rep, :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.revtype = 2 s_data.revid = ll_relid s_data.revname = ls_mailname s_data.revrep = ls_rep s_data.revphone = ls_mailaddress l_lvi.Label = ls_mailname + '-' + ls_rep + '<' + 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_rep, :ls_mailaddress, :ll_tmp; LOOP CLOSE cursor5; // 供应商联系人 DECLARE cursor6 CURSOR FOR SELECT empid AS relid, empname AS mailname, handtel AS mailaddress, deptid, status FROM u_rs_empinfo WHERE ltrim(rtrim(handtel)) <> '' AND (status = :ins_status OR :ins_status = -1) AND (Lower(empname) Like Lower(:arg_parm) Or Lower(handtel) Like Lower(:arg_parm)); OPEN cursor6; FETCH cursor6 Into :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp, :ll_status; DO While (sqlca.SQLCode = 0) IF Not wf_cansee_dept(ll_tmp) THEN GOTO ext6 s_data.reltype = 3 s_data.revtype = 3 s_data.revid = ll_relid s_data.revname = ls_mailname s_data.revphone = ls_mailaddress if ll_status = 1 then s_data.status = '在职' else s_data.status = '离职' end if l_lvi.Label = ls_mailname + '<' + ls_mailaddress + '>('+s_data.status+')' l_lvi.Data = s_data l_lvi.PictureIndex = 1 lv_1.AddItem(l_lvi) ext6: FETCH cursor6 Into :ll_relid, :ls_mailname, :ls_mailaddress, :ll_tmp, :ll_status; LOOP CLOSE cursor6; lv_1.SetRedraw(True) END IF end event type cb_3 from uo_imflatbutton within w_sms_send_new_ch integer x = 3698 integer y = 116 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 st_1 from statictext within w_sms_send_new_ch integer x = 37 integer y = 24 integer width = 233 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "员工状态" long bordercolor = 134217739 boolean focusrectangle = false end type type ddlb_1 from dropdownlistbox within w_sms_send_new_ch integer x = 274 integer y = 12 integer width = 480 integer height = 300 integer taborder = 20 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "在职" string item[] = {"在职","离职","全部"} borderstyle borderstyle = stylelowered! end type event selectionchanged;IF This.Text = '在职' THEN ins_status = 1 ELSEIF This.Text = '离职' THEN ins_status = 0 ELSE ins_status = -1 END IF tv_1.DeleteItem(ins_emp_handle) Long ll_hand treeviewitem l_tvi s_tv_data s_data ll_hand = tv_1.InsertItemLast(ins_parent,'员工', 2) IF tv_1.GetItem(ll_hand, l_tvi) = 1 THEN l_tvi.Children = True s_data.reltype = 16 l_tvi.Data = s_data tv_1.SetItem(ll_hand, l_tvi) END IF ins_emp_handle = ll_hand end event type ln_bar from line within w_sms_send_new_ch long linecolor = 268435456 integer linethickness = 4 integer beginy = 2036 integer endx = 3118 integer endy = 2036 end type type ln_bar2 from line within w_sms_send_new_ch long linecolor = 16777215 integer linethickness = 4 integer beginy = 2040 integer endx = 3150 integer endy = 2040 end type type ln_1 from line within w_sms_send_new_ch long linecolor = 268435456 integer linethickness = 4 integer beginy = 104 integer endx = 3118 integer endy = 104 end type type ln_2 from line within w_sms_send_new_ch long linecolor = 16777215 integer linethickness = 4 integer beginy = 108 integer endx = 3150 integer endy = 108 end type