$PBExportHeader$w_ljmail_msg_send.srw forward global type w_ljmail_msg_send from w_publ_base end type type cb_send from uo_imflatbutton within w_ljmail_msg_send end type type cb_save from uo_imflatbutton within w_ljmail_msg_send end type type cb_fj from uo_imflatbutton within w_ljmail_msg_send end type type lv_fj from uo_email_lv within w_ljmail_msg_send end type type dw_revlist from u_dw_rbtnfilter within w_ljmail_msg_send end type type cb_6 from commandbutton within w_ljmail_msg_send end type type cb_7 from commandbutton within w_ljmail_msg_send end type type cb_9 from commandbutton within w_ljmail_msg_send end type type cbx_1 from checkbox within w_ljmail_msg_send end type type cb_1 from commandbutton within w_ljmail_msg_send end type type cb_2 from uo_imflatbutton within w_ljmail_msg_send end type type cb_fornextsend from uo_imflatbutton within w_ljmail_msg_send end type type st_1 from statictext within w_ljmail_msg_send end type type em_priority from editmask within w_ljmail_msg_send end type type st_3 from statictext within w_ljmail_msg_send end type type st_4 from statictext within w_ljmail_msg_send end type type st_5 from statictext within w_ljmail_msg_send end type type st_6 from statictext within w_ljmail_msg_send end type type st_7 from statictext within w_ljmail_msg_send end type type st_9 from statictext within w_ljmail_msg_send end type type sle_subject from singlelineedit within w_ljmail_msg_send end type type mle_revlist from uo_mle_demo within w_ljmail_msg_send end type type st_10 from statictext within w_ljmail_msg_send end type type sle_mailaddress from statictext within w_ljmail_msg_send end type type sle_mailtype from statictext within w_ljmail_msg_send end type type em_mailsize from statictext within w_ljmail_msg_send end type type sle_opemp from statictext within w_ljmail_msg_send end type type em_opdate from statictext within w_ljmail_msg_send end type type em_senddate from statictext within w_ljmail_msg_send end type type sp_v1 from u_lbs_stsplitbar within w_ljmail_msg_send end type type cb_3 from uo_imflatbutton within w_ljmail_msg_send end type type cb_4 from uo_imflatbutton within w_ljmail_msg_send end type type uo_html from uo_html_editor within w_ljmail_msg_send end type type st_11 from uo_text_m within w_ljmail_msg_send end type type pb_1 from picturebutton within w_ljmail_msg_send end type type cb_5 from uo_imflatbutton within w_ljmail_msg_send end type type st_12 from statictext within w_ljmail_msg_send end type type ln_bar from line within w_ljmail_msg_send end type type ln_bar2 from line within w_ljmail_msg_send end type type r_bar from rectangle within w_ljmail_msg_send end type end forward global type w_ljmail_msg_send from w_publ_base integer width = 3611 integer height = 2380 string title = "发送邮件" boolean maxbox = 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 ( ) cb_send cb_send cb_save cb_save cb_fj cb_fj lv_fj lv_fj dw_revlist dw_revlist 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_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 mle_revlist mle_revlist st_10 st_10 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 cb_5 cb_5 st_12 st_12 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar end type global w_ljmail_msg_send w_ljmail_msg_send type variables s_ljmail_msg_parm s_set //s_email_send s_send Boolean have_fj = False String fjfilepathname = 'fjtemp' uo_ljmail_msg obj_email uo_ljmail_box uo_box Boolean ls_update_flag = True Transaction Commit_Tran Transaction fj_tran String C_Sys_admsg_fj = 'Sys_admsg_fj' String C_u_email_fj = 'u_email_fj' String C_from_file = 'from_file' String C_u_ljmail_fj = 'u_ljmail_fj' 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 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 function integer wf_from_msgid (long arg_msgid, ref string arg_msg) public function integer wf_mail_getfjblob (long arg_fjid, ref blob arg_fjblob, ref string arg_msg) public function integer wf_ljmail_getfjblob (long arg_msgid, long arg_printid, ref blob arg_fjblob, ref string arg_msg) public function integer wf_to_s_msg (ref s_ljmail_msg arg_s_msg, ref string arg_msg) public function integer wf_blob_from_lvfj (ref blob arg_blob, s_email_lvfj arg_lvfj, ref string arg_msg) public function integer wf_from_s_msg (s_ljmail_msg arg_s_msg, ref string arg_msg) public function integer wf_from_msgid_other (long arg_relid, ref string arg_msg) 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();if not dw_edit_mode then return 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]) NEXT OpenWithParm(w_ljmail_msgmx_ch, s_sendmx) s_return = Message.PowerObjectParm IF Not IsValid(s_return) THEN RETURN dw_revlist.Reset() s_ljmail_msgmx s_msgmx String arg_msg FOR i = 1 To UpperBound(s_return.sendmx) IF obj_email.uf_get_msgmx(s_return.sendmx[i].revaddress, Ref s_msgmx, Ref arg_msg) <> 1 THEN ll_row = dw_revlist.InsertRow(0) 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 ELSE ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.reltype[ll_row] = s_msgmx.reltype dw_revlist.Object.Relid[ll_row] = s_msgmx.Relid dw_revlist.Object.revaddress[ll_row] = s_msgmx.ljmail dw_revlist.Object.Revname[ll_row] = s_msgmx.comname dw_revlist.Object.repname[ll_row] = s_msgmx.empname END IF 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 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 s_ljmail_msg s_msg dw_revlist.AcceptText() s_email_sendmx s_sendmx[],s_parm mle_revlist.text = '' ls_temp = '' FOR i = 1 TO dw_revlist.RowCount() s_parm.Revname = Trim(dw_revlist.Object.Revname[i]) s_parm.revaddress = Trim(dw_revlist.Object.revaddress[i]) // 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() // wf_to_s(ref s_msg) //s_send.mailtype = '发件' //s_send.Subject = sle_subject.text //s_send.priority = long(this.em_priority.text) //s_send.htmlbody = uo_html.uf_gethtml( ) //s_send.textbody = uo_html.uf_gettext( ) //s_send.mailsize = long(em_mailsize.text) //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]) // NEXT //ELSE // arg_msg = '收件人列表不能为空' // rslt = 0 // GOTO ext //END IF //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 //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') //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 s_ljmail_msg s_msg listviewitem l_lvi s_email_lvfj s_lvfj[] dw_revlist.Reset() IF s_set.msgid > 0 THEN IF wf_from_msgid(s_set.msgid, Ref arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF ELSE IF s_set.reltype = 1 THEN // from admsg ELSEIF s_set.reltype = 2 THEN // from email ELSEIF s_set.reltype = 3 THEN // from ljmail IF wf_from_msgid_other(s_set.relid, Ref arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF ELSE // from s_msg IF wf_from_s_msg(s_set.s_msg, Ref arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF // wf_from_parm(ref s_msg, s_set) // wf_From_s(s_msg) // 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 // 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 not 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 ();if not dw_edit_mode then return String ls_name, ls_address String arg_msg Long ll_pos Long ll_row String ls_arg, ls_mail ls_arg = mle_revlist.Text s_ljmail_msgmx s_msgmx 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 IF obj_email.uf_get_msgmx(ls_address, Ref s_msgmx, Ref arg_msg) <> 1 THEN ll_row = dw_revlist.InsertRow(0) 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.Object.repname[ll_row] = '' dw_revlist.AcceptText( ) ELSE ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.reltype[ll_row] = s_msgmx.reltype dw_revlist.Object.relid[ll_row] = s_msgmx.relid dw_revlist.Object.revaddress[ll_row] = s_msgmx.ljmail dw_revlist.Object.revname[ll_row] = s_msgmx.comname dw_revlist.Object.dscrp[ll_row] = '' dw_revlist.Object.repname[ll_row] = s_msgmx.empname dw_revlist.AcceptText( ) END IF ll_first = ll_sec + 2 LOOP dw_revlist.AcceptText( ) end subroutine public subroutine wf_makerevtext ();if not dw_edit_mode then return 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 Trim(dw_revlist.Object.repname[i]) = '' THEN mle_revlist.Text = mle_revlist.Text + dw_revlist.Object.revname[i] + '<' + dw_revlist.Object.revaddress[i] + '>;' ELSE mle_revlist.Text = mle_revlist.Text + dw_revlist.Object.revname[i] + '-' + dw_revlist.Object.repname[i] + '<' + dw_revlist.Object.revaddress[i] + '>;' END IF NEXT mle_revlist.Text = Left(mle_revlist.Text, Len(mle_revlist.Text) - 1) end subroutine public subroutine uf_updaterevlist ();if not dw_edit_mode then return 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 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 function integer wf_from_msgid (long arg_msgid, ref string arg_msg);Int rslt = 1 Long i, ll_row s_ljmail_msg s_msg IF obj_email.uf_getinfo(arg_msgid, Ref s_msg, Ref arg_msg, True, True, True, False) <> 1 THEN rslt = 0 GOTO ext END IF sle_mailaddress.Text = s_msg.ljmail sle_opemp.Text = s_msg.opemp em_opdate.Text = String(s_msg.opdate, 'yyyy-mm-dd') em_senddate.Text = String(s_msg.sendtime, 'yyyy-mm-dd') sle_subject.Text = s_msg.Subject uo_html.uf_sethtml(s_msg.htmlbody) dw_revlist.Reset() FOR i = 1 To UpperBound(s_msg.mx) ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = s_msg.mx[i].msgid dw_revlist.Object.printid[ll_row] = s_msg.mx[i].printid dw_revlist.Object.reltype[ll_row] = s_msg.mx[i].reltype dw_revlist.Object.relid[ll_row] = s_msg.mx[i].relid dw_revlist.Object.revname[ll_row] = s_msg.mx[i].comname dw_revlist.Object.revaddress[ll_row] = s_msg.mx[i].ljmail dw_revlist.Object.repname[ll_row] = s_msg.mx[i].empname NEXT lv_fj.DeleteItems( ) s_email_lvfj s_lvfj[] listviewitem l_lvi FOR i = 1 To UpperBound(s_msg.fj) s_lvfj[i].FileType = C_u_ljmail_fj s_lvfj[i].Filename = s_msg.fj[i].Filename s_lvfj[i].fjid = s_msg.fj[i].printid s_lvfj[i].relid = s_msg.fj[i].msgid NEXT 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 IF s_msg.sendflag = 3 THEN dw_edit_mode = False cb_send.Enabled = False cb_2.Enabled = False cb_4.Enabled = False cb_save.Enabled = False cb_fj.Enabled = False cb_5.Visible = False st_12.Visible = False mle_revlist.DisplayOnly = True sle_subject.DisplayOnly = True pb_1.Visible = False st_11.Enabled = False uo_html.uf_setreadonly() 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 function integer wf_ljmail_getfjblob (long arg_msgid, long arg_printid, ref blob arg_fjblob, ref string arg_msg);Int rslt = 1 SelectBlob fileblob Into :arg_fjblob From u_ljmail_fj Where msgid = :arg_msgid And printid = :arg_printid Using Commit_Tran; IF Commit_Tran.SQLCode <> 0 THEN rslt = 0 arg_msg = '获取龙嘉邮件附件失败,' + fj_tran.SQLErrText GOTO ext END IF ext: RETURN rslt end function public function integer wf_to_s_msg (ref s_ljmail_msg arg_s_msg, ref string arg_msg);Int rslt = 1 s_ljmail_msgmx arr_mx[] Long ll_row FOR ll_row = 1 To dw_revlist.RowCount() arr_mx[ll_row].reltype = dw_revlist.Object.reltype[ll_row] arr_mx[ll_row].relid = dw_revlist.Object.relid[ll_row] arr_mx[ll_row].ljmail = dw_revlist.Object.revaddress[ll_row] arr_mx[ll_row].comname = dw_revlist.Object.revname[ll_row] arr_mx[ll_row].empname = dw_revlist.Object.repname[ll_row] NEXT s_ljmail_fj arr_fj[] s_email_lvfj s_lvfj listviewitem l_lvi FOR ll_row = 1 To lv_fj.TotalItems() IF lv_fj.GetItem(ll_row, l_lvi) <> 1 THEN rslt = 0 arg_msg = '获取第' + String(ll_row) + '个附件失败' GOTO ext END IF s_lvfj = l_lvi.Data arr_fj[ll_row].Filename = s_lvfj.Filename IF wf_blob_from_lvfj(arr_fj[ll_row].fileblob, s_lvfj, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF NEXT s_ljmail_msg s_msg s_msg.Subject = sle_subject.Text s_msg.htmlbody = uo_html.uf_gethtml( ) s_msg.mx = arr_mx s_msg.fj = arr_fj s_msg.msgid = s_set.msgid s_msg.boxid = uo_box.uf_getboxid(sys_empid, 2, arg_msg) IF s_msg.boxid = 0 THEN rslt = 0 GOTO ext END IF s_msg.sendflag = 2 String ls_ljmail IF obj_email.uf_getljmail(Ref ls_ljmail, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_msg.ljmail = ls_ljmail arg_s_msg = s_msg ext: RETURN rslt end function public function integer wf_blob_from_lvfj (ref blob arg_blob, s_email_lvfj arg_lvfj, ref string arg_msg);int rslt = 1 IF arg_lvfj.FileType = C_Sys_admsg_fj THEN IF wf_admsg_getfjblob(arg_lvfj.fjid, arg_blob, arg_msg) <> 1 THEN rslt = 0 goto ext END IF ELSEIF arg_lvfj.FileType = C_u_email_fj THEN IF wf_mail_getfjblob(arg_lvfj.fjid, arg_blob, arg_msg) <> 1 THEN rslt = 0 goto ext END IF ELSEIF arg_lvfj.FileType = C_u_ljmail_fj THEN IF wf_ljmail_getfjblob(arg_lvfj.relid, arg_lvfj.fjid, arg_blob, arg_msg) <> 1 THEN rslt = 0 goto ext END IF ELSEIF arg_lvfj.FileType = C_from_file THEN arg_blob = arg_lvfj.fileblob ELSE rslt = 0 arg_msg = '未定义FileType:' + arg_lvfj.FileType goto ext END IF ext: return rslt end function public function integer wf_from_s_msg (s_ljmail_msg arg_s_msg, ref string arg_msg);Int rslt = 1 Long i, ll_row String ls_ljmail IF obj_email.uf_getljmail(Ref ls_ljmail, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF sle_mailaddress.Text = ls_ljmail sle_subject.Text = arg_s_msg.Subject uo_html.uf_sethtml(arg_s_msg.htmlbody) dw_revlist.Reset() FOR i = 1 To UpperBound(arg_s_msg.mx) IF obj_email.uf_get_msgmx(arg_s_msg.mx[i].ljmail, arg_s_msg.mx[i], arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF NEXT FOR i = 1 To UpperBound(arg_s_msg.mx) ll_row = dw_revlist.InsertRow(0) dw_revlist.Object.sendid[ll_row] = arg_s_msg.mx[i].msgid dw_revlist.Object.printid[ll_row] = arg_s_msg.mx[i].printid dw_revlist.Object.reltype[ll_row] = arg_s_msg.mx[i].reltype dw_revlist.Object.relid[ll_row] = arg_s_msg.mx[i].relid dw_revlist.Object.revname[ll_row] = arg_s_msg.mx[i].comname dw_revlist.Object.revaddress[ll_row] = arg_s_msg.mx[i].ljmail dw_revlist.Object.repname[ll_row] = arg_s_msg.mx[i].empname NEXT lv_fj.DeleteItems( ) s_email_lvfj s_lvfj[] listviewitem l_lvi FOR i = 1 To UpperBound(arg_s_msg.fj) s_lvfj[i].FileType = C_from_file s_lvfj[i].Filename = arg_s_msg.fj[i].Filename s_lvfj[i].fjid = arg_s_msg.fj[i].printid s_lvfj[i].relid = arg_s_msg.fj[i].msgid s_lvfj[i].fileblob = arg_s_msg.fj[i].fileblob NEXT 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 ext: RETURN rslt end function public function integer wf_from_msgid_other (long arg_relid, ref string arg_msg);Int rslt = 1 s_ljmail_msg s_msg IF obj_email.uf_getinfo(arg_relid, Ref s_msg, arg_msg, True, False, True, True) <> 1 THEN rslt = 0 GOTO ext END IF IF wf_from_s_msg(s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF ext: RETURN rslt end function on w_ljmail_msg_send.create int iCurrent call super::create this.cb_send=create cb_send this.cb_save=create cb_save this.cb_fj=create cb_fj this.lv_fj=create lv_fj this.dw_revlist=create dw_revlist 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_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.mle_revlist=create mle_revlist this.st_10=create st_10 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.cb_5=create cb_5 this.st_12=create st_12 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_send this.Control[iCurrent+2]=this.cb_save this.Control[iCurrent+3]=this.cb_fj this.Control[iCurrent+4]=this.lv_fj this.Control[iCurrent+5]=this.dw_revlist this.Control[iCurrent+6]=this.cb_6 this.Control[iCurrent+7]=this.cb_7 this.Control[iCurrent+8]=this.cb_9 this.Control[iCurrent+9]=this.cbx_1 this.Control[iCurrent+10]=this.cb_1 this.Control[iCurrent+11]=this.cb_2 this.Control[iCurrent+12]=this.cb_fornextsend this.Control[iCurrent+13]=this.st_1 this.Control[iCurrent+14]=this.em_priority 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.mle_revlist this.Control[iCurrent+23]=this.st_10 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.cb_5 this.Control[iCurrent+37]=this.st_12 this.Control[iCurrent+38]=this.ln_bar this.Control[iCurrent+39]=this.ln_bar2 this.Control[iCurrent+40]=this.r_bar end on on w_ljmail_msg_send.destroy call super::destroy destroy(this.cb_send) destroy(this.cb_save) destroy(this.cb_fj) destroy(this.lv_fj) destroy(this.dw_revlist) 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_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.mle_revlist) destroy(this.st_10) 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.cb_5) destroy(this.st_12) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) 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 uo_html.Width = THIS.Width - 40 - dw_revlist.Width lv_fj.Width = uo_html.Width dw_revlist.x = uo_html.Width + uo_html.x + 20 sp_v1.x = uo_html.width + uo_html.x cb_6.X = dw_revlist.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 // dw_revlist.Height = THIS.Height - dw_revlist.y - 100 //// tv_1.Visible = FALSE //ELSE // dw_revlist.Height = (THIS.Height - dw_revlist.y - 84 ) /2 - 5 //// tv_1.Height = dw_revlist.Height - 134 //// sle_filter.y = dw_revlist.Y + dw_revlist.Height //// tv_1.Y = dw_revlist.Y + dw_revlist.Height + 89 //// tv_1.Visible = TRUE //END IF dw_revlist.Height = THIS.Height - dw_revlist.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 end event event open;dw_edit_mode = true commit_tran = sqlca obj_email = CREATE uo_ljmail_msg uo_box = CREATE uo_ljmail_box 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) obj_email.commit_transaction = 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 end event event close;call super::close;destroy obj_email destroy uo_box 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 end event type cb_func from w_publ_base`cb_func within w_ljmail_msg_send 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_ljmail_msg_send integer x = 1202 integer width = 165 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_send from uo_imflatbutton within w_ljmail_msg_send 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 dw_edit_mode THEN RETURN s_ljmail_msg s_msg Int rslt = 1 String arg_msg IF wf_to_s_msg(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF obj_email.uf_save(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_set.msgid = s_msg.msgid IF obj_email.uf_send(s_set.msgid, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF ext: IF rslt = 1 THEN MessageBox('提示',"保存成功!", Information!, OK!) close(parent) ELSE MessageBox('错误',arg_msg, StopSign!, OK! ) END IF end event type cb_save from uo_imflatbutton within w_ljmail_msg_send integer x = 494 integer width = 306 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 not dw_edit_mode THEN RETURN s_ljmail_msg s_msg Int rslt = 1 String arg_msg IF wf_to_s_msg(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF obj_email.uf_save(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_set.msgid = s_msg.msgid ext: IF rslt = 1 THEN MessageBox('提示',"保存成功!", Information!, OK!) Close(Parent) ELSE MessageBox('错误',arg_msg, StopSign!, OK! ) END IF end event type cb_fj from uo_imflatbutton within w_ljmail_msg_send integer x = 965 integer width = 238 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;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" 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 lv_fj from uo_email_lv within w_ljmail_msg_send integer y = 1996 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 IF dw_edit_mode THEN 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 ELSE menustr = "" 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 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 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 ELSEIF lvfj.FileType = C_u_ljmail_fj THEN IF wf_ljmail_getfjblob(lvfj.relid, 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 ELSEIF lvfj.FileType = C_u_ljmail_fj THEN IF wf_ljmail_getfjblob(lvfj.relid, lvfj.fjid, lb, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF lvfj.FileType = C_from_file THEN lb = lvfj.fileblob ELSE MessageBox('错误', '未定义FileType:' + lvfj.FileType , stopsign!) RETURN 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_u_ljmail_fj THEN IF wf_ljmail_getfjblob(lvfj.relid, lvfj.fjid, lb, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN 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 dw_revlist from u_dw_rbtnfilter within w_ljmail_msg_send integer x = 2670 integer y = 576 integer width = 923 integer height = 392 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_email_sendmx" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type 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) end event event losefocus;call super::losefocus;uf_updaterevlist() end event type cb_6 from commandbutton within w_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send integer x = 165 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 not dw_edit_mode THEN RETURN s_ljmail_msg s_msg Int rslt = 1 String arg_msg IF wf_to_s_msg(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF obj_email.uf_save(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_set.msgid = s_msg.msgid ext: IF rslt = 1 THEN MessageBox('提示',"保存成功!", Information!, OK!) ELSE MessageBox('错误',arg_msg, StopSign!, OK! ) END IF end event type cb_fornextsend from uo_imflatbutton within w_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send boolean visible = false integer x = 311 integer y = 204 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_3 from statictext within w_ljmail_msg_send integer x = 1477 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send integer x = 50 integer y = 484 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_ljmail_msg_send integer x = 311 integer y = 468 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 type mle_revlist from uo_mle_demo within w_ljmail_msg_send integer x = 311 integer y = 380 integer width = 2871 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 boolean vscrollbar = true boolean autovscroll = true borderstyle borderstyle = stylelowered! end type event ue_topmost;call super::ue_topmost;string mailname, mailaddress //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 type st_10 from statictext within w_ljmail_msg_send 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_mailaddress from statictext within w_ljmail_msg_send integer x = 1769 integer y = 220 integer width = 1106 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send 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_ljmail_msg_send integer x = 2624 integer y = 576 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_ljmail_msg_send integer x = 800 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 //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_ljmail_msg_send integer x = 329 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 not dw_edit_mode THEN RETURN s_ljmail_msg s_msg Int rslt = 1 String arg_msg IF wf_to_s_msg(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_msg.msgid = 0 IF obj_email.uf_save(Ref s_msg, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_set.msgid = s_msg.msgid ext: IF rslt = 1 THEN MessageBox('提示',"保存成功!", Information!, OK!) ELSE MessageBox('错误',arg_msg, StopSign!, OK! ) END IF end event type uo_html from uo_html_editor within w_ljmail_msg_send integer y = 576 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 type st_11 from uo_text_m within w_ljmail_msg_send integer x = 46 integer y = 396 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') end event type pb_1 from picturebutton within w_ljmail_msg_send 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') end event type cb_5 from uo_imflatbutton within w_ljmail_msg_send integer x = 1719 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_ljmail_msg_send integer x = 1719 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 ln_bar from line within w_ljmail_msg_send long linecolor = 268435456 integer linethickness = 4 integer beginy = 172 integer endx = 3200 integer endy = 172 end type type ln_bar2 from line within w_ljmail_msg_send 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_ljmail_msg_send long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 3351 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