$PBExportHeader$w_email_send_new.srw forward global type w_email_send_new from w_publ_base end type type cb_save from uo_imflatbutton within w_email_send_new end type type cb_fj from uo_imflatbutton within w_email_send_new end type type cb_change from uo_imflatbutton within w_email_send_new end type type lv_fj from uo_email_lv within w_email_send_new end type type cb_6 from commandbutton within w_email_send_new end type type cb_7 from commandbutton within w_email_send_new end type type cb_9 from commandbutton within w_email_send_new end type type cbx_1 from checkbox within w_email_send_new end type type cb_1 from commandbutton within w_email_send_new end type type cb_2 from uo_imflatbutton within w_email_send_new end type type cb_fornextsend from uo_imflatbutton within w_email_send_new end type type st_1 from statictext within w_email_send_new end type type em_priority from editmask within w_email_send_new end type type st_2 from statictext within w_email_send_new end type type st_3 from statictext within w_email_send_new end type type st_4 from statictext within w_email_send_new end type type st_5 from statictext within w_email_send_new end type type st_6 from statictext within w_email_send_new end type type st_7 from statictext within w_email_send_new end type type st_9 from statictext within w_email_send_new end type type sle_subject from singlelineedit within w_email_send_new end type type st_10 from statictext within w_email_send_new end type type sle_mailuser from statictext within w_email_send_new end type type sle_mailaddress from statictext within w_email_send_new end type type sle_mailtype from statictext within w_email_send_new end type type em_mailsize from statictext within w_email_send_new end type type sle_opemp from statictext within w_email_send_new end type type em_opdate from statictext within w_email_send_new end type type em_senddate from statictext within w_email_send_new end type type sp_v1 from u_lbs_stsplitbar within w_email_send_new end type type cb_3 from uo_imflatbutton within w_email_send_new end type type cb_4 from uo_imflatbutton within w_email_send_new end type type uo_html from uo_html_editor within w_email_send_new end type type st_11 from uo_text_m within w_email_send_new end type type pb_1 from picturebutton within w_email_send_new end type type ddlb_normalflag from dropdownlistbox within w_email_send_new end type type st_8 from statictext within w_email_send_new end type type cb_5 from uo_imflatbutton within w_email_send_new end type type st_12 from statictext within w_email_send_new end type type tab_1 from tab within w_email_send_new end type type tabpage_1 from userobject within tab_1 end type type dw_1 from u_dw_rbtnfilter within tabpage_1 end type type tabpage_1 from userobject within tab_1 dw_1 dw_1 end type type tabpage_2 from userobject within tab_1 end type type ddlb_1 from dropdownlistbox within tabpage_2 end type type st_13 from statictext within tabpage_2 end type type cb_10 from commandbutton within tabpage_2 end type type dw_2 from u_dw_rbtnfilter within tabpage_2 end type type tabpage_2 from userobject within tab_1 ddlb_1 ddlb_1 st_13 st_13 cb_10 cb_10 dw_2 dw_2 end type type tabpage_3 from userobject within tab_1 end type type dw_cc from u_dw_rbtnfilter within tabpage_3 end type type tabpage_3 from userobject within tab_1 dw_cc dw_cc end type type tab_1 from tab within w_email_send_new tabpage_1 tabpage_1 tabpage_2 tabpage_2 tabpage_3 tabpage_3 end type type ln_bar from line within w_email_send_new end type type ln_bar2 from line within w_email_send_new end type type r_bar from rectangle within w_email_send_new end type type ddlb_2 from dropdownlistbox within w_email_send_new end type type cb_8 from uo_imflatbutton within w_email_send_new end type type mle_revlist from uo_mle_demo within w_email_send_new end type type cbx_auto from checkbox within w_email_send_new end type type cb_send from uo_imflatbutton within w_email_send_new end type type cbx_hz from checkbox within w_email_send_new end type type cbx_2 from checkbox within w_email_send_new end type type cbx_3 from checkbox within w_email_send_new end type type cb_11 from uo_imflatbutton within w_email_send_new end type type st_cc from uo_text_m within w_email_send_new end type type mle_cc from uo_mle_demo within w_email_send_new end type type pb_cc from picturebutton within w_email_send_new end type type bitmapfileheader from structure within w_email_send_new end type type bitmapinfo from structure within w_email_send_new end type type bitmapinfoheader from structure within w_email_send_new end type type s_email_cloudmx from structure within w_email_send_new end type end forward type bitmapfileheader from structure integer bftype long bfsize integer bfreserved1 integer bfreserved2 long bfoffbits end type type bitmapinfo from structure bitmapinfoheader bmiheader unsignedlong bmicolors[] end type type bitmapinfoheader from structure long bisize long biwidth long biheight integer biplanes integer bibitcount long bicompression long bisizeimage long bixpelspermeter long biypelspermeter long biclrused long biclrimportant end type type s_email_cloudmx from structure string name string url end type global type w_email_send_new from w_publ_base integer width = 3799 integer height = 2692 string title = "发送邮件" boolean maxbox = true boolean center = true event ue_addfj ( ) event ue_delfj ( ) event ue_saveas ( ) event ue_runfj ( ) event ue_filter_rep ( ) event ue_sendreg ( ) event ue_sendmx ( ) event ue_set_height ( ) event ue_set_sign ( integer abc ) event losefocus pbm_bnkillfocus event getfocus pbm_bnsetfocus event ue_cloudfj ( ) event ue_sendmx_cust ( ) event ue_sendmx_cust_cc ( ) event ue_sendmx_cc ( ) cb_save cb_save cb_fj cb_fj cb_change cb_change lv_fj lv_fj cb_6 cb_6 cb_7 cb_7 cb_9 cb_9 cbx_1 cbx_1 cb_1 cb_1 cb_2 cb_2 cb_fornextsend cb_fornextsend st_1 st_1 em_priority em_priority st_2 st_2 st_3 st_3 st_4 st_4 st_5 st_5 st_6 st_6 st_7 st_7 st_9 st_9 sle_subject sle_subject st_10 st_10 sle_mailuser sle_mailuser sle_mailaddress sle_mailaddress sle_mailtype sle_mailtype em_mailsize em_mailsize sle_opemp sle_opemp em_opdate em_opdate em_senddate em_senddate sp_v1 sp_v1 cb_3 cb_3 cb_4 cb_4 uo_html uo_html st_11 st_11 pb_1 pb_1 ddlb_normalflag ddlb_normalflag st_8 st_8 cb_5 cb_5 st_12 st_12 tab_1 tab_1 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar ddlb_2 ddlb_2 cb_8 cb_8 mle_revlist mle_revlist cbx_auto cbx_auto cb_send cb_send cbx_hz cbx_hz cbx_2 cbx_2 cbx_3 cbx_3 cb_11 cb_11 st_cc st_cc mle_cc mle_cc pb_cc pb_cc end type global w_email_send_new w_email_send_new type prototypes FUNCTION ulong UnregisterHotKey( ulong hWnd, ulong id ) LIBRARY "user32.dll" end prototypes type variables private: s_email_cloudmx ss_email_cloudmx public: s_email_set s_set s_email_send s_send boolean have_fj = false //datawindow dw_rep //datawindow dw_cust //datawindow dw_spt //datawindow dw_cust_rep //datawindow dw_spt_rep string fjfilepathname = 'fjtemp' uo_email obj_email boolean ls_update_flag=true //string ins_sqlerrtext //long modifyrow_no=0 //boolean have_cust_rep = false //boolean have_spt_rep = false //boolean ib_InitHtml = false //long ins_cur_fjtype = -1 int count1=1 datawindow dw_revlist datawindow dw_cc datawindow dw_2 string paperStyle='简约' string mailContent='' m_Dfc_Control_PopupMenu dmPopupMenu //long signList[] transaction Commit_Tran transaction fj_tran long backgroundid=0 string C_Sys_admsg_fj = 'Sys_admsg_fj' string C_u_email_fj = 'u_email_fj' string C_from_file = 'from_file' end variables forward prototypes public function integer wf_save (ref string arg_msg) public function integer wf_init (ref string arg_msg) public function long wf_face_change () public subroutine wf_fjcount () public function integer wf_check (ref string arg_msg) public function integer f_getstatusvalue (string arg_name) public subroutine wf_makerevlist () public subroutine wf_makerevtext () public subroutine uf_updaterevlist () public function string f_getstatusname (string arg_value) public function integer wf_admsg_getfj (long arg_msgid, ref s_email_lvfj arg_lvfj[], ref string arg_msg) public function integer wf_admsg_getfjblob (long arg_fjid, ref blob arg_fjblob, ref string arg_msg) public function integer wf_mail_getfjblob (long arg_fjid, ref blob arg_fjblob, ref string arg_msg) public subroutine wf_blob_runfj (ref blob arg_blob, string arg_filename) public subroutine wf_blob_saveas (ref blob arg_blob, string arg_filename) public function boolean wf_hasdotnet () public subroutine wf_addfj (string arg_filename) public subroutine wf_reply (integer arg_id) public function integer wf_setbackground (integer arg_paperid) public function string wf_get_backgroundfile (integer arg_paperid) public function integer wf_addbacktofj (integer arg_paperid) public function integer wf_retrieve_normal () public function integer wf_getpic_fromdb (integer arg_paperid) public subroutine wf_set_oldmailcontent (ref string arg_msg) public function string wf_make_newcontent (string arg_new) public subroutine wf_retrieve_sign () public subroutine wf_html_to_text () public function string of_globalreplace (string as_source, string as_old, string as_new) public function string gf_getfirstinfo (string as_source, string as_bef, string as_aft) public subroutine wf_addfj (string pathname, string filename[]) public subroutine wf_html_set (string arg_text) public subroutine wf_makerevtext_cc () public subroutine uf_updaterevlist_cc () public subroutine wf_makerevlist_cc () public subroutine wf_move_cc () end prototypes event ue_addfj();Long i,j Long ls_i,ls_j,ls_newrow,ls_filesize Blob ls_filedata String Pathname,ls_filename String Filename[],errmsg s_email_lvfj s_lvfj String find_name listviewitem l_lvi,l_lvi1 i = GetFileSaveName("选择附件",Pathname,Filename[],"*","所有文件,*.*") IF i = 1 AND Trim(Pathname) <> '' THEN IF NOT have_fj THEN have_fj = TRUE THIS.TriggerEvent(Resize!) END IF FOR ls_i = 1 TO UpperBound(Filename) IF UpperBound(Filename) = 1 THEN ls_filename = Pathname ELSE ls_filename = Pathname + '\'+Filename[ls_i] END IF FOR j = 1 TO lv_fj.TotalItems() lv_fj.GetItem(j, l_lvi1) find_name = l_lvi1.Label IF find_name = Filename[ls_i] THEN GOTO for_next NEXT IF f_filetoblob(ls_filename,ls_filedata,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN END IF ls_filesize = Len(ls_filedata) s_lvfj.fjtype = 0 s_lvfj.relid = s_send.sendid s_lvfj.Filename = Filename[ls_i] s_lvfj.filesize = ls_filesize s_lvfj.fileblob = ls_filedata s_lvfj.filetype = C_from_file l_lvi.PictureIndex = 1 l_lvi.Label = Filename[ls_i] l_lvi.Data = s_lvfj lv_fj.InsertItem(ls_i,l_lvi) for_next: NEXT END IF wf_fjcount() end event event ue_delfj();lv_fj.triggerevent('ue_delfj') wf_fjcount() end event event ue_saveas();lv_fj.triggerevent('ue_saveas') end event event ue_runfj();lv_fj.triggerevent('ue_runfj') end event event ue_filter_rep();string obj_expr='' //if trim(tab_1.tabpage_1.sle_2.text)<>'' then // if pos(trim(tab_1.tabpage_1.sle_2.text),'%',1)=0 then // obj_expr=obj_expr+'( mailname like "%'+trim(tab_1.tabpage_1.sle_2.text)+'%" )' // else // obj_expr=obj_expr+'( mailname like "'+trim(tab_1.tabpage_1.sle_2.text)+'" )' // end if //end if // //dw_rep.setfilter(obj_expr) // //dw_rep.setredraw(false) //dw_rep.filter() //if dw_rep.rowcount()>=1 then // dw_rep.selectrow(0,false) // dw_rep.selectrow(1,true) //end if //dw_rep.setredraw(true) end event event ue_sendmx();s_sendmx_parm s_sendmx, s_return long i, ll_row 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 = Trim(dw_revlist.Object.Revname[i]) s_sendmx.sendmx[i].revaddress = Trim(dw_revlist.Object.revaddress[i]) s_sendmx.sendmx[i].repname = Trim(dw_revlist.Object.repname[i]) NEXT openwithparm(w_email_sendmx_new, s_sendmx) s_return = message.powerobjectparm if not isvalid(s_return) then return dw_revlist.reset() for i = 1 to upperbound(s_return.sendmx) ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = s_send.sendid dw_revlist.Object.printid[ll_row] = ll_row dw_revlist.Object.reltype[ll_row] = s_return.sendmx[i].reltype dw_revlist.Object.relid[ll_row] = s_return.sendmx[i].relid dw_revlist.Object.revaddress[ll_row] = s_return.sendmx[i].revaddress dw_revlist.Object.revname[ll_row] = s_return.sendmx[i].revname dw_revlist.Object.repname[ll_row] = s_return.sendmx[i].repname next wf_makerevtext() this.triggerevent('ue_set_height') end event event ue_set_height;if mle_revlist.height > 84 then return if mle_revlist.linecount( ) > 1 then mle_revlist.Height = 84 * 3 st_9.y = st_9.y + 168 sle_subject.y = sle_subject.y + 168 uo_html.y = uo_html.y + 168 sp_v1.y = sp_v1.y + 168 dw_revlist.y = dw_revlist.y + 168 this.triggerevent('resize') end if end event event ue_set_sign(integer abc);//messagebox('',string(arg_id)) m_Dfc_Control_PopupMenu dmPopupMenu1 dmPopupMenu1=dmPopupMenu end event event losefocus;//UnregisterHotKey(Handle(This), atomid) //messagebox("","eeww") end event event getfocus;//RegisterHotKey(Handle(This), atomid, MOD_CONTROL , 86) //messagebox("","eeweww") end event event ue_cloudfj();open(w_email_cloud) ss_email_cloudmx = message.powerobjectparm //messagebox(ss_email_cloudmx.name,ss_email_cloudmx.url) string s0,s1,s2,s3,htmltext s0='
 ' s1='
附件(attachment)
' s3='' htmltext = uo_html.uf_gethtml() htmltext = htmltext +char(13)+char(10)+ s0 +s1+ss_email_cloudmx.url+s2+ss_email_cloudmx.name +s3 uo_html.uf_sethtml(htmltext) end event event ue_sendmx_cust();s_sendmx_parm s_sendmx, s_return long i, ll_row s_edit_index_tran ss_tran 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 = Trim(dw_revlist.Object.Revname[i]) s_sendmx.sendmx[i].revaddress = Trim(dw_revlist.Object.revaddress[i]) s_sendmx.sendmx[i].repname = Trim(dw_revlist.Object.repname[i]) NEXT OpenWithParm(w_email_seach_cust,ss_tran) s_return = message.powerobjectparm if not isvalid(s_return) then return dw_revlist.reset() for i = 1 to upperbound(s_return.sendmx) ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = s_send.sendid dw_revlist.Object.printid[ll_row] = ll_row dw_revlist.Object.reltype[ll_row] = s_return.sendmx[i].reltype dw_revlist.Object.relid[ll_row] = s_return.sendmx[i].relid dw_revlist.Object.revaddress[ll_row] = s_return.sendmx[i].revaddress dw_revlist.Object.revname[ll_row] = s_return.sendmx[i].revname dw_revlist.Object.repname[ll_row] = s_return.sendmx[i].repname next wf_makerevtext() this.triggerevent('ue_set_height') end event event ue_sendmx_cust_cc();s_sendmx_parm s_sendmx, s_return long i, ll_row s_edit_index_tran ss_tran FOR i = 1 TO dw_cc.RowCount() s_sendmx.sendmx[i].printid = i s_sendmx.sendmx[i].sendid = 0 s_sendmx.sendmx[i].reltype = dw_cc.Object.reltype[i] s_sendmx.sendmx[i].Relid = dw_cc.Object.Relid[i] s_sendmx.sendmx[i].Revname = Trim(dw_cc.Object.Revname[i]) s_sendmx.sendmx[i].revaddress = Trim(dw_cc.Object.revaddress[i]) s_sendmx.sendmx[i].repname = Trim(dw_cc.Object.repname[i]) NEXT OpenWithParm(w_email_seach_cust,ss_tran) s_return = message.powerobjectparm if not isvalid(s_return) then return dw_cc.reset() for i = 1 to upperbound(s_return.sendmx) ll_row = dw_cc.InsertRow(0) dw_cc.Object.sendid[ll_row] = s_send.sendid dw_cc.Object.printid[ll_row] = ll_row dw_cc.Object.reltype[ll_row] = s_return.sendmx[i].reltype dw_cc.Object.relid[ll_row] = s_return.sendmx[i].relid dw_cc.Object.revaddress[ll_row] = s_return.sendmx[i].revaddress dw_cc.Object.revname[ll_row] = s_return.sendmx[i].revname dw_cc.Object.repname[ll_row] = s_return.sendmx[i].repname dw_cc.Object.addtype[ll_row] = "Cc" next wf_makerevtext_cc() //this.triggerevent('ue_set_height') end event event ue_sendmx_cc();s_sendmx_parm s_sendmx, s_return long i, ll_row FOR i = 1 TO dw_cc.RowCount() s_sendmx.sendmx[i].printid = i s_sendmx.sendmx[i].sendid = 0 s_sendmx.sendmx[i].reltype = dw_cc.Object.reltype[i] s_sendmx.sendmx[i].Relid = dw_cc.Object.Relid[i] s_sendmx.sendmx[i].Revname = Trim(dw_cc.Object.Revname[i]) s_sendmx.sendmx[i].revaddress = Trim(dw_cc.Object.revaddress[i]) s_sendmx.sendmx[i].repname = Trim(dw_cc.Object.repname[i]) NEXT openwithparm(w_email_sendmx_new, s_sendmx) s_return = message.powerobjectparm if not isvalid(s_return) then return dw_cc.reset() for i = 1 to upperbound(s_return.sendmx) ll_row = dw_cc.InsertRow(0) dw_cc.Object.sendid[ll_row] = s_send.sendid dw_cc.Object.printid[ll_row] = ll_row dw_cc.Object.reltype[ll_row] = s_return.sendmx[i].reltype dw_cc.Object.relid[ll_row] = s_return.sendmx[i].relid dw_cc.Object.revaddress[ll_row] = s_return.sendmx[i].revaddress dw_cc.Object.revname[ll_row] = s_return.sendmx[i].revname dw_cc.Object.repname[ll_row] = s_return.sendmx[i].repname dw_cc.Object.addtype[ll_row] = "Cc" next wf_makerevtext_cc() //this.triggerevent('ue_set_height') end event public function integer wf_save (ref string arg_msg);Long rslt = 1 Long i,j s_email_lvfj s_lvfj[] listviewitem l_lvi String ls_temp Long ll_row,ll_row1 String chk1,chk2 dw_revlist.AcceptText() dw_cc.AcceptText() s_email_sendmx s_sendmx[],s_parm mle_revlist.Text = '' ls_temp = '' ///////////////// //添加抄送人列表 FOR i = 1 To dw_cc.RowCount() ext1: FOR j = 1 To dw_revlist.RowCount() IF Trim(dw_revlist.Object.revaddress[j]) = Trim(dw_cc.Object.revaddress[i]) THEN IF i = dw_cc.RowCount() THEN GOTO ext2 ELSE i++ GOTO ext1 END IF END IF NEXT ll_row1 = dw_revlist.InsertRow(0) dw_revlist.Object.isselect[ll_row1] = dw_cc.Object.isselect[i] dw_revlist.Object.sendid[ll_row1] = dw_cc.Object.sendid[i] dw_revlist.Object.printid[ll_row1] = ll_row1 dw_revlist.Object.reltype[ll_row1] = 99 dw_revlist.Object.relid[ll_row1] = dw_cc.Object.relid[i] dw_revlist.Object.revaddress[ll_row1] = dw_cc.Object.revaddress[i] dw_revlist.Object.revname[ll_row1] = dw_cc.Object.revname[i] dw_revlist.Object.dscrp[ll_row1] = dw_cc.Object.dscrp[i] dw_revlist.Object.repname[ll_row1] = dw_cc.Object.repname[i] dw_revlist.Object.addtype[ll_row1] = dw_cc.Object.addtype[i] NEXT ext2: dw_revlist.AcceptText() ////////////////// // FOR i = 1 To dw_revlist.RowCount() chk1 = LeftTrim(RightTrim(Lower(dw_revlist.Object.revname[i]))) FOR j = i+1 To dw_revlist.RowCount() IF j > dw_revlist.RowCount() THEN CONTINUE END IF chk2 = LeftTrim(RightTrim(Lower(dw_revlist.Object.revname[j]))) IF Pos(chk1,chk2) > 0 THEN rslt = 0 arg_msg = '存在类似或相同收件人,不能保存!~n'+chk1+','+chk2 GOTO ext END IF IF Pos(chk2,chk1) > 0 THEN rslt = 0 arg_msg = '存在类似或相同收件人,不能保存!~n'+chk1+','+chk2 GOTO ext END IF NEXT NEXT FOR i = 1 To dw_revlist.RowCount() s_parm.reltype = dw_revlist.Object.reltype[i] s_parm.revname = Trim(dw_revlist.Object.revname[i]) s_parm.revaddress = Trim(dw_revlist.Object.revaddress[i]) // messagebox('','1') IF obj_email.f_check_rep(s_parm,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF dw_revlist.Object.revname[i] = s_parm.revname dw_revlist.Object.revaddress[i] = s_parm.revaddress dw_revlist.Object.reltype[i] = s_parm.reltype dw_revlist.Object.relid[i] = s_parm.relid NEXT wf_makerevtext() s_send.mailtype = '发件' s_send.Subject = sle_subject.Text s_send.priority = Long(This.em_priority.Text) /////////////////////////////// //解决图片不能显示star IF lv_fj.TotalItems() > 0 THEN FOR j = 1 To lv_fj.TotalItems() lv_fj.GetItem(j, l_lvi) s_lvfj[j] = l_lvi.Data NEXT END IF oleobject images oleobject lo Long ll_cnt,ll_cnt1 String ls_url String ls_cid,s_temp,ss_temp String errmsg Blob ls_filedata String ls_cidnew images = uo_html.ole_web.Object.document.images ll_cnt = images.Length FOR i = 0 To ll_cnt - 1 ls_cidnew = "__LJ" + String(i) lo = images.Item(i) ls_url = lo.getAttribute("src") IF Lower(Mid(ls_url, 1, 4)) = 'cid:' Or Lower(Mid(ls_url, 1, 4)) = 'http' THEN CONTINUE ELSE s_temp = Mid(ls_url, 9) FOR j = Len(s_temp) To 1 Step -1 IF Mid(s_temp,j,1) = '/' THEN ss_temp = Mid(s_temp,j + 1,Len(s_temp) - j ) EXIT END IF NEXT // MessageBox("",ss_temp) lo.setAttribute("src", "cid:" + ls_cidnew) s_temp = of_globalreplace(s_temp,"%20" , " ") IF f_filetoblob(s_temp,ls_filedata,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN 0 END IF ll_cnt1 = UpperBound(s_lvfj)+ 1 s_lvfj[ll_cnt1].fjtype = 0 s_lvfj[ll_cnt1].relid = s_send.sendid s_lvfj[ll_cnt1].Filename = ss_temp s_lvfj[ll_cnt1].cid = ls_cidnew // s_lvfj[ll_cnt1].filesize = Len(ss_temp) s_lvfj[ll_cnt1].fileblob = ls_filedata s_lvfj[ll_cnt1].FileType = C_from_file END IF NEXT /////////////////////////////// //解决图片不能显示end s_send.htmlbody = uo_html.uf_gethtml( ) s_send.textbody = uo_html.uf_gettext( ) s_send.mailsize = Long(em_mailsize.Text) IF cbx_hz.Checked = True THEN s_send.NTFlag = 1 ELSE s_send.NTFlag = 0 END IF s_send.priority = 0 IF cbx_3.Checked = True THEN s_send.priority = 1 END IF //MessageBox("11",s_send.htmlbody) /////////////////////////////// //解决图片不能显示star //String s_temp,s_htmlbody,ss_temp //Long l_l,l_r //s_htmlbody = s_send.htmlbody //l_l = 0 //l_l = Pos(s_htmlbody,'src="') //IF l_l <> 0 THEN // FOR i = l_l + 5 To l_l + 1000 // IF Mid(s_htmlbody,i,1) = '"' THEN // l_r = i // EXIT // END IF // NEXT // // s_temp = Mid(s_htmlbody,l_l,l_r - l_l + 1) // // FOR i = Len(s_temp) To 1 Step -1 // IF Mid(s_temp,i,1) = '\' THEN // ss_temp=mid(s_temp,i + 1,len(s_temp) - i - 1) // // EXIT // END IF // NEXT // // ss_temp= 'src="cid:' +ss_temp +'"' // s_htmlbody=of_globalreplace(s_htmlbody,s_temp , ss_temp) // messagebox("",s_htmlbody) // //END IF // //oleobject images //images = ole_1.Object.document.images // //Long ll_cnt //ll_cnt = images.Length // //Longj //oleobject lo //String ls_url //String ls_cid //listviewitem lvi //s_email_lvfj lvfj //Blob lb //String ls_msg //Boolean findpic = False //String ls_filename // //FOR i = 0 To ll_cnt - 1 // lo = images.Item(i) // ls_url = lo.getAttribute("src") // IF Lower(Mid(ls_url, 1, 4)) = 'cid:' THEN // ls_cid = Mid(ls_url, 5) // END IF //NEXT /////////////////////////////// //解决图片不能显示star //if cb_normal_flag.checked then // s_send.normal_flag = 1 //else // s_send.normal_flag = 0 //end if String ls_normal Long ll_begin, ll_end ls_normal = ddlb_normalflag.Text ll_begin = Pos(ls_normal, '[',1) ll_end = Pos(ls_normal, ']', ll_begin) ls_normal = Mid(ls_normal, ll_begin + 1, ll_end - ll_begin - 1) s_send.normal_flag = Long(ls_normal) IF dw_revlist.RowCount() > 0 THEN FOR i = 1 To dw_revlist.RowCount() s_sendmx[i].printid = i s_sendmx[i].sendid = s_send.sendid s_sendmx[i].reltype = dw_revlist.Object.reltype[i] s_sendmx[i].relid = dw_revlist.Object.relid[i] s_sendmx[i].revname = Trim(dw_revlist.Object.revname[i]) s_sendmx[i].revaddress = Trim(dw_revlist.Object.revaddress[i]) s_sendmx[i].repname = Trim(dw_revlist.Object.repname[i]) s_sendmx[i].addtype = Trim(dw_revlist.Object.addtype[i]) IF IsNull(s_sendmx[i].addtype) THEN s_sendmx[i].addtype = "" NEXT ELSE arg_msg = '收件人列表不能为空' rslt = 0 GOTO ext END IF IF obj_email.f_save(s_send,s_sendmx,s_lvfj,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF s_set.sendid = s_send.sendid IF wf_init(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF wf_fjcount() This.TriggerEvent('resize') //if backgroundid<>0 then // string path // path= 'c:\'+String(backgroundid,'mht0000.mht') // if fileexists(path) then // filedelete(path) // end if //end if ext: RETURN rslt end function public function integer wf_init (ref string arg_msg);Int rslt = 1 Long count,ls_i, i String ls_msg listviewitem l_lvi s_email_lvfj s_lvfj[] dw_revlist.Reset() IF s_set.sendid > 0 THEN IF obj_email.uf_get_send(s_set.sendid, s_send, ls_msg) <> 1 THEN rslt = 0 arg_msg = ls_msg GOTO ext END IF // mle_text.text = s_send.textbody em_priority.Text = String(s_send.priority) sle_mailuser.Text = s_set.mailuser sle_mailaddress.Text = s_set.mailAddress sle_mailtype.Text = f_GetStatusName(s_send.mailtype) em_mailsize.Text = String(s_send.mailsize) sle_opemp.Text = s_send.opemp em_opdate.Text = String(s_send.opdate, 'yyyy-mm-dd') em_senddate.Text = String(s_send.senddate, 'yyyy-mm-dd') sle_subject.Text = s_send.Subject ddlb_normalflag.SelectItem(s_send.normal_flag + 1) uo_html.uf_sethtml(s_send.htmlbody) dw_revlist.Retrieve(s_send.sendid) //附件列表 lv_fj.DeleteItems( ) IF obj_email.uf_get_fj(s_set.relid, s_lvfj, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF FOR i = 1 To UpperBound(s_lvfj) l_lvi.PictureIndex = 1 l_lvi.Label = s_lvfj[i].Filename l_lvi.Data = s_lvfj[i] lv_fj.AddItem(l_lvi) NEXT have_fj = (UpperBound(s_lvfj) > 0) lv_fj.Visible = have_fj ELSE Long ll_row em_priority.Text = "3" sle_mailtype.Text = '未发' sle_mailuser.Text = s_set.mailuser sle_mailaddress.Text = s_set.mailAddress s_send.mailid = s_set.mailid ddlb_normalflag.SelectItem(1) em_opdate.Text = String(Today (), 'yyyy-mm-dd') IF s_set.flag = 1 THEN // 回复 ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.reltype[ll_row] = s_set.reltype dw_revlist.Object.revaddress[ll_row] = s_set.revaddress dw_revlist.Object.revname[ll_row] = s_set.revuser dw_revlist.Object.relid[ll_row] = s_set.relid lv_fj.DeleteItems( ) IF obj_email.uf_get_fj(s_set.relid, s_lvfj, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF FOR i = 1 To UpperBound(s_lvfj) l_lvi.PictureIndex = 1 l_lvi.Label = s_lvfj[i].Filename l_lvi.Data = s_lvfj[i] lv_fj.AddItem(l_lvi) NEXT have_fj = (UpperBound(s_lvfj) > 0) lv_fj.Visible = False ELSEIF s_set.flag = 2 THEN // 转发 // mle_text.Text = s_set.textbody sle_subject.Text = s_set.Title s_send.htmlbody = s_set.htmlbody uo_html.uf_sethtml(s_send.htmlbody) lv_fj.DeleteItems( ) IF s_set.reltype = 2 THEN IF wf_admsg_getfj(s_set.relid, s_lvfj, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF FOR i = 1 To UpperBound(s_lvfj) l_lvi.PictureIndex = 1 l_lvi.Label = s_lvfj[i].Filename l_lvi.Data = s_lvfj[i] lv_fj.AddItem(l_lvi) NEXT have_fj = (UpperBound(s_lvfj) > 0) lv_fj.Visible = have_fj ELSE IF obj_email.uf_get_fj(s_set.relid, s_lvfj, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF FOR i = 1 To UpperBound(s_lvfj) l_lvi.PictureIndex = 1 l_lvi.Label = s_lvfj[i].Filename l_lvi.Data = s_lvfj[i] lv_fj.AddItem(l_lvi) NEXT have_fj = (UpperBound(s_lvfj) > 0) lv_fj.Visible = have_fj END IF END IF END IF wf_makerevtext() ext: RETURN rslt end function public function long wf_face_change ();IF dw_edit_mode THEN // tab_1.tabpage_1.cb_delet.Enabled = FALSE // tab_1.tabpage_1.cb_rtr.Enabled = FALSE // // tab_1.tabpage_1.cb_edit.Text = "放弃&E" // tab_1.tabpage_1.cb_add.Text = "保存&S" cb_send.Enabled = FALSE cb_save.Enabled = FALSE cb_fj.Enabled = FALSE cb_change.Enabled = FALSE cb_exit.Enabled = FALSE cb_6.Enabled = FALSE cb_7.Enabled = FALSE cb_9.Enabled = FALSE cbx_1.Enabled = FALSE // tab_1.tabpage_3.Enabled = FALSE // tab_1.tabpage_4.Enabled = FALSE ELSE // tab_1.tabpage_1.cb_delet.Enabled = TRUE // tab_1.tabpage_1.cb_rtr.Enabled = TRUE // // tab_1.tabpage_1.cb_edit.Text = "修改&E" // tab_1.tabpage_1.cb_add.Text = "新建&S" cb_send.Enabled = TRUE cb_save.Enabled = TRUE cb_fj.Enabled = TRUE cb_change.Enabled = TRUE cb_exit.Enabled = TRUE cb_6.Enabled = TRUE cb_7.Enabled = TRUE cb_9.Enabled = TRUE cbx_1.Enabled = TRUE // tab_1.tabpage_3.Enabled = TRUE // tab_1.tabpage_4.Enabled = TRUE END IF RETURN 1 end function public subroutine wf_fjcount ();IF lv_fj.TotalItems() = 0 THEN cb_fj.Text = '附件' have_fj = FALSE THIS.TriggerEvent(Resize!) ELSE cb_fj.Text = '附件(' +String(lv_fj.TotalItems()) + ')' END IF cb_fj.of_init_draw() cb_fj.of_paint() cb_fj.TriggerEvent('ue_textchange') end subroutine public function integer wf_check (ref string arg_msg);Long rslt = 1 Long i dw_revlist.AcceptText() IF dw_revlist.RowCount() = 0 THEN rslt = 0 arg_msg = '收件人列表不能为空' GOTO ext END IF FOR i = 1 TO dw_revlist.RowCount() IF Pos(Trim(dw_revlist.Object.revaddress[i]),'@',1) = 0 THEN rslt = 0 arg_msg = '第' + String(i) + '行,收件人地址不正确' GOTO ext END IF NEXT ext: RETURN rslt end function public function integer f_getstatusvalue (string arg_name);if arg_name = '未发' then return 0 elseif arg_name = '已发' then return 1 elseif arg_name = '废件' then return 2 else return -1 end if end function public subroutine wf_makerevlist ();string ls_name, ls_address long ll_pos long ll_row string ls_arg, ls_mail ls_arg = mle_revlist.text long ll_first, ll_sec dw_revlist.reset() dw_revlist.accepttext( ) ll_first = 1 do while (ll_first <= len(ls_arg)) ll_sec = pos(ls_arg, ';', ll_first) if ll_sec = 0 then ll_sec = len(ls_arg) else ll_sec = ll_sec - 1 end if if ll_sec < ll_first then ll_first ++ continue; end if ls_mail = mid(ls_arg, ll_first, ll_sec - ll_first + 1) ll_pos = pos(ls_mail, '<', 1) if ll_pos = 0 then ls_name = ls_mail ls_address = ls_mail else ls_name = left(ls_mail, ll_pos - 1) ls_address = mid(ls_mail, ll_pos + 1, len(ls_mail) - ll_pos) ll_pos = pos(ls_address, '>', 1) ls_address = left(ls_address, ll_pos - 1) end if ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = s_send.sendid dw_revlist.Object.printid[ll_row] = ll_row dw_revlist.Object.reltype[ll_row] = 3 dw_revlist.Object.relid[ll_row] = 0 dw_revlist.Object.revaddress[ll_row] = ls_address dw_revlist.Object.revname[ll_row] = ls_name dw_revlist.Object.dscrp[ll_row] = '' dw_revlist.accepttext( ) ll_first = ll_sec + 2 loop dw_revlist.accepttext( ) end subroutine public subroutine wf_makerevtext ();Long i, ll_row dw_revlist.AcceptText( ) ll_row = dw_revlist.RowCount( ) mle_revlist.Text = '' IF ll_row = 0 THEN RETURN END IF FOR i = 1 To ll_row IF dw_revlist.Object.reltype[i] <> 99 THEN mle_revlist.Text = mle_revlist.Text + Trim(dw_revlist.Object.revname[i])+ '<' + Trim(dw_revlist.Object.revaddress[i] )+ '>;' END IF NEXT mle_revlist.Text = Left(mle_revlist.Text, Len(mle_revlist.Text) - 1) IF s_set.Subject <> "" THEN sle_subject.Text = s_set.Subject //回复时带上主题(荣) end subroutine public subroutine uf_updaterevlist ();long index, reltype, j index = 1 do while index <= dw_revlist.rowcount() j = index + 1 do while j <= dw_revlist.rowcount( ) if dw_revlist.object.revaddress[index] = dw_revlist.object.revaddress[j] then dw_revlist.deleterow(j) else j++ end if loop index ++ loop wf_makerevtext() end subroutine public function string f_getstatusname (string arg_value);if arg_value = '发件' then return '未发' elseif arg_value = '已发件' then return '已发' elseif arg_value = '收件' then return '已收' else return 'unkown' end if end function public function integer wf_admsg_getfj (long arg_msgid, ref s_email_lvfj arg_lvfj[], ref string arg_msg);int rslt = 1 s_email_lvfj lvfj[] long fjid string filename long i = 0 DECLARE cur1 cursor FOR select fjid,filename from Sys_admsg_fj where msgid = :arg_msgid using Commit_Tran; OPEN cur1; FETCH cur1 INTO :fjid, :filename; do while Commit_Tran.sqlcode = 0 i ++ lvfj[i].fjid = fjid lvfj[i].filename = filename lvfj[i].filetype = C_Sys_admsg_fj FETCH cur1 INTO :fjid, :filename; LOOP CLOSE cur1; arg_lvfj = lvfj return rslt end function public function integer wf_admsg_getfjblob (long arg_fjid, ref blob arg_fjblob, ref string arg_msg);int rslt = 1 SELECTBLOB fileblob INTO :arg_fjblob FROM Sys_admsg_fj WHERE fjid = :arg_fjid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '获取内部消息附件失败,' + Commit_Tran.sqlerrtext goto ext end if ext: return rslt end function public function integer wf_mail_getfjblob (long arg_fjid, ref blob arg_fjblob, ref string arg_msg);int rslt = 1 SELECTBLOB fileblob INTO :arg_fjblob FROM u_email_fj WHERE fjid = :arg_fjid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '获取附件失败,' + fj_tran.sqlerrtext goto ext end if ext: return rslt end function public subroutine wf_blob_runfj (ref blob arg_blob, string arg_filename);int rslt = 1 string ls_pathname string errmsg string lsNull setnull(lsNull) ls_pathname = sys_cur_path+fjfilepathname+'\'+arg_filename IF FileExists(ls_pathname) THEN FileDelete(ls_pathname) IF f_blobtofile(ls_pathname,arg_blob,errmsg) = 0 THEN rslt = 0 GOTO ext END IF //打开附件 ShellExecute32( Handle(THIS), lsNull, ls_pathname, lsNull, lsNull, 1 ) ext: IF rslt = 0 THEN MessageBox('系统提示',errmsg) END IF end subroutine public subroutine wf_blob_saveas (ref blob arg_blob, string arg_filename);long pos1, i string ls_filetypename string ls_filename string errmsg pos1 = Pos(arg_filename,'.',1) IF pos1 > 0 THEN ls_filetypename = Mid(arg_filename,pos1 + 1, len(arg_filename)) i = GetFileSaveName("另存为",arg_filename,ls_filename,"*","*."+ls_filetypename+",*."+ls_filetypename) ELSE ls_filetypename = '' i = GetFileSaveName("另存为",arg_filename,ls_filename,"*","*.*,*.*") END IF IF i = 1 AND Trim(arg_filename) <> '' THEN IF f_blobtofile(arg_filename,arg_blob,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN ELSE MessageBox('系统提示','附件保存成功!'+'~r~n'+'保存路径:'+arg_filename) END IF END IF end subroutine public function boolean wf_hasdotnet ();string ls_value[] if RegistryValues('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727', ls_value) <> 1 then return false else return true end if end function public subroutine wf_addfj (string arg_filename);Long i,j Long ls_i,ls_j,ls_newrow,ls_filesize Blob ls_filedata String Pathname,ls_filename String Filename[],errmsg s_email_lvfj s_lvfj String find_name listviewitem l_lvi,l_lvi1 i = 1 Pathname = arg_filename Filename[1] = arg_filename long ll_pos ll_pos = LastPos(arg_filename, '\') if ll_pos > 0 then Filename[1] = mid(arg_filename, ll_pos + 1) end if IF i = 1 AND Trim(Pathname) <> '' THEN IF NOT have_fj THEN have_fj = TRUE THIS.TriggerEvent(Resize!) END IF FOR ls_i = 1 TO UpperBound(Filename) IF UpperBound(Filename) = 1 THEN ls_filename = Pathname ELSE ls_filename = Pathname + '\'+Filename[ls_i] END IF FOR j = 1 TO lv_fj.TotalItems() lv_fj.GetItem(j, l_lvi1) find_name = l_lvi1.Label IF find_name = Filename[ls_i] THEN GOTO for_next NEXT IF f_filetoblob(ls_filename,ls_filedata,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN END IF ls_filesize = Len(ls_filedata) s_lvfj.fjtype = 0 s_lvfj.relid = s_send.sendid s_lvfj.Filename = Filename[ls_i] s_lvfj.filesize = ls_filesize s_lvfj.fileblob = ls_filedata s_lvfj.filetype = C_from_file l_lvi.PictureIndex = 1 l_lvi.Label = Filename[ls_i] l_lvi.Data = s_lvfj lv_fj.InsertItem(ls_i,l_lvi) for_next: NEXT END IF wf_fjcount() end subroutine public subroutine wf_reply (integer arg_id);//回复邮件内容 String body_txt Long Len string mailadd,sendadd,subject datetime revtime //messagebox('','ready') SELECT DATALENGTH(htmlbody) ,mailaddress,sendaddress,revdate,subject INTO :Len,:mailadd,:sendadd,:revtime,:subject FROM u_email_msg Where id = :s_set.id Using fj_tran; IF fj_tran.SQLCode <> 0 THEN MessageBox('提示', '查询消息长度失败,' +String(Len)+'~n'+ fj_tran.SQLErrText) GOTO ext END IF //messagebox('','next') IF Len > 2048 THEN Blob lb SelectBlob htmlbody Into :lb From u_email_msg Where id = :s_set.id Using fj_tran; IF fj_tran.SQLCode <> 0 THEN MessageBox('提示', '查询消息块失败,' + fj_tran.SQLErrText) GOTO ext END IF body_txt = String(lb) ELSE SELECT htmlbody INTO :body_txt FROM u_email_msg Where id = :s_set.id Using fj_tran; IF fj_tran.SQLCode <> 0 THEN MessageBox('提示', '查询消息失败,' + fj_tran.SQLErrText) GOTO ext END IF END IF string head if isnull(mailadd) then mailadd='无' end if if isnull(sendadd) then sendadd='无' end if if isnull(subject) then subject='无' end if head=' '& +'





'& +'
----------原始邮件----------
'& +'发件人: '+mailadd+';
' if isnull(revtime) then head+='发送时间:
' else head+='发送时间:'+string(revtime)+'
' end if head+='收件人: '+sendadd+';
'& +'主题:'+subject +'


'& +'
'& uo_html.uf_sethtml(head+body_txt+'') //uo_html.uf_setbackground('C:/Users/ASUS/Pictures/03.jpg') ext: end subroutine public function integer wf_setbackground (integer arg_paperid); Long rslt = 1,ll_ConnectionID String pName,arg_msg,lendetail Long pictype string backPath ,logoPath ,bottomPath string oldTXT SELECT papername,papertype,lendetail INTO :pName,:pictype,:lendetail FROM u_email_letterpaper WHERE paperid = :arg_paperid Using fj_tran; IF fj_tran.SQLCode <> 0 THEN rslt = 0 END IF //填充图片 Blob lb_pic,lbb_read Long place //messagebox("",integer(sle_1.text)) Int li_id SelectBlob picdata Into :lb_pic From u_email_letterpaper Where paperid = :arg_paperid Using fj_tran; IF fj_tran.SQLCode <> - 1 THEN IF Len(lb_pic) > 0 THEN String Len[],Name[] Long cnt,len1,st = 1 String path,ls_msg uo_strhelper strhelper strhelper = create uo_strhelper strhelper.split(lendetail,',',Ref Len) destroy strhelper FOR cnt = 1 To UpperBound(Len) len1 = Long(Len[cnt]) path = 'c:\'+String(arg_paperid,'mht0000.mht') IF FileExists(path) THEN FileDelete(path) END IF IF len1 = -1 THEN // messagebox('','-1') Name[cnt] = '' CONTINUE end if lbb_read = BlobMid(lb_pic,st,len1) // Name[cnt] = path f_blobtofile(path,lbb_read,ls_msg) st += len1 NEXT END IF END IF string bodytxt,tag1,bodytxt2 wf_set_oldmailContent(ref ls_msg) uo_html.uf_navigate(path) timer(0.5) RETURN rslt end function public function string wf_get_backgroundfile (integer arg_paperid);string rslt='' //Blob lb_pict //string ls_msg // //SelectBlob pic //Into :lb_pict //From u_email_letterpaper //Where paperid = :arg_paperid //Using fj_tran; //IF fj_tran.SQLCode <> 0 THEN // RETURN '' //END IF // //Int li_no //String ls_filepath //ls_filepath = 'c:\pictfile'+String(arg_paperid,'0000.jpg') // //IF f_blobtofile(ls_filepath,lb_pict,ls_msg) = 0 THEN // //END IF // //return ls_filepath //Blob lb_pic,lbb_read //Long place //string lendetail,backPath,logoPath,bottomPath ////messagebox("",integer(sle_1.text)) //Int li_id ////li_id=integer(sle_1.text) //SelectBlob picdata //Into :lb_pic //From u_email_letterpaper //Where paperid = :arg_paperid //Using fj_tran; //IF fj_tran.SQLCode <> - 1 THEN // IF Len(lb_pic) > 0 THEN // // p_1.SetPicture(lb_pic) // //ole_1.object.document.body.background='' // String Len[],Name[] // Long cnt,len1,st = 1 // String path,ls_msg // // f_split(lendetail,',',Ref Len) // FOR cnt = 1 To UpperBound(Len) // len1 = Long(Len[cnt]) // path = 'c:\'+String(arg_paperid,'pic0000')+String(cnt,'00.jpg') // IF FileExists(path) THEN // FileDelete(path) // END IF // // IF len1 = -1 THEN CONTINUE // lbb_read = BlobMid(lb_pic,st,len1) // // Name[cnt] = path // f_blobtofile(path,lbb_read,ls_msg) // st += len1 // NEXT // backPath = Name[1] // logoPath = Name[2] // bottomPath = Name[3] //// Timer(0.1) // END IF //ELSE // // p_1.PictureName = "" // //ole_1.object.document.body.background='' //END IF return rslt end function public function integer wf_addbacktofj (integer arg_paperid);Long rslt = 1 Blob lb_filedata String ls_filepath,ls_msg long ll_filesize,j s_email_lvfj s_lvfj listviewitem l_lvi ls_filepath = 'c:\pictfile'+String(arg_paperid,'0000.jpg') IF Not FileExists(ls_filepath) THEN ls_filepath = wf_get_backgroundfile(arg_paperid) END IF IF ls_filepath <> '' THEN IF NOT have_fj THEN have_fj = TRUE this.TriggerEvent(Resize!) END IF IF f_filetoblob(ls_filepath,lb_filedata,ls_msg) = 0 THEN MessageBox('系统提示',ls_msg) rslt = 0 GOTO ext END IF // FOR j = 1 TO lv_fj.TotalItems() //// lv_fj.GetItem(j, l_lvi1) // NEXT ll_filesize = Len(lb_filedata) s_lvfj.fjtype = 0 s_lvfj.relid = s_send.sendid s_lvfj.Filename = 'pictfile'+String(arg_paperid,'0000.jpg') s_lvfj.filesize = ll_filesize s_lvfj.fileblob = lb_filedata s_lvfj.filetype = C_from_file l_lvi.PictureIndex = 1 l_lvi.Label ='pictfile'+String(arg_paperid,'0000.jpg') l_lvi.Data = s_lvfj lv_fj.InsertItem(1,l_lvi) END IF wf_fjcount() ext: RETURN rslt end function public function integer wf_retrieve_normal ();int rslt=1 return rslt end function public function integer wf_getpic_fromdb (integer arg_paperid); Long rslt = 1,ll_ConnectionID String pName,arg_msg,lendetail Long pictype string backPath ,logoPath ,bottomPath string oldTXT SELECT papername,papertype,lendetail INTO :pName,:pictype,:lendetail FROM u_email_letterpaper WHERE paperid = :arg_paperid Using fj_tran; IF fj_tran.SQLCode <> 0 THEN rslt = 0 END IF //填充图片 Blob lb_pic,lbb_read Long place //messagebox("",integer(sle_1.text)) Int li_id //li_id=integer(sle_1.text) SelectBlob picdata Into :lb_pic From u_email_letterpaper Where paperid = :arg_paperid Using fj_tran; IF fj_tran.SQLCode <> - 1 THEN IF Len(lb_pic) > 0 THEN // p_1.SetPicture(lb_pic) //uo_htmlml.object.document.body.background='' String Len[],Name[] Long cnt,len1,st = 1 String path,ls_msg f_split(lendetail,',',Ref Len) FOR cnt = 1 To UpperBound(Len) len1 = Long(Len[cnt]) path = 'c:\'+String(arg_paperid,'mht0000.mht') IF FileExists(path) THEN FileDelete(path) END IF IF len1 = -1 THEN // messagebox('','-1') Name[cnt] = '' CONTINUE end if lbb_read = BlobMid(lb_pic,st,len1) // Name[cnt] = path f_blobtofile(path,lbb_read,ls_msg) st += len1 NEXT // backPath = Name[1] // logoPath = Name[2] // bottomPath = Name[3] END IF ELSE // p_1.PictureName = "" //uo_htmlml.object.document.body.background='' END IF string bodytxt,tag1,bodytxt2 //bodytxt2=char(lb_pic) //bodytxt=uo_html.uf_style_zidingyi() // //tag1='logopicpath' //place=pos(lower(bodytxt),tag1) //bodytxt=replace(bodytxt,place,len(tag1),logoPath) // //tag1='bottompicpath' //place=pos(lower(bodytxt),tag1) //bodytxt=replace(bodytxt,place,len(tag1),bottomPath) // //tag1='backpicpath' //place=pos(lower(bodytxt),tag1) //bodytxt=replace(bodytxt,place,len(tag1),backPath) // //place=pos(lower(bodytxt),'contentEditable=true') //do while place>0 // replace(lower(bodytxt),place,len('contentEditable=true'),'contentEditable=false') // place=pos(lower(bodytxt),'contentEditable=true') //loop // //place=pos(lower(bodytxt),'') //long next1 //do while place>0 //// next1=pos(bodytxt,'>',place) // bodytxt=replace(lower(bodytxt),place,len(''),'') // place=pos(lower(bodytxt),'') //loop // ////oldTXT=wf_get_bodytext() ////if count=2 then //// count=3 ////end if ////count++ //bodytxt=wf_get_newtext(bodytxt) //string OldContent //a=String(lb_pic,EncodingANSI!) //uo_html.uf_sethtml( a) //OldContent=uo_html.uf_gethtml() //messagebox('',OldContent) wf_set_oldmailContent(ref ls_msg) uo_html.uf_navigate(path) //string newStr //newStr=uo_html.uf_gethtml() //newStr=wf_make_newcontent(newStr) //uo_html.uf_sethtml(newStr) timer(0.5) //uo_html.uf_settext('123') //messagebox('','OK') //uo_html.uf_setcontentEditable('false') RETURN rslt end function public subroutine wf_set_oldmailcontent (ref string arg_msg);string newContent,oldContent long stn,enn,sto,eno newContent=uo_html.uf_gethtml() stn=pos(lower(newContent),'') if stn>0 then enn=pos(lower(newContent),'',stn) if enn>0 then newContent=mid(newContent,stn,enn - stn+len('')) mailContent=newContent end if end if //return rslt end subroutine public function string wf_make_newcontent (string arg_new);String rslt = '' String OldContent Long stn,enn,sto,eno,st,en String replaceContent,rpcn,rpco Boolean ifchanges = False,ifFin = False if count1=3 then count1=3 end if count1++ OldContent = mailContent rslt = arg_new st = Pos(Lower(arg_new),'') IF st <= 0 THEN GOTO ext en = Pos(Lower(arg_new),'')) if OldContent='' then // mailContent=replaceContent goto ext end if //查看是否有更详细项替换 stn = Pos(replaceContent,'_FoxFROMNAME') sto = Pos(OldContent,'_FoxFROMNAME') IF stn > 0 And sto > 0 THEN stn = Pos(replaceContent,'>',stn) enn = Pos(replaceContent,'<',stn) sto = Pos(OldContent,'>',sto) eno = Pos(OldContent,'<',sto) rpco = Mid(OldContent,sto+1,eno - sto - 1) replaceContent=Replace(replaceContent,stn+ 1,enn - stn - 1,rpco) ifchanges = True END IF stn = Pos(replaceContent,'divFMReplyBody') sto = Pos(OldContent,'divFMReplyBody') IF ifchanges THEN IF stn > 0 And sto > 0 THEN stn = Pos(replaceContent,'>',stn) enn = Pos(replaceContent,'<',stn) sto = Pos(OldContent,'>',sto) eno = Pos(OldContent,'<',sto) rpco = Mid(OldContent,sto+1,eno - sto - 1) replaceContent=Replace(replaceContent,stn+1,enn - stn - 1,rpco) // messagebox('',replaceContent) ifFin = True END IF END IF IF ifFin THEN arg_new=Replace(arg_new,st,en - st +Len(''),replaceContent) //更新内存中旧的内容 // mailContent = replaceContent rslt = arg_new ELSE IF OldContent <> '' THEN arg_new=Replace(arg_new,st,en - st +Len(''),OldContent) END IF rslt = arg_new END IF ext: RETURN rslt end function public subroutine wf_retrieve_sign (); Long cnt,newlist[],row string name datastore ds ds = Create datastore ds.DataObject = 'dw_email_signlist' ds.SetTrans(fj_tran) ds.Retrieve(publ_userid) cnt=2 //newlist[1]=-1 FOR row = ds.RowCount() to 1 step -1 name=ds.Object.signname[row]+' ['+string(ds.object.id[row])+']' ddlb_2.insertitem(name,1) //newlist[cnt]=ds.object.id[row] cnt++ NEXT ddlb_2.insertitem('不使用签名',1) destroy ds //signList=newlist ddlb_2.selectitem(1) end subroutine public subroutine wf_html_to_text (); //为了解决-------原始邮件-------- //可以删的问题 //2013-07-12(荣) //string s_text,ss,ss1,ss2 //long L_S,L_E,i //string body //for i=1 to 5 //ss = uo_html.uf_gethtml( ) // //ss1=gf_getfirstinfo(ss,"
----------原始邮件----------","
") // // // //body=''& //+''& //+''& //+''& //+''& //+''& //+''& //+'
'& //+'
'& //+'
' +'----------原始邮件----------' + ss1 + '
'& //+'

' // //ss=of_globalreplace(ss, "
----------原始邮件----------" + ss1, body) //next //uo_html.uf_sethtml(ss) //uo_html.uf_setcontenteditable('true') oleobject images images = uo_html.ole_web.Object.document.images Long ll_cnt ll_cnt = images.Length Long i,j oleobject lo String ls_url String ls_cid ListViewItem lvi s_email_lvfj lvfj Blob lb String ls_msg Boolean findpic = False String ls_filename FOR i = 0 To ll_cnt - 1 lo = images.Item(i) ls_url = lo.getAttribute("src") IF Lower(Mid(ls_url, 1, 4)) = 'cid:' THEN ls_cid = Mid(ls_url, 5) SetNull(lb) findpic = False FOR j = 1 To lv_fj.TotalItems() IF lv_fj.GetItem(j, lvi) = 1 THEN lvfj = lvi.Data IF lvfj.Filename <> ls_cid and lvfj.cid <> ls_cid THEN CONTINUE IF lvfj.FileType = C_Sys_admsg_fj THEN IF wf_admsg_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN EXIT END IF findpic = True ls_filename = lvfj.Filename ELSEIF lvfj.FileType = C_u_email_fj THEN IF wf_mail_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN EXIT END IF findpic = True ls_filename = lvfj.Filename END IF EXIT END IF NEXT IF findpic THEN ls_filename = sys_cur_path+fjfilepathname+'\'+ls_filename IF FileExists(ls_filename) THEN FileDelete(ls_filename) IF f_blobtofile(ls_filename,lb,ls_msg) = 0 THEN CONTINUE END IF lo.setAttribute("src", "file:///" + ls_filename) END IF END IF NEXT //为了解决-------原始邮件-------- //可以删的问题 //2013-07-12(荣) //string s_text ////ss = uo_html.uf_gethtml( ) //s_text = uo_html.uf_gettext( ) // ////messagebox("",ss) ////uo_html.uf_settext( ' ') ////uo_html.uf_sethtml(' ') //string aa,arg_text1,arg_text //aa=char(13) + char(10) //do while(pos(s_text,aa)>0) // arg_text1=left(s_text,pos(s_text,aa) - 1) // arg_text=arg_text + '
' + arg_text1 + '
' // s_text=right(s_text,len(s_text) - pos(s_text,aa)) // //// messagebox("",arg_text1) // arg_text1="" //loop // // //string body //body=''& //+''& //+''& //+''& //+''& //+''& //+''& //+'
'& //+'
'& //+'
 
'& //+'
 
'& //+'
 
'& //+'
' + arg_text + '
'& //+'
'& //+'
'& //+'

' // //uo_html.uf_sethtml(body) //uo_html.uf_setcontenteditable('false') end subroutine public function string of_globalreplace (string as_source, string as_old, string as_new);long ll_oldlen, ll_newlen, ll_pos as_source=trim(as_source) as_old=trim(as_old) ll_pos = Pos(as_source,as_old) IF ll_pos > 0 Then ll_oldlen = Len(as_old) ll_newlen = Len(as_new) DO WHILE ll_pos > 0 as_source = Replace(as_source,ll_pos,ll_oldlen,as_new) ll_pos = Pos(as_source,as_old,ll_pos + ll_newlen) LOOP END IF RETURN as_source end function public function string gf_getfirstinfo (string as_source, string as_bef, string as_aft);string ls_rtn string ls_bef string ls_aft string ls_bef_after//DT = '后面的字符串 long ll_pos1,ll_pos2 ls_bef=as_bef ls_aft=as_aft as_source=as_source ll_pos1=pos(as_source,ls_bef) if ll_pos1>0 then ls_bef_after=mid(as_source,ll_pos1 + len(ls_bef),len(as_source) - ll_pos1 - len(ls_bef)) ll_pos2=pos(ls_bef_after,ls_aft) ls_rtn=mid(ls_bef_after,1,ll_pos2 - 1) end if return ls_rtn end function public subroutine wf_addfj (string pathname, string filename[]);Long i,j Long ls_i,ls_j,ls_newrow,ls_filesize Blob ls_filedata String ls_filename String errmsg s_email_lvfj s_lvfj String find_name listviewitem l_lvi,l_lvi1 //i = GetFileSaveName("选择附件",Pathname,Filename[],"*","所有文件,*.*") IF i = 1 AND Trim(Pathname) <> '' THEN IF NOT have_fj THEN have_fj = TRUE THIS.TriggerEvent(Resize!) END IF FOR ls_i = 1 TO UpperBound(Filename) IF UpperBound(Filename) = 1 THEN ls_filename = Pathname ELSE ls_filename = Pathname + '\'+Filename[ls_i] END IF FOR j = 1 TO lv_fj.TotalItems() lv_fj.GetItem(j, l_lvi1) find_name = l_lvi1.Label IF find_name = Filename[ls_i] THEN GOTO for_next NEXT IF f_filetoblob(ls_filename,ls_filedata,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN END IF ls_filesize = Len(ls_filedata) s_lvfj.fjtype = 0 s_lvfj.relid = s_send.sendid s_lvfj.Filename = Filename[ls_i] s_lvfj.filesize = ls_filesize s_lvfj.fileblob = ls_filedata s_lvfj.filetype = C_from_file l_lvi.PictureIndex = 1 l_lvi.Label = Filename[ls_i] l_lvi.Data = s_lvfj lv_fj.InsertItem(ls_i,l_lvi) for_next: NEXT END IF wf_fjcount() end subroutine public subroutine wf_html_set (string arg_text);//DO WHILE IsNull(ole_1.Object.document.body) // Yield() //LOOP // //string arg_text_old //arg_text_old=arg_text //IF IsNull(arg_text) THEN arg_text = '' //IF IsNull(lss_revdate) Or lss_revdate = "" THEN // arg_text = '
主题: ' +lss_subject + '
发件人: ' + lss_sendman + '
发件时间: '+ lss_senddate + '
----------------------------------------------
' +arg_text //ELSEIF IsNull(lss_senddate) Or lss_senddate = "" THEN // arg_text = '
主题: ' +lss_subject + '
发件人: ' + lss_sendman + '
发件时间: '+ lss_revdate + '
----------------------------------------------
' +arg_text //ELSE //END IF //IF IsNull(arg_text) THEN arg_text =arg_text_old ////messagebox("",arg_text) ////Clipboard(arg_text) //ole_1.Object.document.body.innerhtml = arg_text // //String ls_state //ls_state = ole_1.Object.document.readyState //DO WHILE ls_state <> 'complete' // Yield() // ls_state = ole_1.Object.document.readyState //LOOP // //oleobject images //images = ole_1.Object.document.images // //Long ll_cnt //ll_cnt = images.Length // //Long i,j //oleobject lo //String ls_url //String ls_cid //ListViewItem lvi //s_email_lvfj lvfj //Blob lb //String ls_msg //Boolean findpic = False //String ls_filename // //FOR i = 0 To ll_cnt - 1 // lo = images.Item(i) // ls_url = lo.getAttribute("src") // IF Lower(Mid(ls_url, 1, 4)) = 'cid:' THEN // ls_cid = Mid(ls_url, 5) // SetNull(lb) // findpic = False // FOR j = 1 To lv_fj.TotalItems() // IF lv_fj.GetItem(j, lvi) = 1 THEN // lvfj = lvi.Data // IF lvfj.Filename <> ls_cid and lvfj.cid <> ls_cid THEN CONTINUE // // IF lvfj.FileType = C_Sys_admsg_fj THEN // IF wf_admsg_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN // EXIT // END IF // findpic = True // ls_filename = lvfj.Filename // ELSEIF lvfj.FileType = C_u_email_fj THEN // IF wf_mail_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN // EXIT // END IF // findpic = True // ls_filename = lvfj.Filename // END IF // EXIT // END IF // NEXT // // IF findpic THEN // ls_filename = sys_cur_path+fjfilepathname+'\'+ls_filename // IF FileExists(ls_filename) THEN FileDelete(ls_filename) // // IF f_blobtofile(ls_filename,lb,ls_msg) = 0 THEN // CONTINUE // END IF // lo.setAttribute("src", "file:///" + ls_filename) // END IF // // END IF //NEXT // // // // // // end subroutine public subroutine wf_makerevtext_cc ();long i, ll_row dw_cc.accepttext( ) ll_row = dw_cc.rowcount( ) mle_cc.text = '' if ll_row = 0 then return end if for i = 1 to ll_row mle_cc.Text = mle_cc.text + trim(dw_cc.object.revname[i])+ '<' + trim(dw_cc.object.revaddress[i] )+ '>;' next mle_cc.Text = left(mle_cc.Text, len(mle_cc.text) - 1) end subroutine public subroutine uf_updaterevlist_cc ();long index, reltype, j index = 1 do while index <= dw_cc.rowcount() j = index + 1 do while j <= dw_cc.rowcount( ) if dw_cc.object.revaddress[index] = dw_cc.object.revaddress[j] then dw_cc.deleterow(j) else j++ end if loop index ++ loop wf_makerevtext_cc() end subroutine public subroutine wf_makerevlist_cc ();string ls_name, ls_address long ll_pos long ll_row string ls_arg, ls_mail ls_arg = mle_cc.text long ll_first, ll_sec dw_cc.reset() dw_cc.accepttext( ) ll_first = 1 do while (ll_first <= len(ls_arg)) ll_sec = pos(ls_arg, ';', ll_first) if ll_sec = 0 then ll_sec = len(ls_arg) else ll_sec = ll_sec - 1 end if if ll_sec < ll_first then ll_first ++ continue; end if ls_mail = mid(ls_arg, ll_first, ll_sec - ll_first + 1) ll_pos = pos(ls_mail, '<', 1) if ll_pos = 0 then ls_name = ls_mail ls_address = ls_mail else ls_name = left(ls_mail, ll_pos - 1) ls_address = mid(ls_mail, ll_pos + 1, len(ls_mail) - ll_pos) ll_pos = pos(ls_address, '>', 1) ls_address = left(ls_address, ll_pos - 1) end if ll_row = dw_cc.InsertRow(0) dw_cc.Object.sendid[ll_row] = s_send.sendid dw_cc.Object.printid[ll_row] = ll_row dw_cc.Object.reltype[ll_row] = 3 dw_cc.Object.relid[ll_row] = 0 dw_cc.Object.revaddress[ll_row] = ls_address dw_cc.Object.revname[ll_row] = ls_name dw_cc.Object.dscrp[ll_row] = '' dw_cc.Object.addtype[ll_row] = 'Cc' dw_cc.accepttext( ) ll_first = ll_sec + 2 loop dw_cc.accepttext( ) end subroutine public subroutine wf_move_cc ();Integer i,j,ll_row1 FOR i = dw_revlist.RowCount() To 1 Step -1 IF dw_revlist.Object.reltype[i] = 99 THEN //抄送 ll_row1 = dw_cc.InsertRow(0) dw_cc.Object.isselect[ll_row1] = dw_revlist.Object.isselect[i] dw_cc.Object.sendid[ll_row1] = dw_revlist.Object.sendid[i] dw_cc.Object.printid[ll_row1] = ll_row1 dw_cc.Object.reltype[ll_row1] = 99 dw_cc.Object.relid[ll_row1] = dw_revlist.Object.relid[i] dw_cc.Object.revaddress[ll_row1] = dw_revlist.Object.revaddress[i] dw_cc.Object.revname[ll_row1] = dw_revlist.Object.revname[i] dw_cc.Object.dscrp[ll_row1] = dw_revlist.Object.dscrp[i] dw_cc.Object.repname[ll_row1] = dw_revlist.Object.repname[i] dw_cc.Object.addtype[ll_row1] = dw_revlist.Object.addtype[i] END IF NEXT next1: FOR i = 1 To dw_revlist.RowCount() IF dw_revlist.Object.reltype[i] = 99 THEN dw_revlist.DeleteRow(i) GOTO next1 END IF NEXT wf_makerevtext_cc() end subroutine on w_email_send_new.create int iCurrent call super::create this.cb_save=create cb_save this.cb_fj=create cb_fj this.cb_change=create cb_change this.lv_fj=create lv_fj this.cb_6=create cb_6 this.cb_7=create cb_7 this.cb_9=create cb_9 this.cbx_1=create cbx_1 this.cb_1=create cb_1 this.cb_2=create cb_2 this.cb_fornextsend=create cb_fornextsend this.st_1=create st_1 this.em_priority=create em_priority this.st_2=create st_2 this.st_3=create st_3 this.st_4=create st_4 this.st_5=create st_5 this.st_6=create st_6 this.st_7=create st_7 this.st_9=create st_9 this.sle_subject=create sle_subject this.st_10=create st_10 this.sle_mailuser=create sle_mailuser this.sle_mailaddress=create sle_mailaddress this.sle_mailtype=create sle_mailtype this.em_mailsize=create em_mailsize this.sle_opemp=create sle_opemp this.em_opdate=create em_opdate this.em_senddate=create em_senddate this.sp_v1=create sp_v1 this.cb_3=create cb_3 this.cb_4=create cb_4 this.uo_html=create uo_html this.st_11=create st_11 this.pb_1=create pb_1 this.ddlb_normalflag=create ddlb_normalflag this.st_8=create st_8 this.cb_5=create cb_5 this.st_12=create st_12 this.tab_1=create tab_1 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar this.ddlb_2=create ddlb_2 this.cb_8=create cb_8 this.mle_revlist=create mle_revlist this.cbx_auto=create cbx_auto this.cb_send=create cb_send this.cbx_hz=create cbx_hz this.cbx_2=create cbx_2 this.cbx_3=create cbx_3 this.cb_11=create cb_11 this.st_cc=create st_cc this.mle_cc=create mle_cc this.pb_cc=create pb_cc iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_save this.Control[iCurrent+2]=this.cb_fj this.Control[iCurrent+3]=this.cb_change this.Control[iCurrent+4]=this.lv_fj this.Control[iCurrent+5]=this.cb_6 this.Control[iCurrent+6]=this.cb_7 this.Control[iCurrent+7]=this.cb_9 this.Control[iCurrent+8]=this.cbx_1 this.Control[iCurrent+9]=this.cb_1 this.Control[iCurrent+10]=this.cb_2 this.Control[iCurrent+11]=this.cb_fornextsend this.Control[iCurrent+12]=this.st_1 this.Control[iCurrent+13]=this.em_priority this.Control[iCurrent+14]=this.st_2 this.Control[iCurrent+15]=this.st_3 this.Control[iCurrent+16]=this.st_4 this.Control[iCurrent+17]=this.st_5 this.Control[iCurrent+18]=this.st_6 this.Control[iCurrent+19]=this.st_7 this.Control[iCurrent+20]=this.st_9 this.Control[iCurrent+21]=this.sle_subject this.Control[iCurrent+22]=this.st_10 this.Control[iCurrent+23]=this.sle_mailuser this.Control[iCurrent+24]=this.sle_mailaddress this.Control[iCurrent+25]=this.sle_mailtype this.Control[iCurrent+26]=this.em_mailsize this.Control[iCurrent+27]=this.sle_opemp this.Control[iCurrent+28]=this.em_opdate this.Control[iCurrent+29]=this.em_senddate this.Control[iCurrent+30]=this.sp_v1 this.Control[iCurrent+31]=this.cb_3 this.Control[iCurrent+32]=this.cb_4 this.Control[iCurrent+33]=this.uo_html this.Control[iCurrent+34]=this.st_11 this.Control[iCurrent+35]=this.pb_1 this.Control[iCurrent+36]=this.ddlb_normalflag this.Control[iCurrent+37]=this.st_8 this.Control[iCurrent+38]=this.cb_5 this.Control[iCurrent+39]=this.st_12 this.Control[iCurrent+40]=this.tab_1 this.Control[iCurrent+41]=this.ln_bar this.Control[iCurrent+42]=this.ln_bar2 this.Control[iCurrent+43]=this.r_bar this.Control[iCurrent+44]=this.ddlb_2 this.Control[iCurrent+45]=this.cb_8 this.Control[iCurrent+46]=this.mle_revlist this.Control[iCurrent+47]=this.cbx_auto this.Control[iCurrent+48]=this.cb_send this.Control[iCurrent+49]=this.cbx_hz this.Control[iCurrent+50]=this.cbx_2 this.Control[iCurrent+51]=this.cbx_3 this.Control[iCurrent+52]=this.cb_11 this.Control[iCurrent+53]=this.st_cc this.Control[iCurrent+54]=this.mle_cc this.Control[iCurrent+55]=this.pb_cc end on on w_email_send_new.destroy call super::destroy destroy(this.cb_save) destroy(this.cb_fj) destroy(this.cb_change) destroy(this.lv_fj) destroy(this.cb_6) destroy(this.cb_7) destroy(this.cb_9) destroy(this.cbx_1) destroy(this.cb_1) destroy(this.cb_2) destroy(this.cb_fornextsend) destroy(this.st_1) destroy(this.em_priority) destroy(this.st_2) destroy(this.st_3) destroy(this.st_4) destroy(this.st_5) destroy(this.st_6) destroy(this.st_7) destroy(this.st_9) destroy(this.sle_subject) destroy(this.st_10) destroy(this.sle_mailuser) destroy(this.sle_mailaddress) destroy(this.sle_mailtype) destroy(this.em_mailsize) destroy(this.sle_opemp) destroy(this.em_opdate) destroy(this.em_senddate) destroy(this.sp_v1) destroy(this.cb_3) destroy(this.cb_4) destroy(this.uo_html) destroy(this.st_11) destroy(this.pb_1) destroy(this.ddlb_normalflag) destroy(this.st_8) destroy(this.cb_5) destroy(this.st_12) destroy(this.tab_1) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) destroy(this.ddlb_2) destroy(this.cb_8) destroy(this.mle_revlist) destroy(this.cbx_auto) destroy(this.cb_send) destroy(this.cbx_hz) destroy(this.cbx_2) destroy(this.cbx_3) destroy(this.cb_11) destroy(this.st_cc) destroy(this.mle_cc) destroy(this.pb_cc) end on event resize;call super::resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width r_bar.Width = THIS.Width Long w_width,w_height w_width = 3602 w_height = 2300 IF newwidth < w_width THEN THIS.Width = w_width IF newheight < w_height THEN THIS.Height = w_height sle_subject.width = this.width - sle_subject.x - 68 mle_revlist.width = sle_subject.width - pb_1.width pb_1.x = mle_revlist.x + mle_revlist.width //long ll_mover //ll_mover = this.width - 40 - uo_1.width //uo_1.uo_1.width = uo_1.uo_1.width + ll_mover //uo_1.width = this.width - 40 //uo_1.height = this.height - uo_1.y - 150 tab_1.y=uo_html.y uo_html.Width = THIS.Width - 40 - tab_1.Width lv_fj.Width = uo_html.Width tab_1.x = uo_html.Width + uo_html.x + 20 sp_v1.x = uo_html.width + uo_html.x cb_6.X = tab_1.X cb_7.X = cb_6.X + cb_6.Width cb_9.X = cb_7.X + cb_7.Width cbx_1.X = cb_9.X + cb_9.Width + 30 cb_1.X = cbx_1.X + cbx_1.Width + 30 //IF cb_1.Text <> '︽' THEN // tab_1.Height = THIS.Height - tab_1.y - 100 //// tv_1.Visible = FALSE //ELSE // tab_1.Height = (THIS.Height - tab_1.y - 84 ) /2 - 5 //// tv_1.Height = tab_1.Height - 134 //// sle_filter.y = tab_1.Y + tab_1.Height //// tv_1.Y = tab_1.Y + tab_1.Height + 89 //// tv_1.Visible = TRUE //END IF tab_1.Height = THIS.Height - tab_1.y - 150 IF have_fj THEN uo_html.Height = THIS.Height - uo_html.y - lv_fj.Height - 150 lv_fj.Visible = TRUE ELSE uo_html.Height = THIS.Height - uo_html.y - 150 lv_fj.Visible = FALSE END IF lv_fj.Y = uo_html.Y + uo_html.Height + 5 sp_v1.height = this.height - sp_v1.y - 150 dw_revlist.width=tab_1.tabpage_1.width dw_revlist.height=tab_1.tabpage_1.height dw_revlist.x=0 dw_revlist.y=0 tab_1.tabpage_2.dw_2.width=tab_1.tabpage_2.width tab_1.tabpage_2.dw_2.height=tab_1.tabpage_2.height tab_1.tabpage_3.dw_cc.width=tab_1.tabpage_2.width tab_1.tabpage_3.dw_cc.height=tab_1.tabpage_2.height end event event open;commit_tran = sqlca dw_revlist = tab_1.tabpage_1.dw_1 dw_cc= tab_1.tabpage_3.dw_cc dw_2 = tab_1.tabpage_2.dw_2 //cb_8.visible=false Long ll_ConnectionID String arg_msg Int li_ifexit = 0 IF sys_email_sqlca.DBHandle() > 0 THEN fj_tran = sys_email_sqlca ELSE MessageBox('系统提示','要使用邮件功能,请先定义邮件数据库') li_ifexit = 1 END IF IF li_ifexit = 0 THEN dw_revlist.SetTransObject (fj_tran) dw_cc.SetTransObject (fj_tran) tab_1.tabpage_2.dw_2.SetTransObject(fj_tran) // tab_1.tabpage_2.dw_2.retrieve(publ_userid,paperStyle) obj_email = Create uo_email obj_email.commit_tran = commit_tran obj_email.fj_tran = fj_tran String ls_msg s_set = Message.PowerObjectParm IF wf_init(ls_msg) = 0 THEN MessageBox('错误',ls_msg,stopsign!,OK!) RETURN END IF wf_fjcount() Long sp_v1_x sp_v1_x = Long(f_ProfileString(sys_empid, "w_email_send_sp_v1", "x", '2624')) sp_v1.X = sp_v1_x uo_html.Width = sp_v1.X - 5 lv_fj.Width = sp_v1.X - 5 dw_revlist.X = sp_v1.X + 5 sp_v1.of_reset() sp_v1.of_register(uo_html, sp_v1.Left) sp_v1.of_register(lv_fj, sp_v1.Left) sp_v1.of_register(dw_revlist, sp_v1.Right) sp_v1.uf_possplitbar(uo_html) This.TriggerEvent(Resize!) ELSE cb_exit.PostEvent(Clicked!) END IF //未完成功能隐藏 //tab_1.tabpage_2.visible=false datastore ds ds = Create datastore ds.DataObject = 'dw_email_paperstyle' ds.SetTrans(fj_tran) ds.Retrieve() Long cnt tab_1.tabpage_2.ddlb_1.Clear() FOR cnt = 1 To ds.RowCount() tab_1.tabpage_2.ddlb_1.AddItem(ds.Object.Style[cnt]) NEXT IF ds.RowCount() > 0 THEN tab_1.tabpage_2.ddlb_1.SelectItem(1) paperStyle = tab_1.tabpage_2.ddlb_1.Text END IF Destroy ds wf_retrieve_sign() //回复带内容 IF s_set.ID <> 0 THEN wf_reply(s_set.ID) GOTO next1 END IF String body body = ' '& +'
 
'& +' '& +' '& +' '& +' '& +'
'& +'  '& +' '& +' '& +'
' //body=''& //+''& //+''& //+''& //+''& //+''& //+''& //+'
'& //+'
'& //+'
 
'& //+'
 
'& //+'
'& //+'
'& //+'
'& //+'

' uo_html.uf_sethtml(body) //uo_html.uf_getfont() //uo_html.uf_setcontenteditable('false') wf_html_to_text() //为了解决-------原始邮件-------- //可以删的问题 next1: uo_html.uf_setcontenteditable('true') uo_html.uf_getfont() tab_1.tabpage_2.dw_2.Retrieve(publ_userid,paperStyle) wf_html_to_text() //为了解决-------原始邮件--------图片 wf_move_cc() if s_set.reltype<>3 then this.ddlb_2.text=ddlb_2.text(2) ddlb_2.trigger event selectionchanged(2) end if //可以删的问题 end event event ue_before_open;call super::ue_before_open;////dw_rep = tab_1.tabpage_1.dw_rep ////dw_cust = tab_1.tabpage_3.dw_cust ////dw_cust_rep = tab_1.tabpage_3.dw_cust_rep ////dw_spt = tab_1.tabpage_4.dw_spt ////dw_spt_rep = tab_1.tabpage_4.dw_spt_rep ////dw_rep.SetTransObject (sqlca) ////dw_cust.SetTransObject (sqlca) ////dw_spt.SetTransObject (sqlca) // //commit_tran = sqlca // //Long ll_ConnectionID //string arg_msg //IF sys_email_sqlca.DBHandle() > 0 THEN // fj_tran = sys_email_sqlca //else // messagebox('系统提示','要使用邮件功能,请先定义邮件数据库') // close(this) //end if // //dw_revlist.SetTransObject (fj_tran) ////dw_cust_rep.SetTransObject (sqlca) ////dw_spt_rep.SetTransObject (sqlca) //obj_email = CREATE uo_email //obj_email.commit_tran = Commit_Tran //obj_email.fj_tran = fj_tran // ////IF NOT f_power_ind(1321) THEN //// tab_1.tabpage_3.Visible = FALSE ////END IF // // ////IF NOT f_power_ind(1322) THEN //// tab_1.tabpage_4.Visible = FALSE ////END IF // end event event close;call super::close;uo_html.uf_setfont() destroy obj_email end event event timer;call super::timer;//if not ib_InitHtml then // if isnull(s_send.htmlbody) or len(s_send.htmlbody) <= 0 then // if uo_html.uf_sethtml(s_send.textbody) = 1 then // ib_InitHtml = true // timer(0) // end if // else // if uo_html.uf_sethtml(string(s_send.htmlbody)) = 1 then // ib_InitHtml = true // timer(0) // end if // end if //end if timer(0) string newStr //messagebox('','timer') newStr=uo_html.uf_gethtml() //messagebox('1',newStr) newStr=wf_make_newcontent(newStr) //messagebox('2',newStr) uo_html.uf_sethtml(newStr) end event event other;call super::other;////在窗口的other事件编写脚本: ////处理系统热键 // //IF wparam = atomid And atomid <> 0 THEN // //处理 // wf_picturetofile() //END IF //TRY // IF Not IsNull(ClassName(GetFocus())) THEN // // IF ClassName(GetFocus()) <> "ole_web" THEN // MessageBox("",ClassName(GetFocus())) // ELSE // RETURN // END IF // END IF // // // //Catch(runtimeerror err) // // RETURN //END TRY ////注册热键 //long ll_RC //string ls_atomid //ls_atomid = 'myatomid' //atomid = GlobalAddAtom(ls_atomid) //sys_handle=Handle(this) ////得到惟一的ID,保证不和其他应用程序发生冲突 //ll_RC = RegisterHotKey(sys_handle, atomid, MOD_CONTROL , 86) ////注册的热键为Ctrl+F ,70为'F' 86 v ////如果组合键,可用MOD_CONTROL + MOD_ALT等ctrl +v //if ll_RC = 0 then messagebox("Error!","热键注册错误") ////热键注册冲突 //constant integer MOD_ALT = 1 //ALT键 //constant integer MOD_CONTROL = 2 //CTRL键 //constant integer MOD_SHIFT = 4 //SHIFT键 // end event type cb_func from w_publ_base`cb_func within w_email_send_new boolean visible = false integer x = 1426 integer width = 151 integer height = 164 end type type cb_exit from w_publ_base`cb_exit within w_email_send_new integer x = 1632 integer y = 4 integer width = 165 integer height = 156 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_save from uo_imflatbutton within w_email_send_new integer x = 768 integer width = 288 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "保存并退出" string normalpicname = "email_saveexit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF dw_edit_mode THEN RETURN String ls_msg if sle_mailtype.text <> '未发' then // 另存 s_send.sendid = 0 sle_mailtype.text = '未发' end if IF wf_save(ls_msg) = 0 THEN MessageBox('错误',ls_msg, StopSign!, OK! ) ELSE MessageBox('提示',"保存成功!", Information!, OK! ) END IF Close(PARENT) end event type cb_fj from uo_imflatbutton within w_email_send_new integer x = 1225 integer width = 165 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "附件" string normalpicname = "email_fj.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) IF lv_fj.TotalItems() = 0 THEN // PARENT.TriggerEvent('ue_addfj') //ELSE m_Dfc_Control_PopupMenu dmPopupMenu String menustr,ls_level menustr = "Text=添加附件~tEvent=ue_addfj" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=删除附件~tEvent=ue_delfj" menustr = menustr + "|" + "Text=打开附件~tEvent=ue_runfj" menustr = menustr + "|" + "Text=另存附件~tEvent=ue_saveas" menustr = menustr + "|" + "Text=云盘附件~tEvent=ue_Cloudfj" IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = CREATE m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(THIS, menustr) dmPopupMenu.mf_PopMenu() DESTROY dmPopupMenu END IF END IF end event type cb_change from uo_imflatbutton within w_email_send_new integer x = 1390 integer width = 238 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "切换账号" string normalpicname = "email_view7.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;long ll_id //传递参数使用 ll_id = s_set.mailid OpenWithParm(w_email_set,ll_id) s_email_set s_return Long ll_row s_return = Message.PowerObjectParm IF s_return.mailid > 0 THEN s_send.sendid = 0 s_send.boxid = 0 s_send.mailid = s_return.mailid s_send.mailaddress = s_return.mailaddress sle_mailuser.Text = s_set.mailuser sle_mailaddress.Text = s_send.mailaddress END IF end event type lv_fj from uo_email_lv within w_email_send_new integer x = 59 integer y = 2268 integer width = 2565 integer height = 256 integer taborder = 30 boolean bringtotop = true boolean extendedselect = true boolean hideselection = false string smallpicturename[] = {"p15drive_fdd.ico"} end type event rightclicked;Long ls_fjid String ls_fjname listviewitem l_lvi s_email_lvfj s_lvfj m_Dfc_Control_PopupMenu dmPopupMenu String menustr,ls_level menustr = "Text=添加附件~tEvent=ue_addfj" IF Index > 0 THEN THIS.GetItem( Index, l_lvi) s_lvfj = l_lvi.Data ls_fjid = s_lvfj.fjid ls_fjname = l_lvi.Label ins_cur_fjid = s_lvfj.fjid // ins_cur_fjname = l_lvi.Label ls_filedata = s_lvfj.fileblob ins_index = Index // ins_cur_fjtype = s_lvfj.fjtype menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=删除附件~tEvent=ue_delfj" IF This.TotalSelected() = 1 THEN menustr = menustr+"|"+"Text=打开附件~tEvent=ue_runfj" END IF menustr = menustr + "|" + "Text=另存附件~tEvent=ue_saveas" ELSE ins_index = 0 END IF IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = CREATE m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(THIS, menustr) dmPopupMenu.mf_PopMenu() DESTROY dmPopupMenu END IF // // // // // //menustr = "Text=添加附件~tEvent=ue_addfj" //menustr = menustr + "|" + "Text=删除附件~tEvent=ue_delfj" //menustr = menustr + "|" + "Text=-" //menustr = menustr + "|" + "Text=打开附件~tEvent=ue_runfj" //menustr = menustr + "|" + "Text=另存附件~tEvent=ue_saveas" // // //IF Len(Trim(menustr)) <> 0 THEN // dmPopupMenu = CREATE m_Dfc_Control_PopupMenu // dmPopupMenu.mf_BuildMenu(THIS, menustr) // dmPopupMenu.mf_PopMenu() // DESTROY dmPopupMenu //END IF end event event doubleclicked; ListViewItem lvi s_email_lvfj lvfj blob lb string ls_msg if ins_index > 0 then if lv_fj.GetItem(ins_index, lvi) = 1 then lvfj = lvi.data if lvfj.filetype = C_Sys_admsg_fj then if wf_admsg_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 then MessageBox('错误', ls_msg, stopsign!) return end if elseif lvfj.filetype = C_u_email_fj then if wf_mail_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 then MessageBox('错误', ls_msg, stopsign!) return end if else // DONE:后加附件 lb = lvfj.fileblob end if wf_blob_runfj(lb, lvfj.filename) end if end if //if cur_set.mailid > 0 then // call super::doubleclicked //else // 内部消息 // // //附件下载并打开 // String lsNull // setnull(lsNull) // integer rslt = 1 // string errmsg, ls_pathname // listviewitem l_lvi // s_email_lvfj s_lvfj // IF this.ins_index > 0 THEN // THIS.GetItem( this.ins_index, l_lvi) // s_lvfj = l_lvi.Data // this.ins_cur_fjid = s_lvfj.fjid // this.ins_cur_fjname = l_lvi.Label // IF this.ins_cur_fjname = '' THEN GOTO ext // ELSE // GOTO ext // END IF // //下载附件并打开 // ls_pathname = sys_cur_path+this.fjfilepathname+'\'+this.ins_cur_fjname // IF FileExists(ls_pathname) THEN FileDelete(ls_pathname) // IF this.ins_cur_fjid > 0 THEN // selectblob fileblob INTO :this.ls_filedata // from Sys_admsg_fj // where fjid = :this.ins_cur_fjid; // if sqlca.sqlcode <> 0 then // rslt = 0 // errmsg = '下载附件失败' // goto ext // end if // ELSE // this.ls_filedata = s_lvfj.fileblob // END IF // // IF f_blobtofile(ls_pathname,this.ls_filedata,errmsg) = 0 THEN // rslt = 0 // GOTO ext // END IF // // //打开附件 // ShellExecute32( Handle(THIS), lsNull, ls_pathname, lsNull, lsNull, 1 ) // // ext: // IF rslt = 0 THEN // MessageBox('系统提示',errmsg) // END IF // // // //end if ////附件下载并打开 //Integer i //Long ls_i,ls_j,ls_newrow,ls_filesize //Int rslt = 1 //String Pathname,ls_filename //String errmsg //String ls_filetypename //Long pos1,lrow //String ls_para,ls_downarg[] //listviewitem l_lvi //s_email_lvfj s_lvfj //String lsNull //uo_email obj_email_tmp //obj_email_tmp = CREATE uo_email //obj_email_tmp.fj_tran = sqlca ////取附件信息 //IF ins_index > 0 THEN // THIS.GetItem( ins_index, l_lvi) // s_lvfj = l_lvi.Data // ins_cur_fjid = s_lvfj.fjid // ins_cur_fjname = l_lvi.Label // IF ins_cur_fjname = '' THEN GOTO ext //ELSE // GOTO ext //END IF ////下载附件并打开 //Pathname = sys_cur_path+fjfilepathname+'\'+ins_cur_fjname //IF FileExists(Pathname) THEN FileDelete(Pathname) //IF ins_cur_fjid > 0 THEN // if s_lvfj.fjtype = 2 then // SELECTBLOB Fileblob // INTO :ls_filedata // FROM Sys_admsg_fj // Where (fjid = :ins_cur_fjid); // if sqlca.sqlcode <> 0 then // rslt = 0 // errmsg = sqlca.sqlerrtext // goto ext // end if // else // IF obj_email_tmp.f_down_fj( ins_cur_fjid, ins_cur_fjname, ls_filedata, errmsg) = 0 THEN // rslt = 0 // GOTO ext // END IF // end if //ELSE // ls_filedata = s_lvfj.fileblob //END IF // //IF f_blobtofile(Pathname,ls_filedata,errmsg) = 0 THEN // rslt = 0 // GOTO ext //END IF // ////打开附件 //ShellExecute32( Handle(THIS), lsNull, Pathname, lsNull, lsNull, 1 ) // //ext: //IF rslt = 0 THEN // MessageBox('系统提示',errmsg) //END IF //DESTROY obj_email_tmp // end event event ue_saveas; ListViewItem lvi s_email_lvfj lvfj Blob lb Long ll_i, ll_cnt = 0 ListViewItem selectedlvi[] String ls_msg, ls_sum IF ins_index > 0 THEN IF This.TotalSelected() <= 1 THEN IF lv_fj.GetItem(ins_index, lvi) = 1 THEN lvfj = lvi.Data IF lvfj.FileType = C_Sys_admsg_fj THEN IF wf_admsg_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF lvfj.FileType = C_u_email_fj THEN IF wf_mail_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSE // DONE: 后加附件 lb = lvfj.fileblob END IF wf_blob_saveas(lb, lvfj.Filename) END IF ELSE // 多选 String ls_filepath String ls_filename IF GetFolder('选择保存路径', ls_filepath) <> 1 THEN RETURN IF Mid(ls_filepath, Len(ls_filepath), 1) <> '\' THEN ls_filepath += '\' END IF FOR ll_i = 1 To This.TotalItems() IF This.GetItem(ll_i, lvi) = 1 THEN IF lvi.Selected THEN ll_cnt++ selectedlvi[ll_cnt] = lvi END IF END IF NEXT FOR ll_i = 1 To ll_cnt lvfj = selectedlvi[ll_i].Data IF lvfj.FileType = C_Sys_admsg_fj THEN IF wf_admsg_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN ls_sum = ls_sum + ls_msg + '~r~n' CONTINUE END IF ELSEIF lvfj.FileType = C_u_email_fj THEN IF wf_mail_getfjblob(lvfj.fjid, lb, ls_msg) <> 1 THEN ls_sum = ls_sum + ls_msg + '~r~n' CONTINUE END IF ELSEIF lvfj.FileType = C_from_file THEN lb = lvfj.fileblob ELSE ls_sum = ls_sum + '未定义FileType:' + lvfj.FileType + '~r~n' CONTINUE END IF ls_filename = ls_filepath + lvfj.Filename IF FileExists(ls_filename) THEN IF MessageBox('提问', lvfj.Filename + '已经存在是否覆盖?', Question!, YesNo!) <> 1 THEN CONTINUE END IF END IF IF f_blobtofile(ls_filename, lb, ls_msg) <> 1 THEN ls_sum = ls_sum + ls_msg + '~r~n' CONTINUE END IF NEXT IF ls_sum <> '' THEN MessageBox('错误', ls_sum) ELSE MessageBox('提示', '保存成功') END IF END IF END IF // //附件另存为 //Integer i //Long ls_i,ls_j,ls_newrow,ls_filesize //String Pathname,ls_filename //String errmsg,arg_msg //String ls_filetypename //Long pos1,lrow,rslt //String ls_para,ls_downarg[] //uo_email obj_email_tmp //obj_email_tmp = CREATE uo_email //obj_email_tmp.commit_tran = sqlca //obj_email_tmp.fj_tran = sqlca //Pathname = ins_cur_fjname // ////************************************************************* // //pos1 = Pos(ins_cur_fjname,'.',1) //IF pos1 > 0 THEN // ls_filetypename = Mid(ins_cur_fjname,pos1 + 1) // i = GetFileSaveName("另存为",Pathname,ls_filename,"*","*."+ls_filetypename+",*."+ls_filetypename) //ELSE // ls_filetypename = '' // i = GetFileSaveName("另存为",Pathname,ls_filename,"*","*.*,*.*") //END IF // //IF i = 1 AND Trim(Pathname) <> '' THEN // if ins_cur_fjtype = 2 then // SELECTBLOB Fileblob // INTO :ls_filedata // FROM Sys_admsg_fj // Where (fjid = :ins_cur_fjid); // if sqlca.sqlcode <> 0 then // MessageBox('系统提示',arg_msg) // RETURN // end if // elseif ins_cur_fjtype = 0 OR ins_cur_fjtype = 1 then // IF obj_email_tmp.f_down_fj( ins_cur_fjid, ins_cur_fjname, ls_filedata, errmsg) = 0 THEN // MessageBox('系统提示',arg_msg) // RETURN // END IF // else // MessageBox('系统提示','未知附件类型') // RETURN // end if // // IF f_blobtofile(Pathname,ls_filedata,errmsg) = 0 THEN // MessageBox('系统提示',errmsg) // RETURN // ELSE // // MessageBox('系统提示','附件保存成功!'+'~r~n'+'保存路径:'+Pathname) // END IF //END IF // end event type cb_6 from commandbutton within w_email_send_new boolean visible = false integer x = 2583 integer y = 576 integer width = 187 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "刷新" end type event clicked;//dw_send.AcceptText() // //IF dw_send.Object.sendid[dw_send.GetRow()] > 0 THEN // dw_revlist.Retrieve(dw_send.Object.sendid[dw_send.GetRow()]) //END IF // end event type cb_7 from commandbutton within w_email_send_new boolean visible = false integer x = 2770 integer y = 576 integer width = 187 integer height = 84 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "插入" end type event clicked;//Long ll_row // //ll_row = dw_revlist.InsertRow(0) //dw_revlist.Object.sendid[ll_row] = dw_send.Object.sendid[dw_send.GetRow()] //dw_revlist.Object.printid[ll_row] = ll_row //dw_revlist.Object.reltype[ll_row] = 3 //dw_revlist.Object.relid[ll_row] = 0 // end event type cb_9 from commandbutton within w_email_send_new boolean visible = false integer x = 2958 integer y = 576 integer width = 187 integer height = 84 integer taborder = 70 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "删除" end type event clicked;Long i IF dw_revlist.RowCount() = 0 THEN RETURN dw_revlist.AcceptText() FOR i = dw_revlist.RowCount() TO 1 STEP -1 IF dw_revlist.Object.isselect[i] = 1 THEN dw_revlist.DeleteRow (i) END IF NEXT end event type cbx_1 from checkbox within w_email_send_new boolean visible = false integer x = 3163 integer y = 588 integer width = 224 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "全选" end type event clicked;//IF dw_revlist.RowCount() <= 0 THEN RETURN //Long li //IF THIS.Checked THEN // FOR li = 1 TO dw_revlist.RowCount() // dw_revlist.Object.isselect[li] = 1 // NEXT //ELSE // FOR li = 1 TO dw_send.RowCount() // dw_revlist.Object.isselect[li] = 0 // NEXT //END IF // // end event type cb_1 from commandbutton within w_email_send_new boolean visible = false integer x = 3461 integer y = 576 integer width = 82 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "︽" end type event clicked;IF cb_1.Text <> '︽' THEN cb_1.Text = '︽' ELSE cb_1.Text = '︾' END IF parent.triggerevent(resize!) end event type cb_2 from uo_imflatbutton within w_email_send_new integer x = 430 integer width = 165 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "保存" string normalpicname = "SAVE.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF dw_edit_mode THEN RETURN String ls_msg if sle_mailtype.text <> '未发' then // 另存 s_send.sendid = 0 sle_mailtype.text = '未发' end if IF wf_save(ls_msg) = 0 THEN MessageBox('错误',ls_msg, StopSign!, OK! ) ELSE MessageBox('提示',"保存成功!", Information!, OK! ) END IF end event type cb_fornextsend from uo_imflatbutton within w_email_send_new boolean visible = false integer x = 2007 integer width = 151 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "发送" string normalpicname = "email_view2.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;//IF dw_edit_mode THEN RETURN // //listviewitem l_lvi //s_email_lvfj s_lvfj //String ls_pathname,errmsg //Long k,ll_cnt_lp //long count = 20 //Open(w_sys_wait_jdt) //初始化进度条 //w_sys_wait_jdt.Show() //w_sys_wait_jdt.wf_accepttol(count) // //FOR k = 1 TO count // // ll_cnt_lp++ // w_sys_wait_jdt.st_msg.Text = " 正在发送邮件(" + String(k) + "/" + String(count) + ")." //进度信息 // w_sys_wait_jdt.wf_inc(ll_cnt_lp) // // //发邮件 // dw_revlist.AcceptText() // // IF wf_check(errmsg) = 0 THEN // MessageBox('错误',errmsg, StopSign!, OK! ) // RETURN // END IF //dw_send.Object.priority[dw_send.GetRow()] = long(em_priority.text) //dw_send.Object.mailuser[dw_send.GetRow()] = sle_mailuser.Text //dw_send.Object.mailaddress[dw_send.GetRow()] = sle_mailaddress.Text //dw_send.Object.maitype[dw_send.GetRow()] = f_GetStatusValue(sle_mailtype.text) //dw_send.object.u_email_send_revlist[dw_send.GetRow()] = mle_revlist.text //dw_send.Object.Subject[dw_send.Getrow()] = sle_subject.text // // dw_send.AcceptText() // oleobject jmail // jmail = CREATE oleobject // jmail.ConnectToNewObject("JMail.Message") // jmail.Charset = 'GB2312' // jmail.ISOEncodeHeaders = TRUE // jmail.silent = TRUE // jmail.Logging = TRUE // jmail.FROM = s_set.mailAddress //发件人邮箱 // jmail.FromName = s_set.mailuser //发件人 // jmail.Subject = Trim(dw_send.Object.Subject[dw_send.GetRow()]) //邮件主题 // jmail.MailServerUserName = s_set.mailAddress //发件邮箱登录账户 // jmail.MailServerPassword = s_set.mailpsw //发件邮箱用户密码 // jmail.Priority = dw_send.Object.Priority[dw_send.GetRow()] //优先级 // jmail.Body = Trim(mle_text.Text) + "~r~n" //邮件内容 // // Long i // FOR i = 1 TO dw_revlist.RowCount() // IF Trim(dw_revlist.Object.revaddress[i]) <> '' THEN // jmail.AddRecipient(Trim(dw_revlist.Object.revaddress[i])) // END IF // NEXT // /////添加附件 // IF lv_fj.TotalItems() > 0 THEN // // ls_pathname = '' // FOR i = 1 TO lv_fj.TotalItems() // lv_fj.GetItem(i, l_lvi) // ls_pathname = l_lvi.Label // s_lvfj = l_lvi.Data // ls_pathname = sys_cur_path+fjfilepathname+'\'+ls_pathname // IF FileExists(ls_pathname) THEN FileDelete(ls_pathname) // // IF s_lvfj.fjid > 0 THEN // SELECTBLOB Fileblob // INTO :s_lvfj.Fileblob // FROM u_email_fj // Where (fjid = :s_lvfj.fjid); // // IF sqlca.SQLCode <> 0 THEN // MessageBox('系统提示',errmsg) // GOTO ext // END IF // END IF // // IF f_blobtofile(ls_pathname,s_lvfj.Fileblob,errmsg) = 0 THEN // MessageBox('系统提示',errmsg) // GOTO ext // ELSE // jmail.AddAttachment(ls_pathname) // END IF // NEXT // END IF // // dw_send.Object.mailsize[dw_send.GetRow()] = jmail.size // dw_send.Object.senddate[dw_send.GetRow()] = jmail.Date // dw_send.Object.mailtype[dw_send.GetRow()] = 1 // ///发送 // IF jmail.Send(s_set.smtpset) THEN //ls_host为发件邮箱服务器 // // jmail.ClearAttachments() // jmail.ClearRecipients() // dw_send.AcceptText() // IF dw_send.GetRow() > 0 AND dw_send.Object.sendid[dw_send.GetRow()] > 0 THEN // //更新发送时间,邮件大小 // Long ll_sendid // String ls_msg // ll_sendid = dw_send.Object.sendid[dw_send.GetRow()] // // IF obj_email.f_update_send(ll_sendid,jmail.Date,jmail.size,ls_msg) = 0 THEN // MessageBox('错误',ls_msg, StopSign!, OK! ) // GOTO ext // END IF // END IF // // ELSE // MessageBox('错误',"邮箱设置不正确或者没有连接网络", StopSign!, OK! ) // jmail.Close() // DESTROY jmail // goto ext1 // END IF // // ext: // jmail.Close() // DESTROY jmail //NEXT //ext1: //Close(w_sys_wait_jdt) end event type st_1 from statictext within w_email_send_new boolean visible = false integer x = 50 integer y = 220 integer width = 242 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "优先级" alignment alignment = right! long bordercolor = 134217739 boolean focusrectangle = false end type type em_priority from editmask within w_email_send_new boolean visible = false integer x = 2336 integer y = 164 integer width = 393 integer height = 84 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 string text = "1" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "#" boolean autoskip = true boolean spin = true double increment = 1 string minmax = "1~~5" end type type st_2 from statictext within w_email_send_new integer x = 18 integer y = 220 integer width = 242 integer height = 52 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 = "发件人:" alignment alignment = right! boolean focusrectangle = false end type type st_3 from statictext within w_email_send_new integer x = 1157 integer y = 220 integer width = 288 integer height = 52 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 = "发件邮箱:" alignment alignment = right! boolean focusrectangle = false end type type st_4 from statictext within w_email_send_new integer x = 27 integer y = 308 integer width = 288 integer height = 52 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 = "邮件类型:" alignment alignment = right! boolean focusrectangle = false end type type st_5 from statictext within w_email_send_new integer x = 521 integer y = 308 integer width = 261 integer height = 52 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 = "大小(K):" alignment alignment = right! boolean focusrectangle = false end type type st_6 from statictext within w_email_send_new integer x = 1801 integer y = 308 integer width = 288 integer height = 52 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 = "建立时间:" alignment alignment = right! boolean focusrectangle = false end type type st_7 from statictext within w_email_send_new integer x = 2606 integer y = 308 integer width = 288 integer height = 52 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 = "发送时间:" alignment alignment = right! boolean focusrectangle = false end type type st_9 from statictext within w_email_send_new integer x = 50 integer y = 700 integer width = 242 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "主题" alignment alignment = right! boolean focusrectangle = false end type type sle_subject from singlelineedit within w_email_send_new integer x = 311 integer y = 684 integer width = 3223 integer height = 84 integer taborder = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 borderstyle borderstyle = stylelowered! end type event getfocus;unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) end event type st_10 from statictext within w_email_send_new integer x = 1111 integer y = 308 integer width = 233 integer height = 52 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 = "建立人:" alignment alignment = right! boolean focusrectangle = false end type type sle_mailuser from statictext within w_email_send_new integer x = 261 integer y = 220 integer width = 905 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean focusrectangle = false end type type sle_mailaddress from statictext within w_email_send_new integer x = 1449 integer y = 220 integer width = 1070 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean focusrectangle = false end type type sle_mailtype from statictext within w_email_send_new integer x = 306 integer y = 308 integer width = 137 integer height = 52 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 = "未发" boolean focusrectangle = false end type type em_mailsize from statictext within w_email_send_new integer x = 763 integer y = 308 integer width = 238 integer height = 52 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 = "0" boolean focusrectangle = false end type type sle_opemp from statictext within w_email_send_new integer x = 1335 integer y = 308 integer width = 370 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean focusrectangle = false end type type em_opdate from statictext within w_email_send_new integer x = 2075 integer y = 308 integer width = 466 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean focusrectangle = false end type type em_senddate from statictext within w_email_send_new integer x = 2903 integer y = 308 integer width = 517 integer height = 52 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean focusrectangle = false end type type sp_v1 from u_lbs_stsplitbar within w_email_send_new integer x = 2683 integer y = 792 integer width = 14 integer height = 1420 boolean bringtotop = true long backcolor = 16777215 integer ii_minobjectsize = 600 end type type cb_3 from uo_imflatbutton within w_email_send_new integer x = 1056 integer width = 165 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "重置" string normalpicname = "refresh.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;s_set.sendid = s_send.sendid string ls_msg integer i IF wf_init(ls_msg) = 0 THEN MessageBox('错误',ls_msg,stopsign!,OK!) RETURN END IF wf_fjcount() parent.triggerevent('resize') end event type cb_4 from uo_imflatbutton within w_email_send_new integer x = 599 integer width = 165 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "另存" string normalpicname = "SAVE.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF dw_edit_mode THEN RETURN String ls_msg s_send.sendid = 0 sle_mailtype.text = '未发' IF wf_save(ls_msg) = 0 THEN MessageBox('错误',ls_msg, StopSign!, OK! ) ELSE MessageBox('提示',"保存成功!", Information!, OK! ) END IF end event type uo_html from uo_html_editor within w_email_send_new integer x = 59 integer y = 792 integer width = 2574 integer height = 768 integer taborder = 30 boolean bringtotop = true boolean border = true borderstyle borderstyle = stylelowered! end type on uo_html.destroy call uo_html_editor::destroy end on event losefocus;call super::losefocus;messagebox("","xxxx") end event type st_11 from uo_text_m within w_email_send_new integer x = 110 integer y = 396 integer width = 183 integer height = 60 boolean bringtotop = true integer textsize = -9 boolean underline = true long textcolor = 16711680 long backcolor = 134217739 string text = "收件人" alignment alignment = right! integer ifonraise = 5 end type event clicked;call super::clicked;parent.triggerevent('ue_sendmx') end event type pb_1 from picturebutton within w_email_send_new integer x = 3200 integer y = 372 integer width = 110 integer height = 96 integer taborder = 90 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string picturename = "people.bmp" alignment htextalign = left! string powertiptext = "收件人" end type event clicked;parent.triggerevent('ue_sendmx_cust') end event type ddlb_normalflag from dropdownlistbox within w_email_send_new integer x = 3150 integer y = 200 integer width = 530 integer height = 264 integer taborder = 70 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 boolean sorted = false string item[] = {"正常[0]","暗送(群发保密)[1]","循环(群发单显)[2]"} borderstyle borderstyle = stylelowered! end type event selectionchanged;IF Index = 3 THEN mle_cc.Text = "" mle_cc.Enabled = False pb_cc.Enabled = False st_cc.Enabled = False ELSE mle_cc.Enabled = True pb_cc.Enabled = True st_cc.Enabled = True END IF end event type st_8 from statictext within w_email_send_new integer x = 2871 integer y = 224 integer width = 274 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "发送模式:" boolean focusrectangle = false end type type cb_5 from uo_imflatbutton within w_email_send_new integer x = 1801 integer y = 24 integer width = 384 integer height = 80 integer taborder = 40 boolean bringtotop = true string text = "插入客户名称" end type event clicked;call super::clicked;string ls_old ls_old = Clipboard() Clipboard("[客户名称]") uo_html.ole_web.object.Document.ExecCommand("Paste", true, 0) Clipboard(ls_old) uo_html.ole_web.setfocus() uo_html.uf_refreshtoolbar() end event type st_12 from statictext within w_email_send_new integer x = 1806 integer y = 112 integer width = 1413 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 255 long backcolor = 67108864 string text = "在循环模式下,发件时[客户名称]会自动替换成收件人名称" boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 this.bordercolor = 14215660 end event type tab_1 from tab within w_email_send_new integer x = 2720 integer y = 776 integer width = 978 integer height = 1008 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean raggedright = true boolean focusonbuttondown = true integer selectedtab = 1 tabpage_1 tabpage_1 tabpage_2 tabpage_2 tabpage_3 tabpage_3 end type on tab_1.create this.tabpage_1=create tabpage_1 this.tabpage_2=create tabpage_2 this.tabpage_3=create tabpage_3 this.Control[]={this.tabpage_1,& this.tabpage_2,& this.tabpage_3} end on on tab_1.destroy destroy(this.tabpage_1) destroy(this.tabpage_2) destroy(this.tabpage_3) end on type tabpage_1 from userobject within tab_1 string tag = "a" integer x = 18 integer y = 96 integer width = 942 integer height = 896 long backcolor = 134217739 string text = "联系人" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_1 dw_1 end type on tabpage_1.create this.dw_1=create dw_1 this.Control[]={this.dw_1} end on on tabpage_1.destroy destroy(this.dw_1) end on type dw_1 from u_dw_rbtnfilter within tabpage_1 integer width = 942 integer height = 872 integer taborder = 20 string dataobject = "dw_email_sendmx" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean autosave_columnvisible_use = false end type event losefocus;call super::losefocus;uf_updaterevlist() end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) end event event clicked;call super::clicked;THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) end event type tabpage_2 from userobject within tab_1 integer x = 18 integer y = 96 integer width = 942 integer height = 896 long backcolor = 134217739 string text = "信纸" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 ddlb_1 ddlb_1 st_13 st_13 cb_10 cb_10 dw_2 dw_2 end type on tabpage_2.create this.ddlb_1=create ddlb_1 this.st_13=create st_13 this.cb_10=create cb_10 this.dw_2=create dw_2 this.Control[]={this.ddlb_1,& this.st_13,& this.cb_10,& this.dw_2} end on on tabpage_2.destroy destroy(this.ddlb_1) destroy(this.st_13) destroy(this.cb_10) destroy(this.dw_2) end on type ddlb_1 from dropdownlistbox within tabpage_2 integer x = 329 integer width = 480 integer height = 300 integer taborder = 60 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 borderstyle borderstyle = stylelowered! end type event selectionchanged;string txt paperStyle=this.text dw_2.retrieve(publ_userid,paperStyle) end event type st_13 from statictext within tabpage_2 integer x = 187 integer y = 20 integer width = 151 integer height = 48 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "分组:" boolean focusrectangle = false end type type cb_10 from commandbutton within tabpage_2 integer x = 9 integer y = 8 integer width = 87 integer height = 68 integer taborder = 60 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "+" end type event clicked;s_email_letterpaper s_parm s_parm.paperid=0 s_parm.ownerid=publ_userid //openwithparm(w_email_letterpaper_edit,s_parm) openwithparm(w_email_letterpaper_importmht,s_parm) end event type dw_2 from u_dw_rbtnfilter within tabpage_2 integer x = 9 integer y = 80 integer width = 933 integer height = 748 integer taborder = 20 string dataobject = "dw_email_lettepaper_list" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type event clicked;call super::clicked;Long id unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) IF row = 0 THEN RETURN END IF IF row > This.RowCount() THEN RETURN END IF id = This.Object.paperid[row] //messagebox('',string(dwo.Name)) IF dw_2.DataObject = 'dw_email_lettepaper_list' THEN IF dwo.Name = 'b_1' THEN // IF tab_1.tabpage_2.ddlb_1.Text <> '自定义' THEN RETURN IF This.Object.ownerid[row] <> publ_userid THEN MessageBox('提示','非信纸创建者不能删除该信纸!') RETURN END IF Long cnt This.DeleteRow(row) DELETE u_email_letterpaper WHERE paperid = :id Using fj_tran; IF fj_tran.SQLCode <> 0 THEN ROLLBACK Using fj_tran; dw_2.Retrieve(publ_userid,paperStyle) ELSE COMMIT Using fj_tran; END IF END IF IF dwo.Name = 'papername' THEN string txt='' // txt=uo_html.uf_gettext() wf_setbackground(id) // uo_html.uf_settext('hi') backgroundid = id END IF ELSEIF dw_2.DataObject = 'dw_email_lettepaper' THEN END IF end event event doubleclicked;call super::doubleclicked;IF dwo.Name = 'papername' THEN if this.object.ownerid[row]<>publ_userid then messagebox('提示','非信纸创建者不能修改该信纸!') return end if s_email_letterpaper s_parm s_parm.paperid = dw_2.Object.paperid[dw_2.GetRow()] s_parm.ownerid = publ_userid OpenWithParm(w_email_letterpaper_importmht,s_parm) END IF end event type tabpage_3 from userobject within tab_1 event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 942 integer height = 896 long backcolor = 134217739 string text = "抄送人" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_cc dw_cc end type on tabpage_3.create this.dw_cc=create dw_cc this.Control[]={this.dw_cc} end on on tabpage_3.destroy destroy(this.dw_cc) end on type dw_cc from u_dw_rbtnfilter within tabpage_3 integer y = 8 integer width = 942 integer height = 872 integer taborder = 40 boolean bringtotop = true string dataobject = "dw_email_sendmx" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean autosave_columnvisible_use = false end type event clicked;call super::clicked;THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) end event event losefocus;call super::losefocus;uf_updaterevlist() end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) end event type ln_bar from line within w_email_send_new long linecolor = 268435456 integer linethickness = 4 integer beginy = 172 integer endx = 3200 integer endy = 172 end type type ln_bar2 from line within w_email_send_new long linecolor = 16777215 integer linethickness = 4 integer beginx = 14 integer beginy = 176 integer endx = 3278 integer endy = 176 end type type r_bar from rectangle within w_email_send_new long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 3401 integer width = 87 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 type ddlb_2 from dropdownlistbox within w_email_send_new integer x = 2583 integer y = 28 integer width = 480 integer height = 300 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false borderstyle borderstyle = stylelowered! end type event constructor;// //Long cnt //datastore ds //ds = Create datastore //ds.DataObject = 'dw_email_signlist' //ds.SetTrans(fj_tran) // //ds.Retrieve(publ_userid) //FOR cnt = 1 To ds.RowCount() // //this.insertitem(ds.Object.signname[cnt]+' ,'+string(ds.object.id[cnt]),1) //NEXT // //this.insertitem('不使用签名 ,-1',1) // //destroy ds end event event selectionchanged;String newSign,htmltext,ls_msg,itemtxt,id Long signid,selectid,pos1,pos2 itemtxt = This.Text pos1 = Pos(itemtxt,'[') pos2 = Pos(itemtxt,']') id = Mid(itemtxt,pos1+1,pos2 - pos1 - 1) signid = Long(id) //selectid=this.finditem(this.text,1) //signid=signlist[selectid] IF signid <> -1 THEN SELECT signcontent INTO :newsign FROM u_email_signature WHERE id = :signid Using fj_tran; IF fj_tran.SQLCode <> 0 THEN newSign = '
' END IF ELSE newSign = '
' END IF uo_email_sign uo_sign uo_sign = Create uo_email_sign //messagebox('','ddlb2.select') htmltext = uo_html.uf_gethtml() IF cbx_2.Checked = False THEN uo_sign.uf_changesign(newSign,Ref htmltext,Ref ls_msg) ELSE htmltext = htmltext + newSign END IF // get image from database // /////////////////////////////////////////////////// //string sss //sss='
附件预览
' //htmltext=htmltext + sss uo_html.uf_sethtml(htmltext) end event type cb_8 from uo_imflatbutton within w_email_send_new integer x = 2190 integer y = 24 integer width = 384 integer height = 80 integer taborder = 50 boolean bringtotop = true string text = "插入联系人" end type event clicked;call super::clicked;string ls_old ls_old = Clipboard() Clipboard("[联系人]") uo_html.ole_web.object.Document.ExecCommand("Paste", true, 0) Clipboard(ls_old) uo_html.ole_web.setfocus() uo_html.uf_refreshtoolbar() end event type mle_revlist from uo_mle_demo within w_email_send_new integer x = 311 integer y = 368 integer width = 2871 integer height = 200 integer taborder = 80 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 boolean vscrollbar = true boolean autovscroll = true borderstyle borderstyle = stylelowered! end type event ue_topmost;call super::ue_topmost;String mailname, mailAddress IF Not cbx_auto.Checked THEN arg_out = arg_in RETURN END IF //long ll_row //DataStore ds //ds = Create DataStore //ds.dataobject = 'dw_sandmail' //ds.settrans(sqlca) //ll_row = ds.find("mailname like '" + arg_in + "%'", 1, ds.RowCount()) //if ll_row > 0 then // arg_out = ds.object.mailname[ll_row] + '<' + ds.object.mailaddress[ll_row] + '>' // goto ext //end if // //ll_row = ds.find("mailaddress like '" + arg_in + "%'", 1, ds.RowCount()) //if ll_row > 0 then // arg_out = ds.object.mailaddress[ll_row] // goto ext //end if // //ext: //destroy(ds) // u_email_rep SELECT top 1 u_email_rep.mailname, u_email_rep.mailaddress INTO :mailname, :mailAddress FROM u_email_rep WHERE (u_email_rep.mailname LIKE (:arg_in + '%')) AND ((empid = :sys_empid) OR (empid = 0) And (reptype = 1)) Using sqlca; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF SELECT TOP 1 mailname, mailaddress INTO :mailname, :mailAddress FROM u_email_rep WHERE mailaddress LIKE (:arg_in + '%') AND ((empid = :sys_empid) OR (empid = 0) And (reptype = 1)) ; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_cust String ls_area = '-1,' Long i String ls_str_sql ls_str_sql = '' ls_str_sql = ls_str_sql + "Select top 1 cuscode, email From u_cust " ls_str_sql = ls_str_sql + "where (cuscode like(? + '%')) and (inuse = 1) AND (cusareaid in (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" DECLARE cursor_cust Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust Using :arg_in; FETCH cursor_cust Into :mailname,:mailAddress; CLOSE cursor_cust; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "Select top 1 cuscode, email From u_cust " ls_str_sql = ls_str_sql + "where (email like(? + '%')) and (inuse = 1) AND (cusareaid in (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" DECLARE cursor_cust1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust1 Using :arg_in; FETCH cursor_cust1 Into :mailname,:mailAddress; CLOSE cursor_cust1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_cust_rep ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)), u_cust_rep.email " ls_str_sql = ls_str_sql + " FROM u_cust AS u_cust_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid " ls_str_sql = ls_str_sql + " WHERE (u_cust_1.inuse = 1) AND (u_cust_1.cusareaid IN (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) like (? + '%')" DECLARE cursor_cust_rep Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust_rep Using :arg_in; FETCH cursor_cust_rep Into :mailname,:mailAddress; CLOSE cursor_cust_rep; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)), u_cust_rep.email " ls_str_sql = ls_str_sql + " FROM u_cust AS u_cust_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid " ls_str_sql = ls_str_sql + " WHERE (u_cust_1.inuse = 1) AND (u_cust_1.cusareaid IN (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND u_cust_rep.email like (? + '%')" DECLARE cursor_cust_rep1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust_rep1 Using :arg_in; FETCH cursor_cust_rep1 Into :mailname,:mailAddress; CLOSE cursor_cust_rep1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_spt ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 sptcode, email FROM u_spt " ls_str_sql = ls_str_sql + " WHERE (inuse = 1) AND (spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" ls_str_sql = ls_str_sql + " AND sptcode like (? + '%'); " DECLARE cursor_spt Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt Using :arg_in; FETCH cursor_spt Into :mailname,:mailAddress; CLOSE cursor_spt; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 sptcode, email FROM u_spt " ls_str_sql = ls_str_sql + " WHERE (inuse = 1) AND (spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" ls_str_sql = ls_str_sql + " AND email like (? + '%'); " DECLARE cursor_spt1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt1 Using :arg_in; FETCH cursor_spt1 Into :mailname,:mailAddress; CLOSE cursor_spt1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_spt_rep ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT TOP 1 RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)), " ls_str_sql = ls_str_sql + " u_spt_rep.email " ls_str_sql = ls_str_sql + " FROM u_spt AS u_spt_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid " ls_str_sql = ls_str_sql + " WHERE (u_spt_1.inuse = 1) AND (u_spt_1.spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) like (? + '%')" DECLARE cursor_spt_rep Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt_rep Using :arg_in; FETCH cursor_spt_rep Into :mailname,:mailAddress; CLOSE cursor_spt_rep; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT TOP 1 RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)), " ls_str_sql = ls_str_sql + " u_spt_rep.email " ls_str_sql = ls_str_sql + " FROM u_spt AS u_spt_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid " ls_str_sql = ls_str_sql + " WHERE (u_spt_1.inuse = 1) AND (u_spt_1.spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND u_spt_rep.email like (? + '%')" DECLARE cursor_spt_rep1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt_rep1 Using :arg_in; FETCH cursor_spt_rep1 Into :mailname,:mailAddress; CLOSE cursor_spt_rep1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF end event event losefocus;call super::losefocus;dw_revlist.setredraw(false) wf_makerevlist() uf_updaterevlist() dw_revlist.setRedraw(true) end event event keyup;call super::keyup;parent.triggerevent('ue_set_height') end event event getfocus;call super::getfocus;unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) end event type cbx_auto from checkbox within w_email_send_new boolean visible = false integer x = 3771 integer y = 412 integer width = 283 integer height = 52 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 = "联想" end type event clicked;Long ll_check = 0 IF This.Checked THEN ll_check = 1 ELSE ll_check = 0 END IF f_setProfileString(sys_empid, Parent.ClassName(), This.ClassName(), String(ll_check)) end event event constructor;Long ll_check = 0 ll_check = Long(f_ProfileString(sys_empid, Parent.ClassName(), This.ClassName(), '1')) This.Checked = (ll_check = 1) end event type cb_send from uo_imflatbutton within w_email_send_new integer width = 165 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "发送" string normalpicname = "email_view2.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;if not wf_hasDotNet() then MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN end if string ls_msg //将邮件背景添加到附件 //if backgroundid<>0 then // wf_addbacktofj(backgroundid) //end if //messagebox('','1') if wf_save(ls_msg) <> 1 then MessageBox('错误', ls_msg, stopsign!) return end if // 保存成功 发送 string ls_run ls_run = 'longjoe_rev.exe -longjoe&'& + sys_system_id + '&'& + sys_cur_version + '&'& + String(sys_if_register) + '&'& + Commit_Tran.Database + '&'& + Commit_Tran.UserID + '&'& + f_psw_bczh(Commit_Tran.DBPass,0,sys_power_key) + '&'& + Commit_Tran.LogID + '&'& + f_psw_bczh(Commit_Tran.LogPass,0,sys_power_key) + '&'& + Commit_Tran.ServerName + '&'& + string(sys_empid) + '&'& + string(s_send.mailid) + '&'& + '1&'& + fj_tran.Database + '&'& + fj_tran.UserID + '&'& + f_psw_bczh(fj_tran.DBPass,0,sys_power_key) + '&'& + fj_tran.LogID + '&'& + f_psw_bczh(fj_tran.LogPass,0,sys_power_key) + '&'& + fj_tran.ServerName + '&'& + string(s_send.sendid) + '&' //messagebox('','2') IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,ok!) RETURN END IF // 关闭自己 uo_html.uf_setfont() close(parent) end event type cbx_hz from checkbox within w_email_send_new integer x = 3461 integer y = 96 integer width = 210 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 15793151 string text = "回执" boolean lefttext = true end type type cbx_2 from checkbox within w_email_send_new integer x = 3081 integer y = 20 integer width = 247 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 15793151 string text = "多签名" boolean lefttext = true end type type cbx_3 from checkbox within w_email_send_new integer x = 3424 integer y = 20 integer width = 247 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 15793151 string text = "紧急" boolean lefttext = true end type type cb_11 from uo_imflatbutton within w_email_send_new integer x = 174 integer width = 247 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "定时发送" string normalpicname = "email_view2.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Open(w_email_ds) //messagebox("",string(message.stringparm)) IF Message.StringParm = "cancel" THEN RETURN END IF s_send.senddate = DateTime(Message.StringParm) IF dw_edit_mode THEN RETURN String ls_msg IF sle_mailtype.Text <> '未发' THEN // 另存 s_send.sendid = 0 sle_mailtype.Text = '未发' END IF IF wf_save(ls_msg) = 0 THEN MessageBox('错误',ls_msg, StopSign!, OK! ) ELSE MessageBox('提示',"保存成功!邮件将会在" + Message.StringParm + "定时发送" , Information!, OK! ) close(parent) END IF end event type st_cc from uo_text_m within w_email_send_new integer x = 46 integer y = 604 integer width = 247 integer height = 60 boolean bringtotop = true integer textsize = -9 boolean underline = true long textcolor = 16711680 long backcolor = 134217739 string text = "抄送人" alignment alignment = right! integer ifonraise = 5 end type event clicked;call super::clicked;parent.triggerevent('ue_sendmx_cc') end event type mle_cc from uo_mle_demo within w_email_send_new integer x = 311 integer y = 576 integer width = 3223 integer height = 84 integer taborder = 90 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 boolean vscrollbar = true boolean autovscroll = true borderstyle borderstyle = stylelowered! end type event getfocus;call super::getfocus;unRegisterHotKey(uo_html.sys_handle, uo_html.sys_atomid) end event event losefocus;call super::losefocus;dw_cc.setredraw(false) wf_makerevlist_cc() uf_updaterevlist_cc() dw_cc.setRedraw(true) end event event keyup;call super::keyup;//parent.triggerevent('ue_set_height') end event event ue_topmost;call super::ue_topmost;String mailname, mailAddress IF Not cbx_auto.Checked THEN arg_out = arg_in RETURN END IF //long ll_row //DataStore ds //ds = Create DataStore //ds.dataobject = 'dw_sandmail' //ds.settrans(sqlca) //ll_row = ds.find("mailname like '" + arg_in + "%'", 1, ds.RowCount()) //if ll_row > 0 then // arg_out = ds.object.mailname[ll_row] + '<' + ds.object.mailaddress[ll_row] + '>' // goto ext //end if // //ll_row = ds.find("mailaddress like '" + arg_in + "%'", 1, ds.RowCount()) //if ll_row > 0 then // arg_out = ds.object.mailaddress[ll_row] // goto ext //end if // //ext: //destroy(ds) // u_email_rep SELECT top 1 u_email_rep.mailname, u_email_rep.mailaddress INTO :mailname, :mailAddress FROM u_email_rep WHERE (u_email_rep.mailname LIKE (:arg_in + '%')) AND ((empid = :sys_empid) OR (empid = 0) And (reptype = 1)) Using sqlca; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF SELECT TOP 1 mailname, mailaddress INTO :mailname, :mailAddress FROM u_email_rep WHERE mailaddress LIKE (:arg_in + '%') AND ((empid = :sys_empid) OR (empid = 0) And (reptype = 1)) ; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_cust String ls_area = '-1,' Long i String ls_str_sql ls_str_sql = '' ls_str_sql = ls_str_sql + "Select top 1 cuscode, email From u_cust " ls_str_sql = ls_str_sql + "where (cuscode like(? + '%')) and (inuse = 1) AND (cusareaid in (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" DECLARE cursor_cust Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust Using :arg_in; FETCH cursor_cust Into :mailname,:mailAddress; CLOSE cursor_cust; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "Select top 1 cuscode, email From u_cust " ls_str_sql = ls_str_sql + "where (email like(? + '%')) and (inuse = 1) AND (cusareaid in (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" DECLARE cursor_cust1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust1 Using :arg_in; FETCH cursor_cust1 Into :mailname,:mailAddress; CLOSE cursor_cust1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_cust_rep ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)), u_cust_rep.email " ls_str_sql = ls_str_sql + " FROM u_cust AS u_cust_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid " ls_str_sql = ls_str_sql + " WHERE (u_cust_1.inuse = 1) AND (u_cust_1.cusareaid IN (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)) like (? + '%')" DECLARE cursor_cust_rep Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust_rep Using :arg_in; FETCH cursor_cust_rep Into :mailname,:mailAddress; CLOSE cursor_cust_rep; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 RTRIM(LTRIM(u_cust_1.cuscode)) + '-' + RTRIM(LTRIM(u_cust_rep.repname)), u_cust_rep.email " ls_str_sql = ls_str_sql + " FROM u_cust AS u_cust_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_cust_rep ON u_cust_1.cusid = u_cust_rep.cusid AND u_cust_1.cusid = u_cust_rep.cusid " ls_str_sql = ls_str_sql + " WHERE (u_cust_1.inuse = 1) AND (u_cust_1.cusareaid IN (-1," FOR i = 1 To UpperBound(sys_areaid) ls_str_sql = ls_str_sql + String(sys_areaid[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_cust_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND u_cust_rep.email like (? + '%')" DECLARE cursor_cust_rep1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_cust_rep1 Using :arg_in; FETCH cursor_cust_rep1 Into :mailname,:mailAddress; CLOSE cursor_cust_rep1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_spt ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 sptcode, email FROM u_spt " ls_str_sql = ls_str_sql + " WHERE (inuse = 1) AND (spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" ls_str_sql = ls_str_sql + " AND sptcode like (? + '%'); " DECLARE cursor_spt Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt Using :arg_in; FETCH cursor_spt Into :mailname,:mailAddress; CLOSE cursor_spt; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT top 1 sptcode, email FROM u_spt " ls_str_sql = ls_str_sql + " WHERE (inuse = 1) AND (spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(email)) <> '')" ls_str_sql = ls_str_sql + " AND email like (? + '%'); " DECLARE cursor_spt1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt1 Using :arg_in; FETCH cursor_spt1 Into :mailname,:mailAddress; CLOSE cursor_spt1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF // u_spt_rep ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT TOP 1 RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)), " ls_str_sql = ls_str_sql + " u_spt_rep.email " ls_str_sql = ls_str_sql + " FROM u_spt AS u_spt_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid " ls_str_sql = ls_str_sql + " WHERE (u_spt_1.inuse = 1) AND (u_spt_1.spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)) like (? + '%')" DECLARE cursor_spt_rep Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt_rep Using :arg_in; FETCH cursor_spt_rep Into :mailname,:mailAddress; CLOSE cursor_spt_rep; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailname + '<' + mailAddress + '>' RETURN END IF ls_str_sql = '' ls_str_sql = ls_str_sql + "SELECT TOP 1 RTRIM(LTRIM(u_spt_1.sptcode)) + '-' + RTRIM(LTRIM(u_spt_rep.repname)), " ls_str_sql = ls_str_sql + " u_spt_rep.email " ls_str_sql = ls_str_sql + " FROM u_spt AS u_spt_1 INNER JOIN " ls_str_sql = ls_str_sql + " u_spt_rep ON u_spt_1.sptid = u_spt_rep.sptid AND u_spt_1.sptid = u_spt_rep.sptid " ls_str_sql = ls_str_sql + " WHERE (u_spt_1.inuse = 1) AND (u_spt_1.spttypeid IN (-1," FOR i = 1 To UpperBound(sys_user_spttype) ls_str_sql = ls_str_sql + String(sys_user_spttype[i]) + ',' NEXT ls_str_sql = Left(ls_str_sql, Len(ls_str_sql) - 1) ls_str_sql = ls_str_sql + ")) AND (RTRIM(LTRIM(u_spt_rep.email)) <> '') " ls_str_sql = ls_str_sql + " AND u_spt_rep.email like (? + '%')" DECLARE cursor_spt_rep1 Dynamic Cursor FOR SQLSA; PREPARE SQLSA From :ls_str_sql; OPEN Dynamic cursor_spt_rep1 Using :arg_in; FETCH cursor_spt_rep1 Into :mailname,:mailAddress; CLOSE cursor_spt_rep1; IF sqlca.SQLCode = 0 And Trim(mailAddress) <> '' THEN arg_out = mailAddress RETURN END IF end event type pb_cc from picturebutton within w_email_send_new integer x = 3561 integer y = 580 integer width = 110 integer height = 96 integer taborder = 100 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string picturename = "people.bmp" alignment htextalign = left! string powertiptext = "收件人" end type event clicked;parent.triggerevent('ue_sendmx_cust_cc') end event