$PBExportHeader$w_email_view.srw forward global type w_email_view from w_publ_base end type type cb_rev from uo_imflatbutton within w_email_view end type type cb_send from uo_imflatbutton within w_email_view end type type cb_write from uo_imflatbutton within w_email_view end type type cb_back from uo_imflatbutton within w_email_view end type type lv_fj from uo_email_lv within w_email_view end type type dw_mail from u_dw_rbtnfilter within w_email_view end type type dw_rep from u_dw_rbtnfilter within w_email_view end type type dw_fj from u_dw_rbtnfilter within w_email_view end type type cb_sendother from uo_imflatbutton within w_email_view end type type cb_del from uo_imflatbutton within w_email_view end type type cb_rep from uo_imflatbutton within w_email_view end type type cb_fresh from uo_imflatbutton within w_email_view end type type lb_1 from listbox within w_email_view end type type cb_help from uo_imflatbutton within w_email_view end type type p_resize from picture within w_email_view end type type p_resize1 from picture within w_email_view end type type ln_bar from line within w_email_view end type type ln_bar2 from line within w_email_view end type type r_bar from rectangle within w_email_view end type type tv_1 from treeview within w_email_view end type type sp_v1 from u_lbs_stsplitbar within w_email_view end type type sp_h1 from u_lbs_stsplitbar within w_email_view end type type ole_1 from olecustomcontrol within w_email_view end type type st_3 from statictext within w_email_view end type type em_1 from editmask within w_email_view end type type pb_em1 from picturebutton within w_email_view end type type st_4 from statictext within w_email_view end type type em_2 from editmask within w_email_view end type type pb_em2 from picturebutton within w_email_view end type type pb_2 from picturebutton within w_email_view end type type p_1 from picture within w_email_view end type type st_refresh from statictext within w_email_view end type type dw_user from u_dw_rbtnfilter within w_email_view end type type dw_list from u_dw_rbtnfilter within w_email_view end type type cb_1 from uo_imflatbutton within w_email_view end type type st_del from uo_text_m_main within w_email_view end type type p_del from picture within w_email_view end type type cbx_showmeredeal from checkbox within w_email_view end type type cb_viewbill from commandbutton within w_email_view end type type cb_view_his from commandbutton within w_email_view end type type sle_find from singlelineedit within w_email_view end type type cb_find from uo_imflatbutton within w_email_view end type type ddlb_1 from dropdownlistbox within w_email_view end type type em_3 from editmask within w_email_view end type end forward global type w_email_view from w_publ_base integer y = 388 integer width = 5321 integer height = 2381 string title = "消息管理" boolean maxbox = true windowstate windowstate = maximized! event ue_revall ( ) event ue_revcur ( ) event ue_sendall ( ) event ue_sendcur ( ) event ue_open_fj ( ) event ue_emailset ( ) event ue_rev_email ( ) event ue_retr_all ( ) event ue_retr_cur ( ) event ue_1 ( ) event ue_reply ( ) event ue_sendother ( ) event ue_del ( ) event ue_send ( ) event ue_saveas ( ) event ue_import_eml ( ) event ue_msg_retr ( ) event ue_msg_back ( ) event ue_msg_del ( ) event ue_msg_his ( ) event ue_msg_view1 ( ) event ue_msg_view2 ( ) event ue_date1 ( ) event ue_date2 ( ) event ue_date3 ( ) event ue_msg_send ( ) event ue_emailset_property ( ) event ue_export_eml ( ) event ue_newlebox ( ) event ue_renamebox ( ) event ue_delbox ( ) event ue_newbox ( ) event ue_set_signature ( ) event ue_revlemsg ( ) event ue_afteropen ( ) event ue_viewbill_msg ( ) event ue_move_eml ( ) event ue_set_cust ( ) event ue_set_email_move ( ) event ue_autorev ( ) event ue_rep_group ( ) cb_rev cb_rev cb_send cb_send cb_write cb_write cb_back cb_back lv_fj lv_fj dw_mail dw_mail dw_rep dw_rep dw_fj dw_fj cb_sendother cb_sendother cb_del cb_del cb_rep cb_rep cb_fresh cb_fresh lb_1 lb_1 cb_help cb_help p_resize p_resize p_resize1 p_resize1 ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar tv_1 tv_1 sp_v1 sp_v1 sp_h1 sp_h1 ole_1 ole_1 st_3 st_3 em_1 em_1 pb_em1 pb_em1 st_4 st_4 em_2 em_2 pb_em2 pb_em2 pb_2 pb_2 p_1 p_1 st_refresh st_refresh dw_user dw_user dw_list dw_list cb_1 cb_1 st_del st_del p_del p_del cbx_showmeredeal cbx_showmeredeal cb_viewbill cb_viewbill cb_view_his cb_view_his sle_find sle_find cb_find cb_find ddlb_1 ddlb_1 em_3 em_3 end type global w_email_view w_email_view type prototypes Function ulong FindWindow(string lpClassName, string lpWindowName ) LIBRARY "user32.dll" ALIAS FOR "FindWindowW" end prototypes type variables //s_email_set cur_set //s_email_set s_set[] //Boolean have_text = false //Boolean have_html = false boolean have_fj = false boolean have_inout = false boolean have_rep = false string fjfilepathname = 'fjtemp' //long all_count uo_email mail //Long cur_hand //TreeViewItem l_tvi //String Pathname //string cur_address ////uo_email obj_emial // long tv_root Int ls_dealflag = 0 // 内部消息 // boolean have_user = false long ins_can_see_other = 0 long ins_can_edit = 0 string C_root = '根' string C_innerroot = '内部消息' string C_innerrev = '内部消息收件箱' string C_innersend = '内部消息发件箱' string C_mailacount = '邮箱帐号' string C_mailbox = '邮箱' string C_smsroot = '短信' string C_smssend = '短信发件箱' string C_leroot = 'LE' string C_lebox = 'LE箱' transaction Commit_Tran // 帐号表所有数据库 boolean has_fj_tran = false transaction fj_tran // 邮件附件数据库 long ins_deletingrow = 0 boolean ins_candrag = false string C_Sys_admsg_fj = 'Sys_admsg_fj' string C_u_email_fj = 'u_email_fj' string C_from_file = 'from_file' s_tv_data1 tv_data_move s_tv_data1 tv_data_move1 long ins_innerrevhandle //20130720荣 查邮件时显示主题信息 string lss_subject,lss_sendman,lss_senddate,lss_revdate //20130720荣 查邮件时显示主题信息 boolean if_autorev=false //是否自动收邮件 long ll_autotime=0//自动收邮件间隔 long handle1_email long cur_send = -1 end variables forward prototypes public function integer wf_init (ref string arg_msg) public subroutine wf_delfj () public function integer wf_revemail (s_email_set arg_set, ref string arg_msg) public function integer wf_retrievemx (long arg_id, integer arg_fjtype, string arg_address, ref string arg_msg) public subroutine wf_retreve_inout (string arg_address) public subroutine wf_retreve_rep (long arg_id, integer arg_fjtype) public subroutine pf_retrievetree (long arg_handl, integer arg_flag) public subroutine wf_retrieve () public subroutine wf_retrievetree (integer arg_flag) public function integer wf_import_eml (string arg_file, ref string arg_msg) public function integer days_in_month (integer month, integer year) public subroutine wf_set_read (long row) public subroutine wf_set_unread (long row) public function integer wf_tv_build_tree (ref string arg_msg) public function long wf_tv_insert (long arg_handle, string arg_label, long arg_picindex, any arg_data) public subroutine wf_tv_insertallacount (long handle) public subroutine wf_tv_insertallbox (long handle) public function s_tv_data1 wf_tv_getdata (long handle) public function integer wf_ds_getmailset (ref s_email_set arg_set[], ref string arg_msg) public function integer wf_ds_getmailbox (long arg_mailid, long arg_parentid, ref s_email_box arg_box[], ref string arg_msg) public function long wf_tv_getcurrent () public subroutine wf_tv_setcurrenttext (string arg_text) public subroutine wf_dw_rowfocuschanged_innermsg_rev () public subroutine wf_dw_rowfocuschanged_innermsg_send () public subroutine wf_dw_rowfocuschanged_mailmsg () public function long wf_tv_getacount (long arg_handle) public subroutine wf_ui_reflash () public subroutine wf_dw_retrieve_innermsg_rev () public subroutine wf_dw_retrieve_innermsg_send () public function integer wf_ds_get_mail_set (long arg_mailid, ref s_email_set arg_set, ref string arg_msg) public function integer wf_ds_get_mail_box (long arg_boxid, ref s_email_box arg_box, ref string arg_msg) public function integer wf_ds_del_msg (long arg_id, ref string arg_msg) public function long wf_ds_gettrunkbox (long arg_mailid) public function integer wf_ds_move_msg_box (long arg_id, long arg_boxid, ref string arg_msg) protected function long wf_box_gettotle (long arg_boxid) public function long wf_box_getunread (long arg_boxid) public subroutine wf_box_update_label (long arg_boxid) public subroutine wf_tv_settext (long arg_handle, string arg_label) public subroutine wf_html_set (string arg_text) public function integer wf_admsg_getfj (long arg_msgid, ref s_email_lvfj arg_lvfj[], ref string arg_msg) public function integer wf_mail_gethtml (long arg_msgid, ref string arg_text, ref string arg_msg) public function integer wf_admsg_gethtml (long arg_msgid, ref string arg_text, ref string arg_msg) public subroutine wf_str_replace (ref string arg_source, string arg_str1, string arg_str2) public function integer wf_mail_getfj (long arg_id, 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_saveas (ref blob arg_blob, string arg_filename) public subroutine wf_blob_runfj (ref blob arg_blob, string arg_filename) public subroutine wf_ui_row (long arg_row) public subroutine wf_ui_unselectall () public subroutine wf_revert_read (long arg_row) public subroutine wf_read_row (long arg_row) public subroutine wf_tv_setdata (long arg_handle, s_tv_data1 arg_data) public subroutine wf_tv_reflash (long arg_handle) public function long wf_tv_gettrunkhandle (long arg_handle) public subroutine wf_tv_retrieve () public subroutine wf_tv_retrieveallchildbox (long arg_handle) public subroutine wf_tv_getchild (long arg_handle, ref long arg_child[]) public function boolean wf_hasdotnet () public subroutine wf_str_modfilepath (ref string ls_filepath) public subroutine wf_dw_readlayout () public subroutine wf_dw_retrieve_smssend () public subroutine wf_tv_insertlebox (long arg_handle, long arg_parentid) public subroutine wf_dw_retrieve_le (long arg_boxid) public subroutine wf_dw_retrieve_smssendmx () public subroutine wf_dw_retrieve_mailmsg (long arg_mailid, long arg_boxid, string arg_boxname) public function long wf_findtreeitem (treeview tv_tree, boolean findby, any data) public function string of_globalreplace (string as_source, string as_old, string as_new) public subroutine wf_move () end prototypes event ue_revall();ULong lu_class String ls_name SetNull(lu_class) //ls_name = "龙嘉接收邮件工具" //IF FindWindowA(lu_class, ls_name) > 0 THEN // MessageBox('提示','正在收取邮件,请稍后!',information!,OK!) // RETURN //END IF IF NOT FileExists(sys_cur_path + 'longjoe_rev.exe') THEN MessageBox('提示','longjoe_rev.exe文件缺失,请联系软件供应商!',information!,OK!) RETURN END IF // DONE: 检测是否安装.net if not wf_hasDotNet() then MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN end if if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) 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) + '&'& + '-1&'& + '0&'& + 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 + '&' IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,ok!) RETURN END IF //alltimmer.of_start(3,"ue_retr_all",'1') Long ll_cpu,ll_cpu1,ll_hwnd ll_cpu = CPU() DO WHILE CPU() - ll_cpu <2000 Yield() LOOP DO DO WHILE CPU() - ll_cpu < 2000 Yield() LOOP ll_hwnd = findWindow("WindowsForms10.Window.8.app.0.33c0d9d","收取邮件") IF ll_hwnd = 0 THEN ll_cpu1 = CPU() DO WHILE CPU() - ll_cpu1 < 1000 Yield() LOOP ll_hwnd = findWindow("WindowsForms10.Window.8.app.0.33c0d9d","收取邮件") IF ll_hwnd = 0 THEN EXIT END IF END IF LOOP Until(1 = 2) wf_move() end event event ue_revcur();//String ls_msg // //IF wf_revemail(cur_set,ls_msg) = 0 THEN // MessageBox('错误',ls_msg,stopsign!,OK!) // RETURN //ELSE // wf_retrievetree(1) // MessageBox('提示','收取邮件完成!',information!,OK!) //END IF // //if cur_set.mailid <= 0 then // DONE: cur_set不准确 // MessageBox('提示', '请先选择邮件账号', information!, OK!) // return //end if Long Handle Handle = wf_tv_getacount(wf_tv_getcurrent()) IF Handle <= 0 THEN MessageBox('提示', '请先选择邮件帐号', information!, OK!) RETURN END IF s_tv_data1 tv_data tv_data = wf_tv_getdata(Handle) Long ll_mailid ll_mailid = tv_data.relid ULong lu_class String ls_name SetNull(lu_class) //ls_name = "龙嘉接收邮件工具" //IF FindWindowA(lu_class, ls_name) > 0 THEN // MessageBox('提示','正在收取邮件,请稍后!',information!,OK!) // RETURN //END IF IF Not FileExists(sys_cur_path + 'longjoe_rev.exe') THEN MessageBox('提示','longjoe_rev.exe文件缺失,请联系软件供应商!',information!,OK!) RETURN END IF // DONE: 检测是否安装.net IF Not wf_hasDotNet() THEN MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN END IF IF Not has_fj_tran THEN MessageBox('提示','未设置邮件数据库!',information!,OK!) RETURN END IF String ls_run //MESSAGEBOX('','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(ll_mailid) + '&'& + '0&'& + 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 + '&' //messagebox('','exit') IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,OK!) RETURN END IF //WindowsForms10.Window.8.app.0.33c0d9d //curtimmer.of_start(3,"ue_retr_cur",'1')‘ Long ll_cpu,ll_cpu1,ll_hwnd ll_cpu = CPU() DO WHILE CPU() - ll_cpu <2000 Yield() LOOP DO DO WHILE CPU() - ll_cpu < 2000 Yield() LOOP ll_hwnd = findWindow("WindowsForms10.Window.8.app.0.33c0d9d","收取邮件") IF ll_hwnd = 0 THEN ll_cpu1 = CPU() DO WHILE CPU() - ll_cpu1 < 1000 Yield() LOOP ll_hwnd = findWindow("WindowsForms10.Window.8.app.0.33c0d9d","收取邮件") IF ll_hwnd = 0 THEN EXIT END IF END IF LOOP Until(1 = 2) wf_move() end event event ue_sendall();ULong lu_class String ls_name SetNull(lu_class) //ls_name = "龙嘉发送邮件工具" //IF FindWindowA(lu_class, ls_name) > 0 THEN // MessageBox('提示','正在发送邮件,请稍后!',information!,OK!) // RETURN //END IF if not FileExists(sys_cur_path + 'longjoe_rev.exe') then MessageBox('提示','longjoe_rev.exe文件缺失,请联系软件供应商!',information!,OK!) RETURN end if // DONE:检测是否安装.net if not wf_hasDotNet() then MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN end if if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) 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) + '&'& + '-1&'& + '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 + '&' IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,ok!) RETURN END IF //alltimmer.of_start(3,"ue_retr_all",'1') //Long i,sendcount,j,sendmxcount,k,l,fjcount,rslt = 1,ll_cnt_lp //datastore ds_revlist,ds_send,ds_fj //String errmsg,arg_msg //ds_revlist = CREATE datastore //ds_send = CREATE datastore //ds_fj = CREATE datastore //ds_revlist.DataObject = 'dw_email_sendmx' //ds_revlist.SetTransObject(sqlca) //ds_send.DataObject = 'dw_email_view_send' //ds_send.SetTransObject(sqlca) //ds_fj.DataObject = 'ds_email_fj' //ds_fj.SetTransObject(sqlca) // //s_email_send s_send, s_send_null //s_email_sendmx s_sendmx ,s_sendmx_null //s_email_fj s_fj, s_fj_null //s_email_set ss_set, ss_set_null // // // //FOR i = 1 TO all_count // ss_set = ss_set_null // ss_set = s_set[i] // sendcount = ds_send.Retrieve(s_set[i].mailid) // IF sendcount > 0 THEN // Open(w_sys_wait_jdt) //初始化进度条 // w_sys_wait_jdt.Show() // w_sys_wait_jdt.wf_accepttol(sendcount) // ll_cnt_lp = 0 // FOR j = 1 TO sendcount // // ll_cnt_lp++ // w_sys_wait_jdt.st_msg.Text = cur_set.mailuser + "<" + cur_set.mailAddress + ">"+ " 正在发送邮件(" + String(j) + "/" + String(sendcount) + ")." //进度信息 // w_sys_wait_jdt.wf_inc(ll_cnt_lp) // // s_send = s_send_null // s_sendmx = s_sendmx_null // s_fj = s_fj_null // // sendmxcount = ds_revlist.Retrieve(ds_send.Object.id[j]) // fjcount = ds_fj.Retrieve(ds_send.Object.id[j],0) // IF sendmxcount > 0 THEN // // s_send.Subject = Trim(ds_send.Object.Subject[j]) // s_send.Priority = ds_send.Object.Priority[j] // s_send.Textbody = Trim(ds_send.Object.Textbody[j]) // s_send.sendid = ds_send.Object.id[j] // // FOR k = 1 TO sendmxcount // IF Trim(ds_revlist.Object.revaddress[k]) <> '' THEN // s_sendmx.revaddress[k] = Trim(ds_revlist.Object.revaddress[k]) // END IF // NEXT // // IF fjcount > 0 THEN // FOR l = 1 TO fjcount // s_fj.fjid[l] = ds_fj.Object.fjid[l] // s_fj.Filename[l] = ds_fj.Object.Filename[l] // NEXT // END IF // // IF obj_email.f_send(ss_set,s_send,s_sendmx,s_fj,arg_msg) = 0 THEN // errmsg = ss_set.mailuser + "<" + ss_set.mailAddress + ">"+ arg_msg + '~n' // rslt = 0 // GOTO ext // END IF // // END IF // // NEXT // IF IsValid(w_sys_wait_jdt) THEN // Close(w_sys_wait_jdt) // END IF // END IF //NEXT // //ext: //IF IsValid(w_sys_wait_jdt) THEN // Close(w_sys_wait_jdt) //END IF //IF rslt = 0 THEN // MessageBox('错误',errmsg, StopSign!, OK! ) // ROLLBACK; //ELSE // wf_retrievetree(-1) // MessageBox('提示','发送全部邮件成功' ) // COMMIT; //END IF // // // // // // // // // // // // // // // // // // // // // // // // // // end event event ue_sendcur();//if cur_set.mailid <= 0 then // cur_set不准确 // MessageBox('提示', '请先选择邮件账号', information!, OK!) // return //end if long handle handle = wf_tv_getacount(wf_tv_getcurrent()) if handle <= 0 then MessageBox('提示', '请先选择邮件帐号', information!, OK!) return end if s_tv_data1 tv_data tv_data = wf_tv_getdata(handle) long ll_mailid ll_mailid = tv_data.relid ULong lu_class String ls_name SetNull(lu_class) //ls_name = "龙嘉发送邮件工具" //IF FindWindowA(lu_class, ls_name) > 0 THEN // MessageBox('提示','正在发送邮件,请稍后!',information!,OK!) // RETURN //END IF if not FileExists(sys_cur_path + 'longjoe_rev.exe') then MessageBox('提示','longjoe_rev.exe文件缺失,请联系软件供应商!',information!,OK!) RETURN end if // DONE: 检测是否安装.net if not wf_hasDotNet() then MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN end if if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) 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(ll_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 + '&' IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,ok!) RETURN END IF //curtimmer.of_start(3,"ue_retr_cur",'1') // // //Long i,sendcount,j,sendmxcount,k,l,fjcount,rslt = 1,ll_cnt_lp //datastore ds_revlist,ds_send,ds_fj //String errmsg //ds_revlist = CREATE datastore //ds_send = CREATE datastore //ds_fj = CREATE datastore //ds_revlist.DataObject = 'dw_email_sendmx' //ds_revlist.SetTransObject(sqlca) //ds_send.DataObject = 'dw_email_view_send' //ds_send.SetTransObject(sqlca) //ds_fj.DataObject = 'ds_email_fj' //ds_fj.SetTransObject(sqlca) //s_email_send s_send, s_send_null //s_email_sendmx s_sendmx ,s_sendmx_null //s_email_fj s_fj, s_fj_null // // //sendcount = ds_send.Retrieve(cur_set.mailid) //IF sendcount > 0 THEN // Open(w_sys_wait_jdt) //初始化进度条 // w_sys_wait_jdt.Show() // w_sys_wait_jdt.wf_accepttol(sendcount) // FOR j = 1 TO sendcount // ll_cnt_lp++ // w_sys_wait_jdt.st_msg.Text = cur_set.mailuser + "<" + cur_set.mailAddress + ">"+ " 正在发送邮件(" + String(j) + "/" + String(sendcount) + ")." //进度信息 // w_sys_wait_jdt.wf_inc(ll_cnt_lp) // // s_send = s_send_null // s_sendmx = s_sendmx_null // s_fj = s_fj_null // // sendmxcount = ds_revlist.Retrieve(ds_send.Object.id[j]) // fjcount = ds_fj.Retrieve(ds_send.Object.id[j],0) // IF sendmxcount > 0 THEN // // s_send.Subject = Trim(ds_send.Object.Subject[j]) // s_send.Priority = ds_send.Object.Priority[j] // s_send.Textbody = Trim(ds_send.Object.Textbody[j]) // s_send.sendid = ds_send.Object.id[j] // // FOR k = 1 TO sendmxcount // IF Trim(ds_revlist.Object.revaddress[k]) <> '' THEN // s_sendmx.revaddress[k] = Trim(ds_revlist.Object.revaddress[k]) // END IF // NEXT // // IF fjcount > 0 THEN // FOR l = 1 TO fjcount // s_fj.fjid[l] = ds_fj.Object.fjid[l] // s_fj.Filename[l] = ds_fj.Object.Filename[l] // NEXT // END IF // // IF obj_email.f_send(cur_set,s_send,s_sendmx,s_fj,errmsg) = 0 THEN // errmsg = cur_set.mailuser + "<" + cur_set.mailAddress + ">"+ errmsg + '~n' // rslt = 0 // GOTO ext // END IF // END IF // // // NEXT // //END IF // //ext: // //IF IsValid(w_sys_wait_jdt) THEN // Close(w_sys_wait_jdt) //END IF // //IF rslt = 0 THEN // MessageBox('错误',errmsg, StopSign!, OK! ) // ROLLBACK; //ELSE // wf_retrievetree(1) // MessageBox('提示','发送邮件成功' ) // COMMIT; //END IF // // // // // // // end event event ue_open_fj();dw_fj.AcceptText() IF dw_fj.GetRow() = 0 THEN RETURN Blob ls_filedata Long ll_fjid String ins_cur_fjname,errmsg,lsNull,ls_Pathname SetNull(lsNull) ins_cur_fjname = dw_fj.Object.u_email_fj_filename[dw_fj.GetRow()] ll_fjid = dw_fj.Object.u_email_fj_fjid[dw_fj.GetRow()] SELECTBLOB Fileblob INTO :ls_filedata FROM u_email_fj Where (fjid = :ll_fjid); ls_Pathname = sys_cur_path+fjfilePathname+'\'+ins_cur_fjname IF Trim(ls_Pathname) <> '' THEN IF FileExists(ls_Pathname) THEN FileDelete(ls_Pathname) IF f_blobtofile(ls_Pathname,ls_filedata,errmsg) = 0 THEN MessageBox('系统提示',errmsg) RETURN ELSE //打开附件 ShellExecute32( Handle(THIS), lsNull, ls_Pathname, lsNull, lsNull, 1 ) END IF END IF end event event ue_emailset();IF Not uo_email_power.can_see_mailset(sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限') RETURN END IF //s_edit_index_tran s_tran //传递参数使用 //OpenWithParm(w_email_set,s_tran) Open(w_email_set_list) //String ls_msg //wf_init(ls_msg) end event event ue_rev_email();//Long i //string ls_msg //i = Message.LongParm // //IF wf_revemail(s_set[i],ls_msg) = 0 THEN // MessageBox('错误',ls_msg,stopsign!,OK!) // RETURN //END IF // end event event ue_retr_all();ULong lu_class ,lu_class1 String ls_name,ls_name1 SetNull(lu_class) SetNull(lu_class1) ls_name = "龙嘉发送邮件工具" ls_name1 = "龙嘉接收邮件工具" IF FindWindowA(lu_class, ls_name) > 0 or FindWindowA(lu_class1, ls_name1) > 0 THEN wf_retrievetree(-1) else // alltimmer.stop() END IF end event event ue_retr_cur();ULong lu_class ,lu_class1 String ls_name,ls_name1 SetNull(lu_class) SetNull(lu_class1) ls_name = "龙嘉发送邮件工具" ls_name1 = "龙嘉接收邮件工具" IF FindWindowA(lu_class, ls_name) > 0 or FindWindowA(lu_class1, ls_name1) > 0 THEN wf_retrievetree(1) else // alltimmer.stop() END IF end event event ue_reply();if dw_list.dataobject <> 'dw_email_view_msg' then return dw_list.accepttext() if dw_list.getrow() <= 0 then return s_email_set s_parm string ls_msg S_PARM.ID=dw_list.object.id[dw_list.getrow()] s_parm.mailid = dw_list.object.mailid[dw_list.getrow()] if wf_ds_get_mail_set(s_parm.mailid, s_parm, ls_msg) <> 1 then return end if s_parm.flag = 1 s_parm.revuser = dw_list.object.senduser[dw_list.getrow()] s_parm.revaddress = dw_list.object.sendaddress[dw_list.getrow()] s_parm.relid= dw_list.Object.id[dw_list.GetRow()] s_parm.reltype = 3 s_parm.subject =" RE:" + dw_list.object.subject[dw_list.getrow()]//带主题 OpenWithParm(w_email_send_new,s_parm) end event event ue_sendother();dw_list.AcceptText() IF dw_list.GetRow() <= 0 THEN RETURN s_email_set s_parm String ls_msg IF dw_list.DataObject = 'dw_deal_admsg_1_copy' Or dw_list.DataObject = 'dw_hismsg_copy' THEN // 选择账号 Long ll_id = 0 //传递参数使用 OpenWithParm(w_email_set,ll_id) s_parm = Message.PowerObjectParm IF s_parm.mailid <= 0 THEN RETURN END IF ELSEIF dw_list.DataObject = 'dw_email_view_msg' THEN Long mailid mailid = dw_list.Object.mailid[dw_list.GetRow()] IF wf_ds_get_mail_set(mailid, s_parm, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF dw_list.DataObject = 'dw_sms_spring_send' THEN s_spring_send s_send s_send.msg = dw_list.Object.msg[dw_list.GetRow()] s_send.sendid = 0 s_send.sendflag = 2 s_send.empid = sys_empid openwithparm(w_sms_send_new, s_send) RETURN ELSE RETURN END IF s_parm.flag = 2 IF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN s_parm.Title = dw_list.Object.sys_admsgmx_s_msgtitle[dw_list.GetRow()] s_parm.reltype = 2 s_parm.relid = dw_list.Object.sys_admsgmx_msgid[dw_list.GetRow()] IF wf_admsg_gethtml(s_parm.relid, s_parm.htmlbody, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF dw_list.DataObject = 'dw_hismsg_copy' THEN s_parm.Title = dw_list.Object.s_msgtitle[dw_list.GetRow()] s_parm.reltype = 2 s_parm.relid = dw_list.Object.msgid[dw_list.GetRow()] IF wf_admsg_gethtml(s_parm.relid, s_parm.htmlbody, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF dw_list.DataObject = 'dw_email_view_msg' THEN s_parm.reltype = 0 s_parm.relid = dw_list.Object.id[dw_list.GetRow()] s_parm.Title = dw_list.Object.Subject[dw_list.GetRow()] IF wf_mail_gethtml(s_parm.relid, s_parm.htmlbody, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF ELSEIF dw_list.DataObject = '' then elseif dw_list.DataObject = '' then END IF //s_parm.textbody = ole_1.object.document.body.innertext //s_parm.htmlbody = blob(ole_1.object.document.body.innerhtml) S_PARM.ID=dw_list.object.id[dw_list.getrow()] OpenWithParm(w_email_send_new,s_parm) //wf_retrievetree(1) end event event ue_del(); //messagebox('','del') IF tv_data_move.a_long = 0 Or tv_data_move.b_string <> "废件箱" THEN IF Not uo_email_power.can_deleteemail(sys_msg_pow) THEN MessageBox(publ_operator,'你没有删除邮件的权限') RETURN END IF ELSEIF tv_data_move.a_long <> 0 And tv_data_move.b_string = "废件箱" THEN IF Not uo_email_power.can_deleteemail_forever(sys_msg_pow) THEN MessageBox(publ_operator,'你没有彻底删除邮件的权限') RETURN END IF END IF If (dw_list.DataObject <> 'dw_email_view_msg' ) Or Not (dw_list.RowCount() > 0) THEN RETURN s_email_box box String ls_msg Long i IF wf_ds_get_mail_box(dw_list.Object.boxid[1], box, ls_msg) <> 1 THEN RETURN END IF IF box.boxtype = '废件箱' THEN IF MessageBox ("询问","是否确定要永久删除选中邮件吗",Question!,YesNo! ) = 2 THEN RETURN dw_list.SetRedraw(False) FOR i = dw_list.RowCount() To 1 Step -1 IF dw_list.IsSelected(i) THEN IF wf_ds_del_msg(dw_list.Object.id[i], ls_msg) = 1 THEN ins_deletingrow = 1 dw_list.DeleteRow(i) ins_deletingrow = 0 END IF END IF NEXT dw_list.Trigger Event RowFocusChanged(dw_list.GetRow()) dw_list.SetRedraw(True) wf_tv_reflash(wf_tv_getcurrent()) ELSE IF MessageBox ("询问","是否确定要把当前邮件放入废件吗",Question!,YesNo! ) = 2 THEN RETURN Long trunkboxid trunkboxid = wf_ds_gettrunkbox(dw_list.Object.mailid[1]) IF trunkboxid <= 0 THEN MessageBox('错误', '查找帐号的废件箱失败', stopsign!) RETURN END IF dw_list.SetRedraw(False) FOR i = dw_list.RowCount() To 1 Step -1 IF dw_list.IsSelected(i) THEN IF wf_ds_move_msg_box(dw_list.Object.id[i], trunkboxid, ls_msg) = 1 THEN ins_deletingrow = 1 dw_list.DeleteRow(i) ins_deletingrow = 0 END IF END IF NEXT dw_list.Trigger Event RowFocusChanged(dw_list.GetRow()) dw_list.SetRedraw(True) wf_tv_reflash(wf_tv_getcurrent()) wf_tv_reflash(wf_tv_gettrunkhandle(wf_tv_GetCurrent())) END IF end event event ue_send();//// DONE: 发送选中邮件 //int rslt = 1 //s_email_send s_send //s_email_sendmx s_sendmx //s_email_fj s_fj //string ls_msg //long ll_row, ll_sendid, ll_sendmx_count, ll_fj_count //ll_row = dw_list.getrow( ) //if ll_row <= 0 then return //ll_sendid = dw_list.object.id[ll_row] // //if cur_set.viewtype <> 2 then // 不是发件箱的邮件另存后再发送 // if obj_email.uf_get_send(ll_sendid, s_send, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext // end if // // if obj_email.uf_get_sendmx(ll_sendid, s_sendmx, ll_sendmx_count, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext // end if // // if obj_email.uf_get_fj(ll_sendid, 0, s_fj, ll_fj_count, ls_msg, true) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext // end if // // s_send.sendid = 0 // s_send.mailtype = 0 // if obj_email.f_save(s_send, s_sendmx, s_fj, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext // end if // ll_sendid = s_send.sendid //end if // //if obj_email.uf_get_send(ll_sendid, s_send, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //if obj_email.uf_get_sendmx(ll_sendid, s_sendmx, ll_sendmx_count, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //if obj_email.uf_get_fj(ll_sendid, 0, s_fj, ll_fj_count, ls_msg, false) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // // //if obj_email.f_send(cur_set, s_send, s_sendmx, s_fj, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //MessageBox('提示', '发送成功') //wf_retrieve() //ext: //if rslt = 0 then // rollback; //elseif rslt = 1 then // commit; //end if end event event ue_saveas();//// DONE: 另存一份到发件箱 //int rslt = 1 //s_email_send s_send //s_email_sendmx s_sendmx //s_email_fj s_fj //string ls_msg //long ll_row, ll_sendid, ll_sendmx_count, ll_fj_count //ll_row = dw_list.getrow( ) //if ll_row <= 0 then return //ll_sendid = dw_list.object.id[ll_row] //if obj_email.uf_get_send(ll_sendid, s_send, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //if obj_email.uf_get_sendmx(ll_sendid, s_sendmx, ll_sendmx_count, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //if obj_email.uf_get_fj(ll_sendid, 0, s_fj, ll_fj_count, ls_msg, true) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //s_send.sendid = 0 //s_send.mailtype = 0 //if obj_email.f_save(s_send, s_sendmx, s_fj, ls_msg) <> 1 then // MessageBox('系统提示', ls_msg, StopSign!) // rslt = 0 // goto ext //end if // //MessageBox('提示', '另存成功') //wf_retrieve() //ext: //if rslt = 0 then // rollback; //elseif rslt = 1 then // commit; //end if end event event ue_import_eml();s_tv_data1 tv_data tv_data = wf_tv_getdata(wf_tv_getcurrent()) if tv_data.a_string <> C_mailbox then MessageBox('提示', '请先选择导入邮箱') return end if string ls_title, ls_pathname, ls_filename[], ls_extension, ls_filter ls_title = '选择eml文件导入' ls_extension = 'eml' ls_filter = 'eml文件,*.eml' if GetFileOpenName(ls_title, ls_pathname, ls_filename, ls_extension, ls_filter) <> 1 then return end if long ll_i open(w_sys_wait_jdt) w_sys_wait_jdt.wf_accepttol(upperbound(ls_filename)) for ll_i = lowerbound(ls_filename) to upperbound(ls_filename) string ls_emlFile if upperbound(ls_filename) = 1 then ls_emlFile = ls_pathname else ls_emlFile = ls_pathname + '\' + ls_filename[ll_i] end if w_sys_wait_jdt.wf_set_msg('正在导入' + ls_emlFile) // 导入文件 string ls_msg, ls_sumMsg = '' if wf_import_eml(ls_emlFile, ls_msg) <> 1 then // 导入文件失败 ls_sumMsg = '导入文件失败:' + ls_emlFile + ';原因:' + ls_msg + '~r~n' end if w_sys_wait_jdt.wf_inc(ll_i) next close(w_sys_wait_jdt) if ls_sumMsg <> '' then MessageBox('', ls_sumMsg) end if tv_1.trigger event selectionchanged(-1, wf_tv_getcurrent()) //if cur_set.mailid <= 0 then // MessageBox('提示', '请先选择导入账号') // return //end if // //string ls_title, ls_pathname, ls_filename[], ls_extension, ls_filter //ls_title = '选择eml文件导入' //ls_extension = 'eml' //ls_filter = 'eml文件,*.eml' // //if GetFileOpenName(ls_title, ls_pathname, ls_filename, ls_extension, ls_filter) <> 1 then // return //end if // //long ll_i //for ll_i = lowerbound(ls_filename) to upperbound(ls_filename) // string ls_emlFile // if upperbound(ls_filename) = 1 then // ls_emlFile = ls_pathname // else // ls_emlFile = ls_pathname + '\' + ls_filename[ll_i] // end if // // 导入文件 // string ls_msg, ls_sumMsg = '' // if wf_import_eml(ls_emlFile, ls_msg) <> 1 then // // 导入文件失败 // ls_sumMsg = '导入文件失败:' + ls_emlFile + ';原因:' + ls_msg + '~r~n' // end if //next // //if ls_sumMsg <> '' then // MessageBox('', ls_sumMsg) //end if end event event ue_msg_retr();wf_retrieve() end event event ue_msg_back();String sendemp,msgtitle,msg Long ll_row ll_row = dw_list.GetRow() IF ll_row <= 0 THEN RETURN sendemp = dw_list.Object.sendemp[ll_row] msgtitle = dw_list.Object.sys_admsgmx_s_msgtitle[ll_row] msg = dw_list.Object.sys_admsgmx_s_msg[ll_row] s_admsg s_msg s_msg.sendemp = sendemp s_msg.msgtitle = msgtitle s_msg.msg = msg s_msg.ifback = 1 OpenWithParm(w_msg_send,s_msg) end event event ue_msg_del();Long rslt = 1,ls_msgid ,ls_empid,ls_senddtint,row String arg_msg uo_transmsg uo_msg row = dw_list.GetRow() IF row > 0 THEN IF MessageBox ("询问","是否确定要确认当前消息记录?"+' '+String(dw_list.Object.sys_admsgmx_s_msgtitle[row]),Question!,YesNo! ) = 2 THEN RETURN ls_msgid = dw_list.Object.sys_admsgmx_msgid[row] ls_empid = dw_list.Object.sys_admsgmx_empid[row] ls_senddtint = dw_list.Object.sys_admsgmx_senddtint[row] rslt = uo_msg.f_redeal_admsg(ls_msgid,ls_senddtint,ls_empid,arg_msg,TRUE) IF rslt = 0 THEN MessageBox('提示',arg_msg,information!,ok!) ELSE THIS.TriggerEvent("ue_msg_retr") END IF END IF end event event ue_msg_his();open(w_msg_his) end event event ue_msg_view1();ls_dealflag = 0 wf_retrieve() end event event ue_msg_view2();ls_dealflag = -1 wf_retrieve() end event event ue_date1();em_1.text = string(today(),"yyyy-mm-dd") em_2.text = string(today(),"yyyy-mm-dd") end event event ue_date2(); Int li_DayNum li_DayNum = DayNumber(Today()) em_1.Text = String(RelativeDate ( Today(), 1 - li_DayNum ),"yyyy-mm-dd") em_2.Text = String(RelativeDate ( Today(), 7 - li_DayNum ),"yyyy-mm-dd") end event event ue_date3(); Int li_Month, li_Year, li_Days li_Month = Month(Today()) li_Year = Year(Today()) li_Days = days_in_month(li_Month, li_Year) em_1.Text = String(Date(li_Year, li_Month, 1),"yyyy-mm-dd") em_2.Text = String(Date(li_Year, li_Month, li_Days),"yyyy-mm-dd") end event event ue_msg_send();IF NOT IsValid(w_msg_send) THEN s_admsg s_msg s_msg.ifback = 0 OpenWithParm(w_msg_send,s_msg) END IF end event event ue_emailset_property();s_email_set s_setparm s_tv_data1 tv_data tv_data = wf_tv_getdata(wf_tv_getcurrent()) if tv_data.a_string <> C_mailacount then return s_setparm.mailid = tv_data.relid if s_setparm.mailid > 0 then if uo_email_power.can_edit(sys_msg_pow) then s_setparm.flag = 1 else s_setparm.flag = 0 end if openWithParm(w_email_set_detail, s_setparm) end if end event event ue_export_eml();if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) RETURN end if //if cur_set.mailid <= 0 then return long i, ll_cnt = 0 string ls_title, ls_filepath, ls_filename, ls_extension, ls_filter long ll_id blob lb_orgData string ls_msg for i = 1 to dw_list.RowCount() if dw_list.isselected(i) then ll_cnt ++ end if next if ll_cnt < 1 then return if ll_cnt > 1 then ls_title = '导出邮件' if GetFolder(ls_title, ls_filepath) <> 1 then return end if if right(ls_filepath, 1) <> '\' then ls_filepath = ls_filepath + '\' end if string ls_sum = '' string ls_file long ll_inc = 0 open(w_sys_wait_jdt) w_sys_wait_jdt.wf_accepttol(ll_cnt) for i = 1 to dw_list.RowCount() if dw_list.isselected(i) then ll_inc ++ ll_id = dw_list.object.id[i] ls_file = dw_list.object.subject[i] ls_sum = ls_sum + '保存<' + ls_file + '>' w_sys_wait_jdt.wf_set_msg('正在导出<' + ls_file + '>') selectblob orgData INTO :lb_orgData from u_email_msg where ID = :ll_id using fj_tran; if fj_tran.sqlcode <> 0 then ls_sum = ls_sum + '失败,获取原始数据失败,' + fj_tran.sqlerrtext + '~r~n' continue end if wf_str_modFilePath(ls_file) if FileExists(ls_filepath + ls_file + '.eml') then long ll_num = 1 do while FileExists(ls_filepath + ls_file + '('+string(ll_num)+').eml') ll_num ++ loop ls_file = ls_filepath + ls_file + '('+string(ll_num)+').eml' else ls_file = ls_filepath + ls_file + '.eml' end if if f_blobtofile(ls_file, lb_orgData, ls_msg) <> 1 then ls_sum = ls_sum + '失败,' + ls_msg + '~r~n' continue end if ls_sum = ls_sum + '成功,保存到' + ls_file + '~r~n' w_sys_wait_jdt.wf_set_msg('正在导出<' + ls_file + '>') w_sys_wait_jdt.wf_inc(ll_inc) end if next close(w_sys_wait_jdt) MessageBox('提示', ls_sum) return end if if dw_list.GetRow() <= 0 then return ls_title = '导出邮件' ls_extension = 'eml' ls_filter = 'eml文件,*.eml' ls_filepath = dw_list.object.subject[dw_list.GetRow()] + '.eml' wf_str_modFilePath(ls_filepath) if GetFileSaveName(ls_title, ls_filepath, ls_filename, ls_extension, ls_filter) <> 1 then return end if ll_id = dw_list.object.id[dw_list.GetRow()] selectblob orgData INTO :lb_orgData from u_email_msg where ID = :ll_id using fj_tran; if fj_tran.sqlcode <> 0 then MessageBox('系统错误', '网络或其它原因,获取原始数据失败:' + fj_tran.sqlerrtext, stopsign!) return end if if f_blobtofile(ls_filepath, lb_orgData, ls_msg) <> 1 then MessageBox('系统错误', '保存文件失败:' + ls_msg, stopsign!) return end if MessageBox('文件保存成功', ls_filepath) end event event ue_newlebox();s_tv_data1 tv_data Long parentid tv_data = wf_tv_getdata(wf_tv_getcurrent()) IF tv_data.a_string = C_leroot THEN parentid = 0 ELSEIF tv_data.a_string = C_lebox THEN parentid = tv_data.relid ELSE RETURN END IF uo_ljmail_box uo_box uo_box = Create uo_ljmail_box String ls_msg s_ljmail_box s_box s_box.boxid = 0 s_box.boxname = '新目录' s_box.empid = sys_empid s_box.parentid = parentid s_box.boxtype = 5 IF uo_box.uf_save(Ref s_box, Ref ls_msg) <> 1 THEN MessageBox('错误1', ls_msg, stopsign!) GOTO ext END IF tv_data.a_string = C_lebox tv_data.relid = s_box.boxid tv_data.b_string = s_box.boxname tv_data.a_long = s_box.boxtype tv_data.b_long = s_box.empid Long boxhandle boxhandle = wf_tv_insert(wf_tv_getcurrent(), s_box.boxname, 7, tv_data) tv_1.SelectItem(boxhandle) tv_1.EditLabel(boxhandle) ext: Destroy uo_box // // // //if box.uf_newbox(mailid, parentid, '新目录', true, ls_msg) <> 1 then // MessageBox('错误', ls_msg, stopsign!) // return //end if // //s_tv_data1 s_box //s_box.relid = box.boxid //s_box.a_string = C_mailbox //s_box.b_string = box.boxname //s_box.a_long = mailid //s_box.b_long = box.isdefault //long unread //unread = wf_box_getunread(box.boxid) //long totle //totle = wf_box_gettotle(box.boxid) //string label //label = trim(box.boxname) + '(' + string(unread) + '/' + string(totle) + ')' // //long boxhandle //boxhandle = wf_tv_insert(wf_tv_getcurrent(), label, box.picindex, s_box) // //tv_1.SelectItem(boxhandle) // //tv_1.EditLabel(boxhandle) // // //destroy box end event event ue_renamebox();tv_1.EditLabel(wf_tv_getcurrent()) end event event ue_delbox();s_tv_data1 tv_data long curhandle curhandle = wf_tv_getcurrent() tv_data = wf_tv_getdata(curhandle) if tv_data.a_string <> C_mailbox then return end if uo_email_box box box = create uo_email_box box.commit_tran = commit_tran box.fj_tran = fj_tran string ls_msg if box.uf_del(tv_data.relid, ls_msg) = 1 then tv_1.deleteitem(curhandle) else MessageBox('删除失败', ls_msg, stopsign!) end if destroy box end event event ue_newbox();s_tv_data1 tv_data long mailid, parentid tv_data = wf_tv_getdata(wf_tv_getcurrent()) if tv_data.a_string = C_mailacount then mailid = tv_data.relid parentid = 0 elseif tv_data.a_string = C_mailbox then mailid = tv_data.a_long parentid = tv_data.relid else return end if uo_email_box box box = create uo_email_box box.commit_tran = commit_tran box.fj_tran = fj_tran string ls_msg if box.uf_newbox(mailid, parentid, '新目录', true, ls_msg) <> 1 then MessageBox('错误', ls_msg, stopsign!) return end if s_tv_data1 s_box s_box.relid = box.boxid s_box.a_string = C_mailbox s_box.b_string = box.boxname s_box.a_long = mailid s_box.b_long = box.isdefault long unread unread = wf_box_getunread(box.boxid) long totle totle = wf_box_gettotle(box.boxid) string label label = trim(box.boxname) + '(' + string(unread) + '/' + string(totle) + ')' long boxhandle boxhandle = wf_tv_insert(wf_tv_getcurrent(), label, box.picindex, s_box) tv_1.SelectItem(boxhandle) tv_1.EditLabel(boxhandle) destroy box end event event ue_set_signature();open(w_email_signmanage) end event event ue_revlemsg();open(w_ljmail_revmsg) end event event ue_afteropen();Long ll_num Long ll_row ll_num = Message.DoubleParm tv_1.SelectItem(ins_innerrevhandle) tv_1.trigger event selectionchanged(0, ins_innerrevhandle) IF ll_num > 0 And dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN ll_row = dw_list.Find('sys_admsgmx_msgid = ' + String(ll_num), 1, dw_list.RowCount()) IF ll_row > 0 THEN dw_list.SetRow(ll_row) dw_list.ScrollToRow(ll_row) dw_list.SelectRow(0, False) dw_list.SelectRow(ll_row, True) END IF END IF IF dw_list.GetRow() > 0 THEN dw_list.Trigger Event RowFocusChanged(dw_list.GetRow()) END IF end event event ue_viewbill_msg();String ls_code Long ll_scid Long ll_row IF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN ll_row = dw_list.GetRow() IF ll_row > 0 THEN ll_scid = dw_list.Object.sys_admsgmx_scid[ll_row] ls_code = dw_list.Object.sys_admsgmx_billcode[ll_row] IF ls_code <> '' THEN f_open_win(ll_scid,ls_code) END IF END IF END IF end event event ue_move_eml(); //tv_data = wf_tv_getdata(Handle) openwithparm(w_email_move, tv_data_move) this.cb_fresh.TriggerEvent(Clicked!) //s_return = message.powerobjectparm end event event ue_set_cust();s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位PKID (备用) String ls_souce,ls_name,ls_email IF dw_list.RowCount() <= 0 THEN RETURN END IF s_custom s_tran_cust ls_souce = String(dw_list.Object.sendman[dw_list.GetRow()]) ls_name = Left(ls_souce,Pos(ls_souce,"<") - 1) ls_email = Right(ls_souce,Len(ls_souce) - Pos(ls_souce,"<") ) ls_email = Left(ls_email,Len(ls_email) - 1) s_ch_tran.d_long = 1 s_tran_cust.cuscode = String(Today(), "yyyyMMddHHmmss") s_tran_cust.Name = ls_name s_tran_cust.email = ls_email s_ch_tran.a_any = s_tran_cust OpenWithParm(W_cust_edit,s_ch_tran) //调用 //long ll_row // // w_cust_edit_popup w_me_cust_edit_popup // f_sys_main(105) // w_me_cust_edit_popup = s_sys_win_open[105].win // DO WHILE Not IsValid(w_me_cust_edit_popup) // Yield() // LOOP // // w_me_cust_edit_popup.cb_add.TriggerEvent('clicked') //按新建客户 // ll_row = w_me_cust_edit_popup.tab_1.tabpage_1.dw_base.GetRow() // w_me_cust_edit_popup.tab_1.tabpage_1.dw_base.Object.cuscode[ll_row] =string(today(), "yyyyMMddHHmmss") //编号 // w_me_cust_edit_popup.tab_1.tabpage_1.dw_base.Object.Name[ll_row] = string(dw_list.Object.sendman[dw_list.GetRow()]) //名称 // w_me_cust_edit_popup.tab_1.tabpage_1.dw_base.Object.custype[ll_row] = "张三" //业务员 // w_me_cust_edit_popup.tab_1.tabpage_1.dw_base.Object.rep[ll_row] = "小明" //联系人 end event event ue_set_email_move();s_edit_index_tran ss_tran Long ll_row,L1,L2 ll_row = dw_list.GetRow() IF ll_row <= 0 THEN RETURN ss_tran.b_long = dw_list.Object.mailID[ll_row] ss_tran.b_string = dw_list.Object.sendman[ll_row] L1 = Pos(ss_tran.b_string,"<") L2 = Pos(ss_tran.b_string,">") ss_tran.b_string = Mid(ss_tran.b_string,L1 + 1 ,L2 - L1 - 1) //messagebox(string(ss_tran.b_long),ss_tran.b_string) OpenWithParm(w_set_email_move,ss_tran) end event event ue_autorev();Open(w_email_ds_rev) //f_SetProfileString (sys_empid,publ_userid+'_'+'sle_auottime', "autotime",String(long(trim(sle_auottime.text)))) ll_autotime = Long(f_ProfileString(sys_empid,publ_userid+'_'+'sle_auottime', "autotime",'0')) IF ll_autotime > 0 THEN if_autorev = True timer(ll_autotime * 60) END IF end event event ue_rep_group();s_edit_index_tran s_tranf OpenWithParm(w_rep_group,s_tranf) //调用 end event public function integer wf_init (ref string arg_msg);////用游标读取明细 // Long i,NO_MXCHECK,rslt = 1 //Long ll_count //i = 1 //all_count = 0 //DECLARE CUR_INWAERMX CURSOR FOR // SELECT u_email_set.mailID, // u_email_set.mailuser, // u_email_set.mailaddress, // u_email_set.mailpsw, // u_email_set.popset, // u_email_set.smtpset, // u_email_set.Othermsg, // 0, // u_email_set.popport, // u_email_set.smtpport, // u_email_set.ifdelmsg, // u_email_set.gap // FROM u_email_set // WHERE ( u_email_set.empid = :sys_empid AND u_email_set.mailtype = 0) // OR u_email_set.mailtype = 1; // //OPEN CUR_INWAERMX; //FETCH CUR_INWAERMX INTO :s_set[i].mailID, // :s_set[i].mailuser, // :s_set[i].mailaddress, // :s_set[i].mailpsw, // :s_set[i].popset, // :s_set[i].smtpset, // :s_set[i].Othermsg, // :s_set[i].viewtype, // :s_set[i].popport, // :s_set[i].smtpport, // :s_set[i].ifnodelmsg, // :s_set[i].gap; //s_set[i].mailpsw = Trim(f_psw_bczh(s_set[i].mailpsw,1,sys_power_key)) //DO WHILE sqlca.SQLCode = 0 // i++ // FETCH CUR_INWAERMX INTO :s_set[i].mailID, // :s_set[i].mailuser, // :s_set[i].mailaddress, // :s_set[i].mailpsw, // :s_set[i].popset, // :s_set[i].smtpset, // :s_set[i].Othermsg, // :s_set[i].viewtype, // :s_set[i].popport, // :s_set[i].smtpport, // :s_set[i].ifnodelmsg, // :s_set[i].gap; // s_set[i].mailpsw = Trim(f_psw_bczh(s_set[i].mailpsw,1,sys_power_key)) //LOOP //CLOSE CUR_INWAERMX; // ////检验明细是否读入完整 //SELECT COUNT(*) INTO :NO_MXCHECK // FROM u_email_set // WHERE ( u_email_set.empid = :sys_empid AND u_email_set.mailtype = 0) // OR u_email_set.mailtype = 1; //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arG_MSG = "查询操作失败,邮箱数量" // GOTO ext //END IF // //IF i <> (NO_MXCHECK+1) THEN // rslt = 0 // arG_MSG = "查询操作失败,邮箱数量" // GOTO ext //END IF // //Long hand,li_handl,li_handl_son //TreeViewItem ll_tvi //String ls_mailuser //Long tvi_hdl = 0 //Long ll_count1 //datastore ds_notread //ds_notread = CREATE datastore //ds_notread.DataObject = 'dw_email_view_rev_notread' //ds_notread.SetTransObject(sqlca) // //datastore ds_temp //ds_temp = CREATE datastore // //DO UNTIL tv_1.FindItem(RootTreeItem!, 0) = -1 // tv_1.DeleteItem(tvi_hdl) //LOOP // // //hand = tv_1.InsertItemLast(0,'全部邮箱',1) // //// 添加内部消息 //s_email_set s_tmp //li_handl = tv_1.InsertItemLast(hand,'内部消息',8) //IF tv_1.GetItem ( li_handl, ll_tvi) = 1 THEN // s_tmp.mailid = -1 // s_tmp.viewtype = 0 // ll_tvi.Data = s_tmp // tv_1.SetItem( li_handl, ll_tvi ) //END IF //li_handl_son = tv_1.InsertItemLast(li_handl,'收件箱',7) //IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // s_tmp.mailid = -1 // s_tmp.viewtype = 1 // ll_tvi.Data = s_tmp // SELECT count(0) INTO :ll_count // FROM sys_admsgmx // WHERE ( sys_admsgmx.dealflag = :ls_dealflag OR // :ls_dealflag = -1 ) AND // sys_admsgmx.empid = :sys_empid; // if sqlca.sqlcode <> 0 then // rslt = 0 // arg_msg = '数据库连接失败,获取内部消息收件箱数量失败' // goto ext // end if // ll_tvi.label = '收件箱(' + string(ll_count) + ')' // tv_1.SetItem( li_handl_son,ll_tvi ) //END IF //li_handl_son = tv_1.InsertItemLast(li_handl,'发件箱',8) //IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // s_tmp.mailid = -1 // s_tmp.viewtype = 2 // ll_tvi.Data = s_tmp // DateTime first_date, end_date // first_date = DateTime(Date(em_1.Text), Time(0)) // end_date = datetime(date(em_2.Text), Time('23:59:59')) // SELECT count(0) INTO :ll_count // FROM Sys_admsg // WHERE (Sys_admsg.sendempid = :sys_empid ) AND // ( sys_admsg.senddt >= :first_date ) AND // ( sys_admsg.senddt < :end_date ); // if sqlca.sqlcode <> 0 then // rslt = 0 // arg_msg = '数据库连接失败,获取内部消息发件箱数量失败' // goto ext // end if // ll_tvi.label = '发件箱(' + string(ll_count) + ')' // tv_1.SetItem( li_handl_son,ll_tvi ) //END IF //tv_1.expanditem(li_handl) ///////////////////////////////////////// // //FOR i = 1 TO NO_MXCHECK // ls_mailuser = Trim(s_set[i].mailuser) + '<' + Trim(s_set[i].mailAddress) + '>' // li_handl = tv_1.InsertItemLast(hand,ls_mailuser,2) // IF tv_1.GetItem ( li_handl, ll_tvi) = 1 THEN // ll_tvi.Label = ls_mailuser // ll_tvi.Data = s_set[i] // tv_1.SetItem( li_handl, ll_tvi ) // END IF // // li_handl_son = tv_1.InsertItemLast(li_handl,'收件箱',3) // IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // // ds_temp.DataObject = 'dw_email_view_rev' // ds_temp.SetTransObject(sqlca) // ll_count = ds_temp.Retrieve(s_set[i].mailID) // ll_count1 = ds_notread.Retrieve(s_set[i].mailID) // // IF ll_count = 0 THEN // ll_tvi.Label = '收件箱' // ELSE // ll_tvi.Label = '收件箱(' + String(ll_count1) + '/' + String(ll_count) + ')' // END IF // s_set[i].viewtype = 1 // ll_tvi.Data = s_set[i] // tv_1.SetItem( li_handl_son,ll_tvi ) // END IF // // li_handl_son = tv_1.InsertItemLast(li_handl,'发件箱',4) // IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // ds_temp.DataObject = 'dw_email_view_send' // ds_temp.SetTransObject(sqlca) // ll_count = ds_temp.Retrieve(s_set[i].mailID) // IF ll_count = 0 THEN // ll_tvi.Label = '发件箱' // ELSE // ll_tvi.Label = '发件箱(' + String(ll_count) + ')' // END IF // s_set[i].viewtype = 2 // ll_tvi.Data = s_set[i] // tv_1.SetItem( li_handl_son, ll_tvi ) // END IF // // li_handl_son = tv_1.InsertItemLast(li_handl,'已发件箱',5) // IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // ds_temp.DataObject = 'dw_email_view_sent' // ds_temp.SetTransObject(sqlca) // ll_count = ds_temp.Retrieve(s_set[i].mailID) // IF ll_count = 0 THEN // ll_tvi.Label = '已发件箱' // ELSE // ll_tvi.Label = '已发件箱(' + String(ll_count) + ')' // END IF // s_set[i].viewtype = 3 // ll_tvi.Data = s_set[i] // tv_1.SetItem( li_handl_son,ll_tvi ) // END IF // // li_handl_son = tv_1.InsertItemLast(li_handl,'废件箱',6) // IF tv_1.GetItem ( li_handl_son, ll_tvi) = 1 THEN // ds_temp.DataObject = 'dw_email_view_dust' // ds_temp.SetTransObject(sqlca) // ll_count = ds_temp.Retrieve(s_set[i].mailID) // IF ll_count = 0 THEN // ll_tvi.Label = '废件箱' // ELSE // ll_tvi.Label = '废件箱(' + String(ll_count) + ')' // END IF // s_set[i].viewtype = 4 // ll_tvi.Data = s_set[i] // tv_1.SetItem( li_handl_son,ll_tvi ) // END IF // // tv_1.ExpandItem(li_handl) //NEXT //tv_1.ExpandItem(hand) // //all_count = NO_MXCHECK // //IF all_count = 0 THEN // cb_rev.Enabled = FALSE // cb_send.Enabled = FALSE // cb_write.Enabled = FALSE // cb_back.Enabled = FALSE // cb_sendother.Enabled = FALSE // cb_del.Enabled = FALSE //END IF // //ext: RETURN rslt // // // // // // // // // end function public subroutine wf_delfj ();String ls_pathname Long li_count,i ls_pathname = sys_cur_path + fjfilepathname+'\' + '*.*' lb_1.Reset() lb_1.DirList(ls_pathname, 0) li_count = lb_1.TotalItems() IF li_count > 0 THEN FOR i = li_count TO 1 STEP -1 ls_pathname = sys_cur_path+fjfilepathname+'\' + lb_1.Text(i) IF FileExists(ls_pathname) THEN FileDelete(ls_pathname) NEXT END IF end subroutine public function integer wf_revemail (s_email_set arg_set, ref string arg_msg);Long rslt = 1 //String tUID //Long ll_count //Long ll_mailcount //Long ll_attcount //Long i,j //String ls_pathname //String ls_popport //Blob lb_fileblob,lb_null //Long ll_cnt_lp = 0 //String ls_msg //ls_popport = String(arg_set.popport,'###0') //arg_msg = '' //oleobject jmail //oleobject mailmsg //oleobject Attachments //oleobject Attachment //jmail = CREATE oleobject //mailmsg = CREATE oleobject //Attachments = CREATE oleobject //Attachment = CREATE oleobject //jmail.ConnectToNewObject("JMail.pop3") //mailmsg.ConnectToNewObject("JMail.Message") //Attachments.ConnectToNewObject("JMail.Attachments") //Attachment.ConnectToNewObject("JMail.Attachment") //jmail.TimeOut = 3600 //TRY //jmail.Connect(arg_set.mailAddress,arg_set.mailpsw,arg_set.popset, ls_popport ) //CATCH ( oleruntimeerror exIdentifier1 ) //arg_msg = '连接邮箱失败,邮箱设置不正确或者没有连接网络' //END TRY // //IF arg_msg <> '' THEN // GOTO ext2 //END IF // //ll_mailcount = jmail.Count // //SetNull(lb_null) // //String ls_body[],ls_htmlBody[] //Blob ls_filedata[] //s_email_rev s_rev // //IF ll_mailcount = 0 THEN GOTO ext2 // //Open(w_sys_wait_jdt) //初始化进度条 //w_sys_wait_jdt.Show() //w_sys_wait_jdt.wf_accepttol(ll_mailcount) // //FOR i = 1 TO ll_mailcount // ll_cnt_lp++ // w_sys_wait_jdt.st_msg.Text = arg_set.mailuser + "<" + arg_set.mailAddress + ">"+ " 正在收取邮件(" + String(i) + "/" + String(ll_mailcount) + ")." //进度信息 // w_sys_wait_jdt.wf_inc(ll_cnt_lp) // // rslt = 1 // ll_count = 0 // jmail.downloadsinglemessage(i) // tUID = jmail.GetMessageUID(i) // // SELECT count(*) // INTO :ll_count // FROM u_email_rev // Where tUID = :tUID and mailtype <> 2; // IF sqlca.SQLCode <> 0 THEN // ls_msg = '获取已收邮件信息失败' // rslt = 0 // GOTO ext1 // END IF // // IF ll_count > 0 THEN CONTINUE // // mailmsg = jmail.Messages[i] // // s_rev.mailAddress = arg_set.mailAddress // s_rev.Subject = mailmsg.Subject // s_rev.textBody = String(mailmsg.Body) // // s_rev.htmlBody = Blob(mailmsg.htmlBody) // s_rev.senduser = mailmsg.fromname // s_rev.sendaddress = mailmsg.FROM // s_rev.mailsize = mailmsg.size // s_rev.RevID = f_sys_scidentity(0,"u_email_rev","RevID",ls_msg,TRUE, sqlca) //数据commit事务) // IF s_rev.RevID <= 0 THEN // rslt = 0 // GOTO ext1 // END IF // // INSERT INTO u_email_rev( // RevID, // mailID, // mailaddress, // mailtype, // Subject, // senduser, // sendaddress, // revdate, // mailSize, // textBody, // tUID) // VALUES // ( :s_rev.RevID, // :arg_set.mailid, // :s_rev.mailaddress, // 0, // :s_rev.Subject, // :s_rev.senduser, // :s_rev.sendaddress, // getdate(), // :s_rev.mailSize, // :s_rev.textBody, // :tUID); // IF sqlca.SQLCode <> 0 THEN // ls_msg = '向数据库插入已收邮件信息失败' // rslt = 0 // GOTO ext1 // ELSE // COMMIT; // END IF // // IF String(s_rev.htmlBody) <> "" THEN // UPDATEBLOB u_email_rev // Set htmltext = :s_rev.htmlBody // Where RevID = :s_rev.RevID; // IF sqlca.SQLCode <> 0 THEN // ls_msg = '向数据库插入已收邮件信息失败' // rslt = 0 // GOTO ext1 // END IF // END IF // // Attachments = mailmsg.Attachments // IF Attachments.Count = 0 THEN goto ext1 // s_email_fj s_fj // // FOR j = 0 TO Attachments.Count - 1 // Attachment = Attachments.Item[j] // s_fj.fjid[j+1] = f_sys_scidentity(0,"u_email_fj","fjid",ls_msg,TRUE, sqlca) //数据commit事务) // IF s_fj.fjid[j+1] <= 0 THEN // rslt = 0 // GOTO ext1 // END IF // s_fj.Filename[j+1] = Attachment.Name // s_fj.filesize[j+1] = Attachment.size // s_fj.FileType[j+1] = Attachment.contenttype // INSERT INTO u_email_fj // ( fjid, // fjtype, // Relid, // filename, // filesize, // filetype // ) VALUES // ( :s_fj.fjid[j+1], // 1, // :s_rev.RevID, // :s_fj.filename[j+1], // :s_fj.filesize[j+1], // :s_fj.filetype[j+1] // ); // IF sqlca.SQLCode <> 0 THEN // ls_msg = '向数据库插入已收邮件附件信息失败' // rslt = 0 // GOTO ext1 // ELSE // COMMIT; // END IF // // ls_pathname = sys_cur_path+fjfilepathname+'\'+s_fj.Filename[j+1] // IF FileExists(ls_pathname) THEN FileDelete(ls_pathname) // Attachment.savetofile(ls_pathname ) // // lb_fileblob = lb_null // // IF f_filetoblob(ls_pathname,lb_fileblob,ls_msg) = 0 THEN // rslt = 0 // GOTO ext1 // END IF // // IF String(lb_fileblob) <> "" THEN // UPDATEBLOB u_email_fj // Set fileblob = :lb_fileblob // Where fjid = :s_fj.fjid[j+1]; // IF sqlca.SQLCode <> 0 THEN // ls_msg = '向数据库插入已收邮件附件信息失败' // rslt = 0 // GOTO ext1 // ELSE // COMMIT; // END IF // END IF // // FileDelete(ls_pathname) // NEXT // // ext1: // IF rslt = 1 THEN // COMMIT; // if arg_set.ifnodelmsg = 0 then // jmail.deletesinglemessage(i) // end if // ELSEIF rslt = 0 THEN // ROLLBACK; // arg_msg = arg_msg + arg_set.mailuser + "<" + arg_set.mailAddress + ">第" + String(i) + '条,' + ls_msg + '~n' // END IF // // //NEXT // // //ext2: // //IF IsValid(w_sys_wait_jdt) THEN // Close(w_sys_wait_jdt) //END IF // // //IF arg_msg <> '' THEN // rslt = 0 // jmail.Disconnect() //ELSE // rslt = 1 //END IF // //DESTROY jmail RETURN rslt // // // // // // // // // // // // end function public function integer wf_retrievemx (long arg_id, integer arg_fjtype, string arg_address, ref string arg_msg);Int rslt = 1 //String ls_text,ls_html //Blob lb_html //String ls_address //long ll_num, ll_size //blob lb_temp /////清空 // //IF FileExists(Pathname) THEN FileDelete(Pathname) //have_fj = FALSE //have_text = FALSE //have_html = FALSE // // //wf_retreve_inout(arg_address) //wf_retreve_rep(arg_id,arg_fjtype) //ole_1.object.navigate('about:blank') //CHOOSE CASE arg_fjtype // CASE 1 // // cb_back.Enabled = TRUE // cb_sendother.Enabled = TRUE // // SELECT u_email_rev.textBody // INTO :ls_text // FROM u_email_rev, // u_email_set // WHERE ( u_email_rev.mailID = u_email_set.mailID ) AND // ( u_email_rev.revid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '读取已收邮件失败'+sqlca.SQLErrText // rslt = 0 // GOTO ext // END IF // // // IF IsNull(ls_text) OR len(trim(ls_text)) <= 0 THEN // // ELSE //// tab_1.tabpage_1.mle_text.Text = ls_text // have_text = TRUE // END IF // // //// // select datalength(htmltext) INTO :ll_size // from u_email_rev // where ( u_email_rev.revid = :arg_id ); // if sqlca.sqlcode <> 0 then // rslt = 0 // arg_msg = '获取网页正文大小失败>>'+sqlca.SQLErrText // GOTO ext // END IF // // if ll_size > 2048 then // SELECTBLOB htmltext // INTO :lb_html // FROM u_email_rev // Where ( u_email_rev.revid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '下载网页正文失败>>'+sqlca.SQLErrText // GOTO ext // END IF // else // SELECT htmltext // INTO :ls_html // FROM u_email_rev // Where ( u_email_rev.revid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '下载网页正文失败>>'+sqlca.SQLErrText // GOTO ext // END IF // lb_html = blob(ls_html) // end if // // IF IsNull(lb_html) OR len(trim(string(lb_html))) <= 0 THEN // // ELSE // have_html = TRUE // //// //// //// tab_1.tabpage_2.ole_html.Object.navigate('file:///' + Pathname) // END IF // // if have_html then // IF f_blobtofile(Pathname,lb_html,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // END IF // DO WHILE pos(Pathname,'\',1) > 0 // Pathname = Replace(Pathname,pos(Pathname,'\',1),1,'/') // LOOP // ole_1.Object.navigate('file:///' + Pathname) // elseif have_text then // lb_temp = blob(f_texttohtml(ls_text)) // IF f_blobtofile(Pathname,lb_temp,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // END IF // DO WHILE pos(Pathname,'\',1) > 0 // Pathname = Replace(Pathname,pos(Pathname,'\',1),1,'/') // LOOP // ole_1.object.navigate('file:///' + Pathname) // end if // // CASE 0 // // dw_mail.Reset() // cb_back.Enabled = FALSE // cb_sendother.Enabled = true // SELECT u_email_send.textBody // INTO :ls_text // FROM u_email_send, // u_email_set // WHERE ( u_email_send.mailID = u_email_set.mailID ) AND // ( u_email_send.sendid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '读取已收邮件失败'+sqlca.SQLErrText // rslt = 0 // GOTO ext // END IF // IF IsNull(ls_text) OR len(trim(ls_text)) <= 0 THEN // // ELSE //// tab_1.tabpage_1.mle_text.Text = ls_text // have_text = TRUE // END IF // // //// // select datalength(htmltext) INTO :ll_size // from u_email_send // where ( u_email_send.sendid = :arg_id ); // if sqlca.sqlcode <> 0 then // rslt = 0 // arg_msg = '获取网页正文大小失败>>'+sqlca.SQLErrText // GOTO ext // END IF // if ll_size > 2048 then // SELECTBLOB htmltext // INTO :lb_html // FROM u_email_send // Where ( u_email_send.sendid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '下载网页正文失败>>'+sqlca.SQLErrText // GOTO ext // END IF // else // SELECT htmltext // INTO :ls_html // FROM u_email_send // Where ( u_email_send.sendid = :arg_id ) ; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '下载网页正文失败>>'+sqlca.SQLErrText // GOTO ext // END IF // lb_html = blob(ls_html) // end if // // IF IsNull(lb_html) OR len(trim(string(lb_html))) <= 0 THEN // // ELSE // have_html = TRUE // //// // //// //// tab_1.tabpage_2.ole_html.Object.navigate('file:///' + Pathname) // END IF // // /// // if have_html then // IF f_blobtofile(Pathname,lb_html,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // END IF // DO WHILE pos(Pathname,'\',1) > 0 // Pathname = Replace(Pathname,pos(Pathname,'\',1),1,'/') // LOOP // ole_1.object.navigate('file:///' + Pathname) // elseif have_text then // lb_temp = blob(f_texttohtml(ls_text)) // IF f_blobtofile(Pathname,lb_temp,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // DO WHILE pos(Pathname,'\',1) > 0 // Pathname = Replace(Pathname,pos(Pathname,'\',1),1,'/') // LOOP // END IF // ole_1.object.navigate('file:///' + Pathname) // end if // //END CHOOSE // ////附件列表 // //Long count,ls_i //listviewitem l_lvi //s_email_lvfj s_lvfj[] // //SELECT count(*) // INTO :count // FROM u_email_fj // Where ( u_email_fj.relid = :arg_id AND u_email_fj.fjtype = :arg_fjtype ); //IF count > 0 THEN // lv_fj.Visible = TRUE // have_fj = TRUE //ELSE // lv_fj.Visible = FALSE // have_fj = FALSE // GOTO ext //END IF // //DECLARE fj_cur CURSOR FOR // SELECT fjid, // filename, // filesize, // filetype // FROM u_email_fj // Where ( u_email_fj.relid = :arg_id AND u_email_fj.fjtype = :arg_fjtype ); //OPEN fj_cur; // //count = 1 //FETCH fj_cur INTO :s_lvfj[count].fjid,& // :s_lvfj[count].filename,& // :s_lvfj[count].filesize,& // :s_lvfj[count].FileType; //DO WHILE sqlca.SQLCode = 0 // count++ // FETCH fj_cur INTO :s_lvfj[count].fjid,& // :s_lvfj[count].filename,& // :s_lvfj[count].filesize,& // :s_lvfj[count].FileType; //LOOP // //count = count - 1 //CLOSE fj_cur; // // //FOR ls_i = 1 TO count // l_lvi.PictureIndex = 1 // l_lvi.Label = s_lvfj[ls_i].Filename // l_lvi.Data = s_lvfj[ls_i] // lv_fj.InsertItem(ls_i,l_lvi) //NEXT // // // //ext: // ////IF have_html THEN //// tab_1.SelectTab (2) ////ELSE //// tab_1.SelectTab (1) ////END IF //// ////tab_1.tabpage_1.Visible = have_text ////tab_1.tabpage_1.mle_text.Visible = have_text ////tab_1.tabpage_2.Visible = have_html ////tab_1.tabpage_2.ole_html.Visible = have_html // //lv_fj.Visible = have_fj // //this.triggerevent('resize') // // RETURN rslt // end function public subroutine wf_retreve_inout (string arg_address);//IF have_inout and arg_address <> '' THEN // dw_mail.SetRedraw (FALSE) // dw_mail.Retrieve(cur_set.mailid,arg_address) // dw_mail.SetRedraw (TRUE) // dw_fj.SetRedraw (FALSE) // dw_fj.Retrieve(cur_set.mailid,arg_address) // dw_fj.SetRedraw (TRUE) //ELSE // dw_mail.Reset() // dw_fj.Reset() //END IF end subroutine public subroutine wf_retreve_rep (long arg_id, integer arg_fjtype);//IF arg_fjtype = 1 THEN // IF have_rep THEN // p_resize1.TriggerEvent(Clicked!) // END IF // p_resize1.Enabled = FALSE // dw_rep.Reset() //ELSE // p_resize1.Enabled = TRUE // dw_rep.SetRedraw (FALSE) // dw_rep.Retrieve(arg_id) // dw_rep.SetRedraw (TRUE) //END IF end subroutine public subroutine pf_retrievetree (long arg_handl, integer arg_flag);//s_email_set temp_set //Long ll_handl,ll_count,ll_count1 //long mailid //string ls_title //treeviewitem tvi //datastore ds_list // //ds_list = create datastore //ll_handl = arg_handl //ll_handl = tv_1.FindItem(ChildTreeItem!,ll_handl) // //DO WHILE ll_handl > 0 // tv_1.GetItem(ll_handl,tvi) // temp_set = tvi.Data // // IF (arg_flag = -1 OR temp_set.mailid = cur_set.mailid) and (cur_set.mailid > 0) THEN // // CHOOSE CASE temp_set.viewtype // CASE 1 // // ds_list.DataObject = 'dw_email_view_rev' // ds_list.SetTransObject(sqlca) // ll_count = ds_list.Retrieve(temp_set.mailid) // // datastore ds_notread // ds_notread = CREATE datastore // ds_notread.DataObject = 'dw_email_view_rev_notread' // ds_notread.SetTransObject(sqlca) // ll_count1 = ds_notread.Retrieve(temp_set.mailid) // // IF ll_count > 0 THEN // ls_title = '收件箱(' + String(ll_count1) + '/' + String(ll_count) + ')' // ELSE // ls_title = '收件箱' // END IF // CASE 2 // ds_list.DataObject = 'dw_email_view_send' // ds_list.SetTransObject(sqlca) // ll_count = ds_list.Retrieve(temp_set.mailid) // IF ll_count > 0 THEN // ls_title = '发件箱(' + String(ll_count) + ')' // ELSE // ls_title = '发件箱' // END IF // CASE 3 // ds_list.DataObject = 'dw_email_view_sent' // ds_list.SetTransObject(sqlca) // ll_count = ds_list.Retrieve(temp_set.mailid) // IF ll_count > 0 THEN // ls_title = '已发件箱(' + String(ll_count) + ')' // ELSE // ls_title = '已发件箱' // END IF // CASE 4 // ds_list.DataObject = 'dw_email_view_dust' // ds_list.SetTransObject(sqlca) // ll_count = ds_list.Retrieve(temp_set.mailid) // IF ll_count > 0 THEN // ls_title = '废件箱(' + String(ll_count) + ')' // ELSE // ls_title = '废件箱' // END IF // CASE ELSE // cur_address = '' // END CHOOSE // // IF temp_set.viewtype > 0 THEN // tvi.Label = ls_title // tv_1.SetItem(ll_handl, tvi) // END IF // END IF // pf_retrievetree(ll_handl,arg_flag) // ll_handl = tv_1.FindItem(NextTreeItem!,ll_handl) //LOOP // // // end subroutine public subroutine wf_retrieve ();s_tv_data1 tv_data string ls_msg if wf_tv_getcurrent() <= 0 then // DONE:不显示列表与内容 wf_ui_reflash() return end if tv_data = wf_tv_getdata(wf_tv_getcurrent()) if tv_data.a_string = C_innerrev then // DONE: 内部消息收件箱 wf_dw_retrieve_innermsg_rev() elseif tv_data.a_string = C_innersend then // DONE: 内部消息发件箱 wf_dw_retrieve_innermsg_send() elseif tv_data.a_string = C_mailbox then // DONE: 邮箱 long ll_mailid, ll_boxid ll_mailid = tv_data.a_long ll_boxid = tv_data.relid wf_dw_retrieve_mailmsg(ll_mailid, ll_boxid,tv_data.b_string) else dw_list.dataobject = '' end if wf_ui_reflash() //long ll_count,ll_count1 //string ls_title // // st_3.visible = false // em_1.visible = false // pb_em1.visible = false // st_4.visible = false // em_2.visible = false // pb_em2.visible = false // pb_2.visible = false // p_1.visible = false // st_refresh.visible = false // //have_user = false // //// 内部消息 //if cur_set.mailid = -1 then // CHOOSE CASE cur_set.viewtype // CASE 1 // dw_list.DataObject = 'dw_deal_admsg_1_copy' // dw_list.settransobject(sqlca) // ll_count = dw_list.REtrieve(sys_empid, ls_dealflag) // dw_list.Title = '收件箱(' + string(ll_count) + ')' // ls_title = dw_list.Title // CASE 2 // st_3.visible = true // em_1.visible = true // pb_em1.visible = true // st_4.visible = true // em_2.visible = true // pb_em2.visible = true // pb_2.visible = true // p_1.visible = true // st_refresh.visible = true // // dw_list.DataObject = 'dw_hismsg_copy' // dw_list.settransobject(sqlca) // DateTime first_date, end_date // first_date = DateTime(Date(em_1.Text), Time(0)) // end_date = datetime(date(em_2.Text), Time('23:59:59')) // ll_count = dw_list.retrieve(sys_empid,first_date, end_date) // dw_list.Title = '发件箱(' + string(ll_count) + ')' // ls_title = dw_list.Title // CASE ELSE // end CHOOSE // if cur_set.viewtype > 0 then // l_tvi.Label = ls_title // tv_1.SetItem(cur_hand, l_tvi) // end if // this.triggerevent('resize') // return //end if //////////////////////////////////////////// // //CHOOSE CASE cur_set.viewtype // CASE 1 // dw_list.DataObject = 'dw_email_view_rev' // dw_list.Title = '收件箱' // dw_list.SetTransObject(sqlca) // ll_count = dw_list.Retrieve(cur_set.mailid) // // datastore ds_notread // ds_notread = CREATE datastore // ds_notread.DataObject = 'dw_email_view_rev_notread' // ds_notread.SetTransObject(sqlca) // ll_count1 = ds_notread.Retrieve(cur_set.mailid) // // IF ll_count > 0 THEN // ls_title = '收件箱(' + String(ll_count1) + '/' + String(ll_count) + ')' // ELSE // ls_title = '收件箱' // END IF // CASE 2 // dw_list.DataObject = 'dw_email_view_send' // dw_list.Title = '发件箱' // dw_list.SetTransObject(sqlca) // ll_count = dw_list.Retrieve(cur_set.mailid) // IF ll_count > 0 THEN // ls_title = '发件箱(' + String(ll_count) + ')' // ELSE // ls_title = '发件箱' // END IF // CASE 3 // dw_list.DataObject = 'dw_email_view_sent' // dw_list.Title = '已发件箱' // dw_list.SetTransObject(sqlca) // ll_count = dw_list.Retrieve(cur_set.mailid) // IF ll_count > 0 THEN // ls_title = '已发件箱(' + String(ll_count) + ')' // ELSE // ls_title = '已发件箱' // END IF // CASE 4 // dw_list.DataObject = 'dw_email_view_dust' // dw_list.Title = '废件箱' // dw_list.SetTransObject(sqlca) // ll_count = dw_list.Retrieve(cur_set.mailid) // IF ll_count > 0 THEN // ls_title = '废件箱(' + String(ll_count) + ')' // ELSE // ls_title = '废件箱' // END IF // CASE ELSE // cur_address = '' //END CHOOSE // //IF cur_set.viewtype > 0 THEN // l_tvi.Label = ls_title // tv_1.SetItem(cur_hand, l_tvi) //END IF // // this.triggerevent('resize') // end subroutine public subroutine wf_retrievetree (integer arg_flag);// //long ll_handl //ll_handl = tv_1.finditem(RootTreeItem!,0) //if ll_handl > 0 then pf_retrievetree(ll_handl,arg_flag) //if (arg_flag = -1) and (cur_set.mailid = -1) then wf_retrieve() end subroutine public function integer wf_import_eml (string arg_file, ref string arg_msg);Integer rslt = 1 Blob lb_file uo_mimeproxyfactory ll_factory ll_factory = Create uo_mimeproxyfactory s_tv_data1 tv_data tv_data = wf_tv_getdata(wf_tv_getCurrent()) IF tv_data.a_string <> C_mailbox THEN rslt = 0 arg_msg = '请选择邮箱' GOTO ext END IF //arg_file="C:\Documents and Settings\Administrator\桌面\11.eml" IF f_filetoblob(arg_file, lb_file, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject ll_proxy IF ll_factory.getproxy(ll_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject ll_message ll_message = ll_proxy.InitFromBlob(lb_file, Ref arg_msg) IF IsNull(ll_message) THEN rslt = 0 GOTO ext END IF //cur_set.mailid // 账号 //cur_set.viewtype // 1:收件2:发件3:已发4:废件 // 保存在收件箱 Long mailid mailid = tv_data.a_long s_email_set s_set IF wf_ds_get_mail_set(mailid, s_set, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF s_email_send s_send s_send.sendid = 0 s_send.mailid = mailid s_send.boxid = tv_data.relid s_send.mailAddress = s_set.mailAddress s_send.Subject = ll_message.Subject s_send.mailsize = ll_message.ContentLength s_send.textbody = ll_message.Plain s_send.htmlbody = ll_message.Html s_send.orgdata = lb_file s_send.senduser = ll_message.From s_send.sendaddress = ll_message.FromEmail //s_send.sendoption = 0 s_send.priority = 3 s_send.mailtype = '收件' s_send.status = '未读' Long ll_AttachmentsCOUNT, j ll_AttachmentsCOUNT = ll_message.AttachmentsCount s_email_lvfj s_fj[] FOR j = 0 To ll_AttachmentsCOUNT - 1 s_fj[j+1].Filename = ll_message.GetAttachmentName(j) s_fj[j+1].fileblob = ll_message.GetAttachment(j) s_fj[j+1].cid = ll_message.GetAttachmentContentID(j) s_fj[j+1].FileType = C_from_file // 附件类型 NEXT IF mail.f_import_eml(s_send, s_fj, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF // s_email_rev s_rev // string tuid // datetime dt_rev // s_rev.mailAddress = cur_set.mailaddress // s_rev.Subject = ole_mime.Object.Subject // s_rev.textBody = ole_mime.Object.Plain // // s_rev.htmlBody = Blob(ole_mime.Object.Html) // s_rev.senduser = ole_mime.object.From // s_rev.sendaddress = ole_mime.Object.FromEmail // s_rev.mailsize = ole_mime.Object.ContentLength // tuid = ole_mime.object.MessageID //// dt_rev = // s_rev.RevID = f_sys_scidentity(0,"u_email_rev","RevID",arg_msg,False, sqlca) //数据commit事务) // IF s_rev.RevID <= 0 THEN // rollback; // rslt = 0 // GOTO ext // END IF // INSERT INTO u_email_rev( // RevID, // mailID, // mailaddress, // mailtype, // Subject, // senduser, // sendaddress, // revdate, // mailSize, // textBody, // tUID) // VALUES // ( :s_rev.RevID, // :cur_set.mailid, // :s_rev.mailaddress, // 1, // 已读 // :s_rev.Subject, // :s_rev.senduser, // :s_rev.sendaddress, // getdate(), // :s_rev.mailSize, // :s_rev.textBody, // :tUID); // IF sqlca.SQLCode <> 0 THEN // rollback; // arg_msg = '向数据库插入已收邮件信息失败' // rslt = 0 // GOTO ext // ELSE // COMMIT; // END IF // // IF len(lb_file) > 0 THEN // UPDATEBLOB u_email_rev // Set orgData = :lb_file // Where RevID = :s_rev.RevID; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '更新数据库已收邮件原始信息失败' // rslt = 0 // GOTO ext // END IF // END IF // // IF len(s_rev.htmlBody) > 0 THEN // UPDATEBLOB u_email_rev // Set htmltext = :s_rev.htmlBody // Where RevID = :s_rev.RevID; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '更新数据库已收邮件富文本信息失败' // rslt = 0 // GOTO ext // END IF // END IF // // long ll_AttachmentsCOUNT, j // ll_AttachmentsCOUNT = ole_mime.object.AttachmentsCount // IF ll_AttachmentsCOUNT = 0 THEN GOTO ext // s_email_fj s_fj // // FOR j = 0 TO ll_AttachmentsCOUNT - 1 // s_fj.fjid[j+1] = f_sys_scidentity(0,"u_email_fj","fjid",arg_msg,TRUE, sqlca) //数据commit事务) // IF s_fj.fjid[j+1] <= 0 THEN // rslt = 0 // GOTO ext // END IF // blob lb_fileblob // s_fj.Filename[j+1] = ole_mime.object.GetAttachmentName(j) // lb_fileblob = ole_mime.object.GetAttachment(j) // s_fj.filesize[j+1] = len(lb_fileblob) // 附件大小 // s_fj.FileType[j+1] = "" // 附件类型 // INSERT INTO u_email_fj // ( fjid, // fjtype, // Relid, // filename, // filesize, // filetype // ) VALUES // ( :s_fj.fjid[j+1], // 1, // :s_rev.RevID, // :s_fj.filename[j+1], // :s_fj.filesize[j+1], // :s_fj.filetype[j+1] // ); // IF sqlca.SQLCode <> 0 THEN // rollback; // arg_msg = '向数据库插入已收邮件附件信息失败' // rslt = 0 // GOTO ext // ELSE // COMMIT; // END IF // // IF len(lb_fileblob) > 0 THEN // UPDATEBLOB u_email_fj // Set fileblob = :lb_fileblob // Where fjid = :s_fj.fjid[j+1]; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '更新数据库已收邮件附件信息失败' // rslt = 0 // GOTO ext // ELSE // COMMIT; // END IF // END IF // // NEXT //goto ext ext: Destroy ll_factory RETURN rslt end function public function integer days_in_month (integer month, integer year);//Most cases are straight forward in that there are a fixed number of //days in 11 of the 12 months. February is, of course, the problem. //In a leap year February has 29 days, otherwise 28. Integer li_DaysInMonth, li_Days[12] = {31,28,31,30,31,30,31,31,30,31,30,31} // Get the number of days per month for a non leap year. li_DaysInMonth = li_Days[Month] // Check for a leap year. If Month = 2 Then // If the year is a leap year, change the number of days. // Leap Year Calculation: // Year divisible by 4, but not by 100, unless it is also divisible by 400 If ( (Mod(Year,4) = 0 And Mod(Year,100) <> 0) Or (Mod(Year,400) = 0) ) Then li_DaysInMonth = 29 End If End If //Return the number of days in the relevant month Return li_DaysInMonth end function public subroutine wf_set_read (long row);//if row <= 0 OR row > dw_list.rowcount( ) then return //long ll_fjtype, ll_id //ll_fjtype = dw_list.Object.fjtype[row] //ll_id = dw_list.Object.id[row] // //if ll_fjtype = 1 and dw_list.dataobject = 'dw_email_view_rev' then // if dw_list.Object.mailtype[row] = 1 then return // update u_email_rev set mailtype = 1 where revid = :ll_id; // if sqlca.sqlcode <> 0 then // return // end if // commit; // dw_list.Object.mailtype[row] = 1 // if dw_list.isselected(row) then // dw_list.object.filename[row] = 'graphics\read_select.bmp' // else // dw_list.object.filename[row] = 'graphics\read.bmp' // end if // dw_list.accepttext( ) //end if end subroutine public subroutine wf_set_unread (long row);//if row <= 0 OR row > dw_list.rowcount( ) then return //long ll_fjtype, ll_id //ll_fjtype = dw_list.Object.fjtype[row] //ll_id = dw_list.Object.id[row] // //if ll_fjtype = 1 and dw_list.dataobject = 'dw_email_view_rev' then // if dw_list.Object.mailtype[row] = 0 then return // update u_email_rev set mailtype = 0 where revid = :ll_id; // if sqlca.sqlcode <> 0 then // return // end if // commit; // dw_list.Object.mailtype[row] = 0 // if dw_list.isselected(row) then // dw_list.object.filename[row] = 'graphics\unread_select.bmp' // else // dw_list.object.filename[row] = 'graphics\unread.bmp' // end if // dw_list.accepttext( ) //end if end subroutine public function integer wf_tv_build_tree (ref string arg_msg);//uo_kq.settext('email','wf_tv_build_tree') Int rslt = 1 Long Handle, handle1, handle2 s_tv_data1 tv_data uo_ljmail_box uo_box uo_box = Create uo_ljmail_box IF tv_1.FindItem(RootTreeItem!, 0) <> -1 THEN rslt = 0 arg_msg = 'treeView不能为空' GOTO ext END IF //uo_kq.settext('email','FindItem') // 根 tv_data.relid = -1 tv_data.a_string = C_root Handle = wf_tv_insert(0, '所有邮箱', 1, tv_data) tv_root = Handle //uo_kq.settext('email','根') // 内部消息 tv_data.relid = -1 tv_data.a_string = C_innerroot handle1 = wf_tv_insert(Handle, '内部消息', 8, tv_data) //uo_kq.settext('email','内部消息') // 内部消息收件箱 tv_data.relid = -1 tv_data.a_string = C_innerrev ins_innerrevhandle = wf_tv_insert(handle1, '收件箱', 7, tv_data) //uo_kq.settext('email','内部消息收件箱') // 内部消息发件箱 tv_data.relid = -1 tv_data.a_string = C_innersend wf_tv_insert(handle1, '发件箱', 8, tv_data) //uo_kq.settext('email','内部消息发件箱') // LE tv_data.relid = -1 tv_data.a_string = C_leroot handle1 = wf_tv_insert(Handle, '供应链邮件', 2, tv_data) //uo_kq.settext('email','LE') // LEBOX IF uo_box.uf_initbox(sys_empid, arg_msg, True) <> 1 THEN MessageBox('错误', arg_msg) END IF wf_tv_insertlebox(handle1, 0) //uo_kq.settext('email','LEBOX') // 插入账号 wf_tv_insertallacount(Handle) //uo_kq.settext('email','插入账号') // 短信 tv_data.relid = -1 tv_data.a_string = C_smsroot handle2 = wf_tv_insert(Handle, '短信', 8, tv_data) //uo_kq.settext('email','短信') // 短信发件箱 tv_data.relid = -1 tv_data.a_string = C_smssend wf_tv_insert(handle2, '发件箱', 8, tv_data) //uo_kq.settext('email','短信发件箱') tv_1.ExpandItem(Handle) //tv_1.expandall(handle) ext: Destroy uo_box RETURN rslt end function public function long wf_tv_insert (long arg_handle, string arg_label, long arg_picindex, any arg_data);// 插入树的项 Long Handle TreeViewItem tvi Handle = tv_1.InsertItemLast(arg_handle, arg_label, arg_picindex) IF Handle > 0 THEN IF tv_1.GetItem(Handle, tvi) = 1 THEN tvi.Data = arg_data tv_1.SetItem(Handle, tvi) END IF END IF RETURN Handle end function public subroutine wf_tv_insertallacount (long handle);// 添加帐号 s_tv_data1 tv_data long handle1 s_email_set l_s_set[] string ls_msg long i wf_ds_getmailset(l_s_set, ls_msg) for i = 1 to upperbound(l_s_set) tv_data.relid = l_s_set[i].mailid tv_data.a_string = C_mailacount tv_data.b_string = trim(l_s_set[i].mailuser) + '<' + trim(l_s_set[i].mailaddress) + '>' tv_data.c_string = trim(l_s_set[i].mailuser) tv_data.d_string = trim(l_s_set[i].mailaddress) handle1 = wf_tv_insert(handle, tv_data.b_string, 2, tv_data) wf_tv_insertallbox(handle1) next end subroutine public subroutine wf_tv_insertallbox (long handle);// 插入邮箱树 s_tv_data1 tv_data long ll_mailid, ll_parentid long boxhandle s_email_box s_box[] string ls_msg long i tv_data = wf_tv_getdata(handle) if tv_data.a_string = C_mailacount then ll_mailid = tv_data.relid ll_parentid = 0 elseif tv_data.a_string = C_mailbox then ll_mailid = tv_data.a_long ll_parentid = tv_data.relid end if wf_ds_getmailbox(ll_mailid, ll_parentid, s_box, ls_msg) FOR i = 1 TO UPPERBOUND(s_box) tv_data.relid = s_box[i].boxid tv_data.a_string = C_mailbox tv_data.b_string = s_box[i].boxname tv_data.a_long = ll_mailid tv_data.b_long = s_box[i].isdefault long unread unread = wf_box_getunread(s_box[i].boxid) long totle totle = wf_box_gettotle(s_box[i].boxid) string label label = trim(s_box[i].boxname) + '(' + string(unread) + '/' + string(totle) + ')' if unread>0 and tv_data.b_string <> '收件箱' and tv_data.b_string <> '发件箱' and tv_data.b_string <> '已发件箱' and tv_data.b_string <> '废件箱' then boxhandle = wf_tv_insert(handle, label,7, tv_data) else boxhandle = wf_tv_insert(handle, label, s_box[i].picindex, tv_data) end if wf_tv_insertallbox(boxhandle) NEXT end subroutine public function s_tv_data1 wf_tv_getdata (long handle);// 获取项数据 s_tv_data1 rslt treeviewitem tvi if tv_1.GetItem(handle, tvi) = 1 then rslt = tvi.data end if return rslt end function public function integer wf_ds_getmailset (ref s_email_set arg_set[], ref string arg_msg);Int rslt = 1 Long ll_mailid String ls_mailuser, ls_mailaddress s_email_set tmp_set[] Long i = 0 Long emplist[],cnt Long seeall = 0 IF uo_email_power.can_see_other(sys_msg_pow) THEN emplist[1]=-1 else emplist[1]=sys_empid END IF String mailidList = '' f_get_empson(sys_empid,Ref emplist) String sqltxt sqltxt = 'SELECT mailID '& +' ,mailuser '& +' ,mailaddress '& +'FROM u_email_set '& +'WHERE empid = ? or ?=-1 OR mailtype = 1 ' //查看下级的邮件2012-11-03 DECLARE cur1 Dynamic Cursor FOR sqlsa; PREPARE sqlsa From :sqltxt Using Commit_Tran; FOR cnt = 1 To UpperBound(emplist) OPEN Dynamic cur1 Using :emplist[cnt],:emplist[cnt]; FETCH cur1 Into :ll_mailid, :ls_mailuser, :ls_mailaddress; DO WHILE Commit_Tran.SQLCode = 0 IF Pos(mailidList,String(ll_mailid)) <= 0 THEN mailidList+= String(ll_mailid)+',' i++ tmp_set[i].mailid = ll_mailid tmp_set[i].mailuser = ls_mailuser tmp_set[i].mailAddress = ls_mailaddress END IF FETCH cur1 Into :ll_mailid, :ls_mailuser, :ls_mailaddress; LOOP CLOSE cur1; NEXT arg_set = tmp_set RETURN rslt end function public function integer wf_ds_getmailbox (long arg_mailid, long arg_parentid, ref s_email_box arg_box[], ref string arg_msg);int rslt = 1 long boxid string boxname long isdefault long mailid string boxtype long parentid long picindex s_email_box s_box[] long i = 0 DECLARE cur1 CURSOR FOR SELECT boxid ,boxname ,isdefault ,mailid ,boxtype ,parentid ,picindex FROM u_email_box WHERE mailid = :arg_mailid AND parentid = :arg_parentid using Commit_Tran; OPEN cur1; FETCH cur1 INTO :boxid, :boxname, :isdefault, :mailid, :boxtype, :parentid, :picindex; DO WHILE Commit_Tran.sqlcode = 0 i ++ s_box[i].boxid = boxid s_box[i].boxname = boxname s_box[i].isdefault = isdefault s_box[i].mailid = mailid s_box[i].boxtype = boxtype s_box[i].parentid = parentid s_box[i].picindex = picindex FETCH cur1 INTO :boxid, :boxname, :isdefault, :mailid, :boxtype, :parentid, :picindex; LOOP CLOSE cur1; arg_box = s_box return rslt end function public function long wf_tv_getcurrent ();return tv_1.FindItem(CurrentTreeItem!, 0) end function public subroutine wf_tv_setcurrenttext (string arg_text); long ll_curhandle ll_curhandle = wf_tv_getcurrent() if ll_curhandle > 0 then TreeViewItem tvi if tv_1.GetItem(ll_curhandle, tvi) = 1 then tvi.label = arg_text tv_1.SetItem(ll_curhandle, tvi) end if end if end subroutine public subroutine wf_dw_rowfocuschanged_innermsg_rev (); end subroutine public subroutine wf_dw_rowfocuschanged_innermsg_send (); end subroutine public subroutine wf_dw_rowfocuschanged_mailmsg (); end subroutine public function long wf_tv_getacount (long arg_handle);s_tv_data1 tv_data do if arg_handle <= 0 then return -1 end if tv_data = wf_tv_getdata(arg_handle) if tv_data.a_string = C_mailacount then return arg_handle elseif tv_data.a_string = C_mailbox then arg_handle = tv_1.FindItem(ParentTreeItem!, arg_handle) else return -1 end if loop WHILE arg_handle > 0 return -1 end function public subroutine wf_ui_reflash ();// DONE: 更新界面,更新按键可用,与日期可见 s_tv_data1 tv_data tv_data = wf_tv_getdata(wf_tv_getcurrent()) IF tv_data.a_string = C_innersend THEN st_3.Visible = True em_1.Visible = True pb_em1.Visible = True st_4.Visible = True em_2.Visible = True pb_em2.Visible = True pb_2.Visible = True p_1.Visible = True st_refresh.Visible = True ELSE st_3.Visible = False em_1.Visible = False pb_em1.Visible = False st_4.Visible = False em_2.Visible = False pb_em2.Visible = False pb_2.Visible = False p_1.Visible = False st_refresh.Visible = False END IF p_del.Visible = (tv_data.a_string = C_innerrev) st_del.Visible = (tv_data.a_string = C_innerrev) cbx_showmeredeal.Visible = (tv_data.a_string = C_innerrev) cb_viewbill.Visible = (tv_data.a_string = C_innerrev) cb_view_his.Visible = (tv_data.a_string = C_innerrev) sle_find.Visible =(tv_data.a_string =C_mailacount or tv_data.a_string =C_mailbox ) cb_find.Visible =(tv_data.a_string =C_mailacount or tv_data.a_string =C_mailbox ) ddlb_1.visible = (tv_data.a_string = C_smssend) em_3.visible = (tv_data.a_string = C_smssend) end subroutine public subroutine wf_dw_retrieve_innermsg_rev ();long ll_count string ls_title dw_list.Reset() if dw_list.DataObject <> 'dw_deal_admsg_1_copy' then if dw_list.dataobject <> '' then dw_list.uf_save_profile_layout() end if dw_list.DataObject = 'dw_deal_admsg_1_copy' wf_dw_readlayout() dw_list.settransobject(Commit_Tran) end if ll_count = dw_list.REtrieve(sys_empid, ls_dealflag) dw_list.Title = '收件箱(' + string(ll_count) + ')' ls_title = dw_list.Title wf_tv_setcurrenttext(ls_title) end subroutine public subroutine wf_dw_retrieve_innermsg_send ();long ll_count string ls_title dw_list.Reset() if dw_list.dataobject <> 'dw_hismsg_copy' then if dw_list.dataobject <> '' then dw_list.uf_save_profile_layout() end if dw_list.DataObject = 'dw_hismsg_copy' wf_dw_readlayout() dw_list.settransobject(Commit_Tran) end if DateTime first_date, end_date first_date = DateTime(Date(em_1.Text), Time(0)) end_date = datetime(date(em_2.Text), Time('23:59:59')) ll_count = dw_list.retrieve(sys_empid,first_date, end_date) dw_list.Title = '发件箱(' + string(ll_count) + ')' ls_title = dw_list.Title wf_tv_setcurrenttext(ls_title) end subroutine public function integer wf_ds_get_mail_set (long arg_mailid, ref s_email_set arg_set, ref string arg_msg);int rslt = 1 SELECT mailuser, mailaddress INTO :arg_set.mailuser, :arg_set.mailaddress FROM u_email_set WHERE mailID = :arg_mailid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询帐号信息失败,' + Commit_Tran.sqlerrtext goto ext end if arg_set.mailid = arg_mailid ext: return rslt end function public function integer wf_ds_get_mail_box (long arg_boxid, ref s_email_box arg_box, ref string arg_msg);int rslt = 1 SELECT boxname ,isdefault ,mailid ,boxtype ,parentid ,picindex INTO :arg_box.boxname, :arg_box.isdefault, :arg_box.mailid, :arg_box.boxtype, :arg_box.parentid, :arg_box.picindex FROM u_email_box WHERE boxid = :arg_boxid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱信息失败,' + Commit_Tran.sqlerrtext goto ext end if arg_box.boxid = arg_boxid ext: return rslt end function public function integer wf_ds_del_msg (long arg_id, ref string arg_msg);int rslt = 1 // 删除邮件 DELETE FROM u_email_msg WHERE ID = :arg_id using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '删除邮件失败,' + fj_tran.sqlerrtext goto ext end if // 删除附件 DELETE FROM u_email_fj WHERE Relid = :arg_id using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '删除邮件附件失败,' + fj_tran.sqlerrtext goto ext end if // 删除收件人列表 DELETE FROM u_email_sendmx WHERE sendid = :arg_id using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '删除收件人列表失败,' + fj_tran.sqlerrtext goto ext end if ext: if rslt = 0 then rollback using fj_tran; else commit using fj_tran; end if return rslt end function public function long wf_ds_gettrunkbox (long arg_mailid);long rslt = -1 SELECT TOP 1 boxid INTO :rslt FROM u_email_box WHERE mailid = :arg_mailid AND boxtype = '废件箱' using Commit_Tran; if Commit_Tran.sqlcode <> 0 then return -1 end if return rslt end function public function integer wf_ds_move_msg_box (long arg_id, long arg_boxid, ref string arg_msg);int rslt = 1 long mailid SELECT mailid INTO :mailid FROM u_email_box WHERE boxid = :arg_boxid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询邮箱所属帐号失败,' + Commit_Tran.sqlerrtext goto ext end if UPDATE u_email_msg SET boxid = :arg_boxid, mailid = :mailid WHERE ID = :arg_id using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '移动邮件失败,' + fj_tran.sqlerrtext goto ext end if if fj_tran.SQLNRows <> 1 then rslt = 0 arg_msg = '原邮件已经不存在' goto ext end if ext: if rslt = 0 then rollback using fj_tran; else commit using fj_tran; end if return rslt end function protected function long wf_box_gettotle (long arg_boxid);if not has_fj_tran then return 0 end if long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM u_email_msg WHERE boxid = :arg_boxid using fj_tran; if fj_tran.sqlcode <> 0 then return 0 end if return ll_cnt end function public function long wf_box_getunread (long arg_boxid);if not has_fj_tran then return 0 end if long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM u_email_msg WHERE boxid = :arg_boxid AND status = '未读' using fj_tran; if fj_tran.sqlcode <> 0 then return 0 end if return ll_cnt end function public subroutine wf_box_update_label (long arg_boxid); end subroutine public subroutine wf_tv_settext (long arg_handle, string arg_label);if arg_handle > 0 then TreeViewItem tvi if tv_1.GetItem(arg_handle, tvi) = 1 then tvi.label = arg_label tv_1.SetItem(arg_handle, tvi) end if end if 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 ELSEIF lss_subject <> "" And lss_senddate <> "" And lss_sendman <> "" And IsNull(lss_subject) = False And IsNull(lss_senddate) = False And IsNull(lss_sendman) = False 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 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_mail_gethtml (long arg_msgid, ref string arg_text, ref string arg_msg);int rslt = 1 long len BLOB lb SELECT DATALENGTH(htmlbody) INTO :len FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询html长度失败,' + fj_tran.sqlerrtext goto ext end if if len = 0 then SELECT DATALENGTH(textbody) INTO :len FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询text长度失败,' + fj_tran.sqlerrtext goto ext end if if len > 2048 then SELECTBLOB textbody INTO :lb FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询text失败,' + fj_tran.sqlerrtext goto ext end if arg_text = string(lb) wf_str_replace(arg_text, '~r~n', '
') wf_str_replace(arg_text, '~r', '
') wf_str_replace(arg_text, '~n', '
') else SELECT textbody INTO :arg_text FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询text失败,' + fj_tran.sqlerrtext goto ext end if wf_str_replace(arg_text, '~r~n', '
') wf_str_replace(arg_text, '~r', '
') wf_str_replace(arg_text, '~n', '
') end if elseif len > 2048 then SELECTBLOB htmlbody INTO :lb FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询html失败,' + fj_tran.sqlerrtext goto ext end if arg_text = string(lb) else SELECT htmlbody INTO :arg_text FROM u_email_msg WHERE ID = :arg_msgid using fj_tran; if fj_tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询html失败,' + fj_tran.sqlerrtext goto ext end if end if ext: return rslt end function public function integer wf_admsg_gethtml (long arg_msgid, ref string arg_text, ref string arg_msg);int rslt = 1 long len SELECT DATALENGTH(s_msg) INTO :len FROM Sys_admsg WHERE msgid = :arg_msgid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询消息长度失败,' + Commit_Tran.sqlerrtext goto ext end if if len > 2048 then BLOB lb SELECTBLOB s_msg INTO :lb FROM Sys_admsg WHERE msgid = :arg_msgid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询消息块失败,' + Commit_Tran.sqlerrtext goto ext end if arg_text = string(lb) else SELECT s_msg INTO :arg_text FROM Sys_admsg WHERE msgid = :arg_msgid using Commit_Tran; if Commit_Tran.sqlcode <> 0 then rslt = 0 arg_msg = '查询消息失败,' + Commit_Tran.sqlerrtext goto ext end if end if ext: return rslt end function public subroutine wf_str_replace (ref string arg_source, string arg_str1, string arg_str2);long ll_pos ll_pos = pos(arg_source, arg_str1,1) do while ll_pos > 0 arg_source = replace(arg_source, ll_pos, len(arg_str1), arg_str2) ll_pos = pos(arg_source, arg_str1,1) LOOP end subroutine public function integer wf_mail_getfj (long arg_id, ref s_email_lvfj arg_lvfj[], ref string arg_msg);int rslt = 1 s_email_lvfj lvfj[] long fjid string filename long i = 0 string cid DECLARE cur1 CURSOR FOR SELECT fjid, filename, cid FROM u_email_fj WHERE Relid = :arg_id using fj_tran; OPEN cur1; FETCH cur1 INTO :fjid, :filename, :cid; DO WHILE fj_tran.sqlcode = 0 i++ lvfj[i].fjid = fjid lvfj[i].filename = filename lvfj[i].filetype = C_u_email_fj lvfj[i].cid = cid FETCH cur1 INTO :fjid, :filename, :cid; 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_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 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_ui_row (long arg_row);if dw_list.dataobject = 'dw_email_view_msg' then if arg_row <= 0 OR arg_row > dw_list.RowCount() then return if dw_list.IsSelected(arg_row) then if dw_list.object.status[arg_row] = '未读' then dw_list.object.filename[arg_row] = 'graphics\unread_select.bmp' else dw_list.object.filename[arg_row] = 'graphics\read_select.bmp' end if else if dw_list.object.status[arg_row] = '未读' then dw_list.object.filename[arg_row] = 'graphics\unread.bmp' else dw_list.object.filename[arg_row] = 'graphics\read.bmp' end if end if end if end subroutine public subroutine wf_ui_unselectall ();if dw_list.dataobject = 'dw_email_view_msg' then long i for i = 1 to dw_list.RowCount() if dw_list.IsSelected(i) then if dw_list.object.status[i] = '未读' then dw_list.object.filename[i] = 'graphics\unread.bmp' else dw_list.object.filename[i] = 'graphics\read.bmp' end if end if next dw_list.accepttext() end if end subroutine public subroutine wf_revert_read (long arg_row);if dw_list.dataobject = 'dw_email_view_msg' AND arg_row > 0 AND arg_row <= dw_list.RowCount() then string ls_msg if dw_list.object.status[arg_row] = '未读' then if mail.f_read(dw_list.object.id[arg_row], ls_msg) = 1 then dw_list.object.status[arg_row] = '已读' end if else if mail.f_unread(dw_list.object.id[arg_row], ls_msg) = 1 then dw_list.object.status[arg_row] = '未读' end if end if wf_ui_row(arg_row) end if end subroutine public subroutine wf_read_row (long arg_row);if (dw_list.dataobject = 'dw_email_view_msg' or dw_list.dataobject = 'dw_email_view_msg_rev') AND arg_row > 0 AND arg_row <= dw_list.RowCount() then string ls_msg if dw_list.object.status[arg_row] = '未读' then if mail.f_read(dw_list.object.id[arg_row], ls_msg) = 1 then dw_list.object.status[arg_row] = '已读' end if end if wf_ui_row(arg_row) end if end subroutine public subroutine wf_tv_setdata (long arg_handle, s_tv_data1 arg_data);if arg_handle > 0 then TreeViewItem tvi if tv_1.GetItem(arg_handle, tvi) = 1 then tvi.data = arg_data tv_1.SetItem(arg_handle, tvi) end if end if end subroutine public subroutine wf_tv_reflash (long arg_handle);s_tv_data1 tv_data tv_data = wf_tv_getdata(arg_handle) if tv_data.a_string = C_mailbox then long unread unread = wf_box_getunread(tv_data.relid) long totle totle = wf_box_gettotle(tv_data.relid) string label label = trim(tv_data.b_string) + '(' + string(unread) + '/' + string(totle) + ')' wf_tv_settext(arg_handle, label) else end if end subroutine public function long wf_tv_gettrunkhandle (long arg_handle);arg_handle = wf_tv_getacount(arg_handle) if arg_handle <= 0 then return -1 long handle s_tv_data1 tv_data handle = tv_1.finditem(ChildTreeItem!, arg_handle) do while handle > 0 tv_data = wf_tv_getdata(handle) if tv_data.b_string = '废件箱' AND tv_data.b_long = 1 then return handle end if handle = tv_1.finditem(NextTreeItem!, handle) loop return -1 end function public subroutine wf_tv_retrieve ();s_email_set s_set[] String ls_msg wf_ds_getmailset(s_set, ls_msg) Long child[] wf_tv_getchild(tv_root, child) s_tv_data1 tv_data[] Long i, j FOR i = 1 To UpperBound(child) tv_data[i] = wf_tv_getdata(child[i]) NEXT Boolean has_tb // 已同步 FOR j = 1 To UpperBound(child) IF tv_data[j].a_string <> C_mailacount THEN child[j] = -1 END IF NEXT FOR i = 1 To UpperBound(s_set) has_tb = False FOR j = 1 To UpperBound(child) IF child[j] = -1 THEN CONTINUE IF tv_data[j].a_string <> C_mailacount THEN // 内部消息 child[j] = -1 CONTINUE END IF IF s_set[i].mailid = tv_data[j].relid THEN IF tv_data[j].c_string <> Trim(s_set[i].mailuser) Or tv_data[j].d_string <> Trim(s_set[i].mailAddress) THEN tv_data[j].b_string = Trim(s_set[i].mailuser) + '<' + Trim(s_set[i].mailAddress) + '>' tv_data[j].c_string = Trim(s_set[i].mailuser) tv_data[j].d_string = Trim(s_set[i].mailAddress) wf_tv_setdata(child[j], tv_data[j]) wf_tv_settext(child[j], tv_data[j].b_string) END IF wf_tv_retrieveallchildbox(child[j]) child[j] = -1 has_tb = True EXIT END IF NEXT IF Not has_tb THEN // 未同步 s_tv_data1 tv_data1 Long handle1 tv_data1.relid = s_set[i].mailid tv_data1.a_string = C_mailacount tv_data1.b_string = Trim(s_set[i].mailuser) + '<' + Trim(s_set[i].mailAddress) + '>' tv_data1.c_string = Trim(s_set[i].mailuser) tv_data1.d_string = Trim(s_set[i].mailAddress) handle1 = wf_tv_insert(tv_root, tv_data1.b_string, 2, tv_data1) wf_tv_insertallbox(handle1) END IF NEXT FOR i = 1 To UpperBound(child) IF child[i] > 0 THEN tv_1.DeleteItem(child[i]) END IF NEXT //dw_list.trigger event rowfocuschanged(dw_list.getrow()) end subroutine public subroutine wf_tv_retrieveallchildbox (long arg_handle);// 插入邮箱树 s_tv_data1 tv_data long ll_mailid, ll_parentid long boxhandle s_email_box s_box[] string ls_msg long i,j long unread long totle string label tv_data = wf_tv_getdata(arg_handle) if tv_data.a_string = C_mailacount then ll_mailid = tv_data.relid ll_parentid = 0 elseif tv_data.a_string = C_mailbox then ll_mailid = tv_data.a_long ll_parentid = tv_data.relid end if wf_ds_getmailbox(ll_mailid, ll_parentid, s_box, ls_msg) long child[] boolean has_tb wf_tv_getchild(arg_handle, child) s_tv_data1 tv_data_arr[] for i = 1 to upperbound(child) tv_data_arr[i] = wf_tv_getdata(child[i]) next FOR i = 1 TO UPPERBOUND(s_box) has_tb = false for j = 1 to upperbound(child) if child[j] = -1 then continue if tv_data_arr[j].a_string <> C_mailbox then // 内部消息 child[j] = -1 continue end if if s_box[i].boxid = tv_data_arr[j].relid then tv_data_arr[j].relid = s_box[i].boxid tv_data_arr[j].a_string = C_mailbox tv_data_arr[j].b_string = s_box[i].boxname tv_data_arr[j].a_long = ll_mailid tv_data_arr[j].b_long = s_box[i].isdefault unread = wf_box_getunread(s_box[i].boxid) totle = wf_box_gettotle(s_box[i].boxid) label = trim(s_box[i].boxname) + '(' + string(unread) + '/' + string(totle) + ')' wf_tv_setdata(child[j], tv_data_arr[j]) wf_tv_settext(child[j], label) wf_tv_retrieveallchildbox(child[j]) child[j] = -1 has_tb = true exit end if next if not has_tb then s_tv_data1 tv_data2 tv_data2.relid = s_box[i].boxid tv_data2.a_string = C_mailbox tv_data2.b_string = s_box[i].boxname tv_data2.a_long = ll_mailid tv_data2.b_long = s_box[i].isdefault unread = wf_box_getunread(s_box[i].boxid) totle = wf_box_gettotle(s_box[i].boxid) label = trim(s_box[i].boxname) + '(' + string(unread) + '/' + string(totle) + ')' boxhandle = wf_tv_insert(arg_handle, label, s_box[i].picindex, tv_data2) wf_tv_insertallbox(boxhandle) end if NEXT for i = 1 to upperbound(child) if child[i] > 0 then tv_1.DeleteItem(child[i]) end if next end subroutine public subroutine wf_tv_getchild (long arg_handle, ref long arg_child[]);long child[] long handle long i = 0 handle = tv_1.finditem(ChildTreeItem!, arg_handle) do while handle > 0 i++ child[i] = handle handle = tv_1.finditem(NextTreeItem!, handle) loop arg_child = child 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_str_modfilepath (ref string ls_filepath);long ll_pos ll_pos = pos(ls_filepath, ':',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, ':',1) loop ll_pos = pos(ls_filepath, '*',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '*',1) loop ll_pos = pos(ls_filepath, '<',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '<',1) loop ll_pos = pos(ls_filepath, '>',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '>:',1) loop ll_pos = pos(ls_filepath, '|',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '|',1) loop ll_pos = pos(ls_filepath, '?',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '?',1) loop ll_pos = pos(ls_filepath, '/',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '/',1) loop ll_pos = pos(ls_filepath, '\',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '\',1) loop ll_pos = pos(ls_filepath, '"',1) do while ll_pos > 0 ls_filepath = replace(ls_filepath, ll_pos, 1, "") ll_pos = pos(ls_filepath, '"',1) loop end subroutine public subroutine wf_dw_readlayout ();dw_list.ins_INIfile_name = sys_inifilename dw_list.ins_opemp = publ_operator dw_list.cardw_empid = sys_empid dw_list.cur_DataObject = dw_list.DataObject dw_list.uf_read_profile_layout() // f_title_change(dw_list) end subroutine public subroutine wf_dw_retrieve_smssend ();Long ll_count String ls_title dw_list.Reset() IF dw_list.DataObject <> 'dw_sms_spring_send' THEN IF dw_list.DataObject <> '' THEN dw_list.uf_save_profile_layout() END IF dw_list.DataObject = 'dw_sms_spring_send' wf_dw_readlayout() dw_list.SetTransObject(Commit_Tran) END IF Long ll_empid ll_empid = sys_empid IF sys_empid = 0 THEN ll_empid = -1 END IF string str,str_r long cnt,EM1 EM1=LONG(EM_3.TEXT) str = trim(dw_list.Describe("DataWindow.Table.Select")) cnt = pos(str,'empname') str_r = mid(str,cnt,len(str)) str = 'select top '+STRING(EM1)+' ' +str_r dw_list.Modify("datawindow.table.select = ~"" + str+ "~"") //MessageBox('', string(sys_empid)) ll_count = dw_list.Retrieve(ll_empid,cur_send) //dw_list.Title = '收件箱(' + string(ll_count) + ')' //ls_title = dw_list.Title // //wf_tv_setcurrenttext(ls_title) end subroutine public subroutine wf_tv_insertlebox (long arg_handle, long arg_parentid); s_ljmail_box boxs[] String arg_msg uo_ljmail_box uo_box uo_box = Create uo_ljmail_box IF uo_box.uf_getchildboxs(arg_parentid, Ref boxs, Ref arg_msg) <> 1 THEN GOTO ext END IF Long ll_i Long handle1 s_tv_data1 tv_data FOR ll_i = 1 To UpperBound(boxs) tv_data.a_string = C_lebox tv_data.relid = boxs[ll_i].boxid tv_data.b_string = boxs[ll_i].boxname tv_data.a_long = boxs[ll_i].boxtype tv_data.b_long = boxs[ll_i].empid handle1 = wf_tv_insert(arg_handle, boxs[ll_i].boxname, 7, tv_data) wf_tv_insertlebox(handle1, boxs[ll_i].boxid) NEXT ext: Destroy uo_box end subroutine public subroutine wf_dw_retrieve_le (long arg_boxid);Long ll_count String ls_title dw_list.Reset() IF dw_list.DataObject <> 'dw_ljmail_msg' THEN IF dw_list.DataObject <> '' THEN dw_list.uf_save_profile_layout() END IF dw_list.DataObject = 'dw_ljmail_msg' wf_dw_readlayout() dw_list.SetTransObject(fj_tran) END IF ll_count = dw_list.Retrieve(arg_boxid) end subroutine public subroutine wf_dw_retrieve_smssendmx ();IF dw_list.DataObject = 'dw_sms_spring_send' THEN IF dw_user.DataObject <> 'dw_sms_spring_sendmx' THEN IF dw_user.DataObject <> '' THEN dw_user.uf_save_profile_layout() END IF dw_user.DataObject = 'dw_sms_spring_sendmx' dw_user.ins_INIfile_name = sys_inifilename dw_user.ins_opemp = publ_operator dw_user.cardw_empid = sys_empid dw_user.cur_DataObject = dw_list.DataObject dw_user.uf_read_profile_layout() // f_title_change(dw_user) dw_user.SetTransObject(Commit_Tran) END IF IF dw_list.GetRow() > 0 THEN dw_user.Retrieve(dw_list.Object.sendid[dw_list.GetRow()]) ELSE dw_user.Reset() END IF END IF end subroutine public subroutine wf_dw_retrieve_mailmsg (long arg_mailid, long arg_boxid, string arg_boxname);s_tv_data1 tv_data string ls_title dw_list.Reset() //if arg_boxname='收件箱' then // dw_list.dataobject='dw_email_view_msg' //dw_email_view_msg_rev' // dw_list.settrans(fj_tran) // goto con //end if if dw_list.dataobject <> 'dw_email_view_msg' then if dw_list.dataobject <> '' then dw_list.uf_save_profile_layout() end if dw_list.dataobject = 'dw_email_view_msg' wf_dw_readlayout() dw_list.settransobject(fj_tran) end if //con: dw_list.retrieve(arg_mailid, arg_boxid) tv_data = wf_tv_getdata(wf_tv_getcurrent()) ls_title = tv_data.b_string& + '(' + string(wf_box_getunread(arg_boxid)) & + '/' + string(wf_box_gettotle(arg_boxid)) + ')' wf_tv_setcurrenttext(ls_title) end subroutine public function long wf_findtreeitem (treeview tv_tree, boolean findby, any data);//tv_tree: TreeView, 指明在tv_tree树中查找 // //findby: boolean, 指明查找方式 // //false - 按标签(Label)查找 // //true - 按附加数据(data)查找 // //data: any, 指明要查找的内容 // //返回值:long型。若找到,返回找到的项的Handle; // //若没有找到,返回0; // //若出错,返回-1 // //程序代码如下: long ll_hdl[] integer li_cnt TreeViewitem lt_tvi li_cnt = 1 ll_hdl[1] = tv_tree.FindItem(RootTreeItem!, 0) do while li_cnt > 0 if tv_tree.GetItem(ll_hdl[li_cnt], lt_tvi) = -1 then return -1 if findby then if lt_tvi.data = data then return ll_hdl[li_cnt] end if else if pos(lt_tvi.label ,string(data) )>0 then return ll_hdl[li_cnt] end if end if if lt_tvi.children then li_cnt ++ ll_hdl[li_cnt] = tv_tree.FindItem( ChildTreeItem!, ll_hdl[li_cnt - 1]) else ll_hdl[li_cnt] = tv_tree.FindItem( NextTreeItem!, ll_hdl[li_cnt]) end if do while ll_hdl[li_cnt] <= 0 li_cnt -- if li_cnt = 0 then exit ll_hdl[li_cnt] = tv_tree.FindItem( NextTreeItem!, ll_hdl[li_cnt]) loop loop return 0 end function 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 subroutine wf_move ();//游标读收费项目 String arry_sql[] Integer i DECLARE readitem_sql CURSOR FOR SELECT u_email_box.filter From u_email_box Where if_filter = 1; OPEN readitem_sql; i++ FETCH readitem_sql Into :arry_sql[i]; DO WHILE sqlca.SQLCode = 0 i++ FETCH readitem_sql Into :arry_sql[i]; LOOP CLOSE readitem_sql; FOR i = 1 To UpperBound(arry_sql) IF arry_sql[i] <> "" THEN IF Pos(arry_sql[i],"#1s") <= 0 And Pos(arry_sql[i],"#2s") <= 0 And Pos(arry_sql[i],"#3s") <= 0 And Pos(arry_sql[i],"#4s") <= 0 THEN CONTINUE END IF arry_sql[i] = of_globalreplace(arry_sql[i],"‘","'") arry_sql[i] = of_globalreplace(arry_sql[i],"’","'") arry_sql[i] = of_globalreplace(arry_sql[i],",",",") arry_sql[i] = of_globalreplace(arry_sql[i],"#1s"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#2s"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#3s"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#4s"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#1e"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#2e"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#3e"," ") arry_sql[i] = of_globalreplace(arry_sql[i],"#4e"," ") EXECUTE Immediate :arry_sql[i] Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN MessageBox("错误" , "移动邮件失败~n"+sys_email_sqlca.SQLErrText) GOTO ext END IF COMMIT; END IF NEXT ext: This.cb_fresh.TriggerEvent(Clicked!) end subroutine on w_email_view.create int iCurrent call super::create this.cb_rev=create cb_rev this.cb_send=create cb_send this.cb_write=create cb_write this.cb_back=create cb_back this.lv_fj=create lv_fj this.dw_mail=create dw_mail this.dw_rep=create dw_rep this.dw_fj=create dw_fj this.cb_sendother=create cb_sendother this.cb_del=create cb_del this.cb_rep=create cb_rep this.cb_fresh=create cb_fresh this.lb_1=create lb_1 this.cb_help=create cb_help this.p_resize=create p_resize this.p_resize1=create p_resize1 this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar this.tv_1=create tv_1 this.sp_v1=create sp_v1 this.sp_h1=create sp_h1 this.ole_1=create ole_1 this.st_3=create st_3 this.em_1=create em_1 this.pb_em1=create pb_em1 this.st_4=create st_4 this.em_2=create em_2 this.pb_em2=create pb_em2 this.pb_2=create pb_2 this.p_1=create p_1 this.st_refresh=create st_refresh this.dw_user=create dw_user this.dw_list=create dw_list this.cb_1=create cb_1 this.st_del=create st_del this.p_del=create p_del this.cbx_showmeredeal=create cbx_showmeredeal this.cb_viewbill=create cb_viewbill this.cb_view_his=create cb_view_his this.sle_find=create sle_find this.cb_find=create cb_find this.ddlb_1=create ddlb_1 this.em_3=create em_3 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_rev this.Control[iCurrent+2]=this.cb_send this.Control[iCurrent+3]=this.cb_write this.Control[iCurrent+4]=this.cb_back this.Control[iCurrent+5]=this.lv_fj this.Control[iCurrent+6]=this.dw_mail this.Control[iCurrent+7]=this.dw_rep this.Control[iCurrent+8]=this.dw_fj this.Control[iCurrent+9]=this.cb_sendother this.Control[iCurrent+10]=this.cb_del this.Control[iCurrent+11]=this.cb_rep this.Control[iCurrent+12]=this.cb_fresh this.Control[iCurrent+13]=this.lb_1 this.Control[iCurrent+14]=this.cb_help this.Control[iCurrent+15]=this.p_resize this.Control[iCurrent+16]=this.p_resize1 this.Control[iCurrent+17]=this.ln_bar this.Control[iCurrent+18]=this.ln_bar2 this.Control[iCurrent+19]=this.r_bar this.Control[iCurrent+20]=this.tv_1 this.Control[iCurrent+21]=this.sp_v1 this.Control[iCurrent+22]=this.sp_h1 this.Control[iCurrent+23]=this.ole_1 this.Control[iCurrent+24]=this.st_3 this.Control[iCurrent+25]=this.em_1 this.Control[iCurrent+26]=this.pb_em1 this.Control[iCurrent+27]=this.st_4 this.Control[iCurrent+28]=this.em_2 this.Control[iCurrent+29]=this.pb_em2 this.Control[iCurrent+30]=this.pb_2 this.Control[iCurrent+31]=this.p_1 this.Control[iCurrent+32]=this.st_refresh this.Control[iCurrent+33]=this.dw_user this.Control[iCurrent+34]=this.dw_list this.Control[iCurrent+35]=this.cb_1 this.Control[iCurrent+36]=this.st_del this.Control[iCurrent+37]=this.p_del this.Control[iCurrent+38]=this.cbx_showmeredeal this.Control[iCurrent+39]=this.cb_viewbill this.Control[iCurrent+40]=this.cb_view_his this.Control[iCurrent+41]=this.sle_find this.Control[iCurrent+42]=this.cb_find this.Control[iCurrent+43]=this.ddlb_1 this.Control[iCurrent+44]=this.em_3 end on on w_email_view.destroy call super::destroy destroy(this.cb_rev) destroy(this.cb_send) destroy(this.cb_write) destroy(this.cb_back) destroy(this.lv_fj) destroy(this.dw_mail) destroy(this.dw_rep) destroy(this.dw_fj) destroy(this.cb_sendother) destroy(this.cb_del) destroy(this.cb_rep) destroy(this.cb_fresh) destroy(this.lb_1) destroy(this.cb_help) destroy(this.p_resize) destroy(this.p_resize1) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) destroy(this.tv_1) destroy(this.sp_v1) destroy(this.sp_h1) destroy(this.ole_1) destroy(this.st_3) destroy(this.em_1) destroy(this.pb_em1) destroy(this.st_4) destroy(this.em_2) destroy(this.pb_em2) destroy(this.pb_2) destroy(this.p_1) destroy(this.st_refresh) destroy(this.dw_user) destroy(this.dw_list) destroy(this.cb_1) destroy(this.st_del) destroy(this.p_del) destroy(this.cbx_showmeredeal) destroy(this.cb_viewbill) destroy(this.cb_view_his) destroy(this.sle_find) destroy(this.cb_find) destroy(this.ddlb_1) destroy(this.em_3) 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 //uo_1.width = this.width - 30 //uo_1.height = this.height - uo_1.y - 150 tv_1.Height = THIS.Height - tv_1.Y - 120 sp_v1.height = tv_1.height sp_h1.width = this.width - dw_list.x - 30 // IF have_fj THEN // tab_1.Height = tv_1.Height - lv_fj.Height - dw_list.Height - 5 ole_1.height = tv_1.Height - lv_fj.Height - dw_list.Height - 5 lv_fj.Visible = TRUE p_resize.Height = ole_1.height + lv_fj.Height ELSE // tab_1.Height = tv_1.Height - dw_list.Height - 5 ole_1.height = tv_1.height - dw_list.height - 5 lv_fj.Visible = FALSE p_resize.Height = ole_1.height END IF IF have_rep THEN dw_list.Width = THIS.Width - dw_list.X - dw_rep.Width - p_resize1.Width - 30 ELSE dw_list.Width = THIS.Width - dw_list.X - p_resize1.Width - 30 END IF p_resize1.X = dw_list.X + dw_list.Width dw_rep.X = p_resize1.X + p_resize1.Width IF have_inout THEN // tab_1.Width = THIS.Width - tab_1.X - dw_mail.Width - p_resize.Width - 30 ole_1.width = THIS.Width - ole_1.X - dw_mail.Width - p_resize.Width - 30 ELSE // tab_1.Width = THIS.Width - tab_1.X - p_resize.Width - 30 ole_1.width = THIS.Width - ole_1.X - p_resize.Width - 30 END IF p_resize.X = ole_1.X + ole_1.Width dw_mail.X = p_resize.X + p_resize.Width dw_fj.X = dw_mail.X lv_fj.Width = ole_1.Width lv_fj.Y = ole_1.Y + ole_1.Height dw_mail.Height = (tv_1.Height - dw_list.Height ) / 2 dw_fj.Y = dw_mail.Y + dw_mail.Height dw_fj.Height = dw_mail.Height if have_user then dw_user.visible = true dw_list.width = dw_list.width - dw_user.width dw_user.x = dw_list.x + dw_list.width else dw_user.visible = false end if end event event open;call super::open;//uo_kq=create uo_kp_setprofile //uo_kq.clear('a') //uo_kq.settext('email','in open') IF sys_project = 0 THEN //L1权限 ins_can_see_other = 2571 ins_can_edit = 2572 ELSE //ecl权限 ins_can_see_other = 1411 ins_can_edit = 1412 //可以修改的 END IF commit_tran = sqlca 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 //uo_kq.settext('email','1') IF sys_email_sqlca.DBHandle() <> 0 THEN fj_tran = sys_email_sqlca has_fj_tran = True ELSE MessageBox('系统提示','要使用邮件功能,请先定义邮件数据库') fj_tran = Create Transaction has_fj_tran = False li_ifexit = 0 END IF //uo_kq.settext('email','2') IF li_ifexit = 0 THEN dw_fj.SetTransObject(commit_tran) dw_user.SetTransObject(commit_tran) dw_mail.SetTransObject(fj_tran) dw_rep.SetTransObject(fj_tran) dw_list.SetTransObject(fj_tran) mail = Create uo_email mail.commit_tran = commit_tran mail.fj_tran = fj_tran //Pathname = sys_cur_path + 'temp.html' dw_mail.Visible = False dw_fj.Visible = False dw_rep.Visible = False em_1.Text = String(RelativeDate ( Today(), -7 ),'YY-MM-DD') em_2.Text = String(Today(),'YY-MM-DD') wf_ui_reflash() // uo_kq.settext('email','2-1') have_user = False dw_user.Width = 1200 String ls_msg Long a a = wf_tv_build_tree(ls_msg) // uo_kq.settext('email',string(a)) IF a <> 1 THEN MessageBox('错误', ls_msg, stopsign!) Close(This) RETURN END IF // uo_kq.settext('email','2-2') ole_1.Object.navigate('about:blank') //string ls_msg //wf_init(ls_msg) //alltimmer= create so_timmer //curtimmer= create so_timmer //atimmer= create so_timmer //alltimmer.of_setparent(this) //curtimmer.of_setparent(this) //atimmer.of_setparent(this) // uo_kq.settext('email','2-3') Long sp_v1_x sp_v1_x = Long(f_ProfileString(sys_empid, "sp_v1", "x", '855')) sp_v1.X = sp_v1_x tv_1.Width = sp_v1.X - 5 dw_list.X = sp_v1.X + 5 //tab_1.x = sp_v1.x + 5 ole_1.X = sp_v1.X + 5 lv_fj.X = sp_v1.X + 5 sp_v1.of_reset() sp_v1.of_register(tv_1, sp_v1.Left) sp_v1.of_register(dw_list, sp_v1.Right) sp_v1.of_register(sp_h1, sp_v1.Right) //sp_v1.of_register(tab_1, sp_v1.right) sp_v1.of_register(ole_1, sp_v1.Right) sp_v1.of_register(lv_fj, sp_v1.Right) sp_v1.uf_possplitbar(tv_1) // uo_kq.settext('email','2-4') Long sp_h1_y sp_h1_y = Long(f_ProfileString(sys_empid, "sp_h1", "y", '1084')) sp_h1.Y = sp_h1_y dw_list.Height = sp_h1.Y - 5 - dw_list.Y dw_user.Height = dw_list.Height p_resize1.Height = sp_h1.Y - 5 - p_resize1.Y dw_rep.Height = sp_h1.Y - 5 - dw_rep.Y //tab_1.y = sp_h1.y + 5 ole_1.Y = sp_h1.Y + 5 p_resize.Y = sp_h1.Y + 5 dw_mail.Y = sp_h1.Y + 5 sp_h1.of_reset() sp_h1.of_register(dw_list, sp_h1.above) sp_h1.of_register(dw_user, sp_h1.above) sp_h1.of_register(p_resize1, sp_h1.above) sp_h1.of_register(dw_rep, sp_h1.above) //sp_h1.of_register(tab_1, sp_h1.below) sp_h1.of_register(ole_1, sp_h1.below) sp_h1.of_register(p_resize, sp_h1.below) sp_h1.of_register(dw_mail, sp_h1.below) sp_h1.uf_possplitbar(dw_list) // uo_kq.settext('email','2-5') ELSE // cb_exit.PostEvent(Clicked!) END IF //uo_kq.settext('email','3') This.PostEvent('ue_afteropen') //自动收取邮件 ll_autotime = Long(f_ProfileString(sys_empid,publ_userid+'_'+'sle_auottime', "autotime",'0')) IF ll_autotime > 0 THEN if_autorev = True timer(ll_autotime * 60) END IF //自动收取邮件 end event event close;call super::close;Destroy mail //destroy alltimmer //destroy curtimmer IF not has_fj_tran THEN Destroy fj_tran END IF wf_delfj() end event event activate;call super::activate;//messagebox('','act') if isvalid(fj_tran) then wf_tv_retrieve() end if end event event timer;call super::timer;Long ll_cpu,ll_cpu1,ll_hwnd ll_hwnd = findWindow("WindowsForms10.Window.8.app.0.33c0d9d","收取邮件") IF ll_hwnd > 0 THEN RETURN ULong lu_class String ls_name SetNull(lu_class) //ls_name = "龙嘉接收邮件工具" //IF FindWindowA(lu_class, ls_name) > 0 THEN // MessageBox('提示','正在收取邮件,请稍后!',information!,OK!) // RETURN //END IF IF NOT FileExists(sys_cur_path + 'longjoe_rev.exe') THEN MessageBox('提示','longjoe_rev.exe文件缺失,请联系软件供应商!',information!,OK!) RETURN END IF // DONE: 检测是否安装.net if not wf_hasDotNet() then MessageBox('提示','如需收发邮件请安装.net2.0!',information!,OK!) RETURN end if if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) 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) + '&'& + '-1&'& + '0&'& + 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 + '&' IF Run(sys_cur_path + ls_run) = -1 THEN MessageBox('错误','运行程序失败!',stopsign!,ok!) RETURN END IF if IsValid(w_tanchuang) then close(w_tanchuang) open(w_tanchuang) end event type cb_func from w_publ_base`cb_func within w_email_view boolean visible = false integer x = 775 integer width = 150 integer height = 163 end type type cb_exit from w_publ_base`cb_exit within w_email_view integer x = 1657 integer width = 165 integer height = 163 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type cb_rev from uo_imflatbutton within w_email_view integer x = 165 integer width = 165 integer height = 163 integer taborder = 10 boolean bringtotop = true string text = "收取" string normalpicname = "email_view1.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; m_Dfc_Control_PopupMenu dmPopupMenu String menustr s_tv_data1 tv_data long ll_handle ll_handle = wf_tv_getCurrent() ll_handle = wf_tv_getacount(ll_handle) if ll_handle > 0 then tv_data = wf_tv_getdata(ll_handle) menustr = "Text=" + tv_data.b_string + "~tEvent=ue_revcur" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=全部邮箱~tEvent=ue_revall" else menustr = "Text=全部邮箱~tEvent=ue_revall" 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 end event type cb_send from uo_imflatbutton within w_email_view integer x = 329 integer width = 165 integer height = 163 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;m_Dfc_Control_PopupMenu dmPopupMenu String menustr s_tv_data1 tv_data long ll_handle ll_handle = wf_tv_getCurrent() ll_handle = wf_tv_getacount(ll_handle) if ll_handle > 0 then tv_data = wf_tv_getdata(ll_handle) menustr = "Text=" + tv_data.b_string + "~tEvent=ue_sendcur" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=全部邮箱~tEvent=ue_sendall" else menustr = "Text=全部邮箱~tEvent=ue_sendall" 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 end event type cb_write from uo_imflatbutton within w_email_view integer x = 494 integer width = 165 integer height = 163 integer taborder = 20 boolean bringtotop = true string text = "撰写" string normalpicname = "email_view3.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;s_tv_data1 tv_data Long curhandle curhandle = wf_tv_getcurrent() IF curhandle < 0 THEN MessageBox('错误','请先选择邮箱',stopsign!,OK!) RETURN END IF tv_data = wf_tv_getdata(curhandle) IF tv_data.a_string = C_root THEN MessageBox('错误','请先选择邮箱',stopsign!,OK!) RETURN ELSEIF tv_data.a_string = C_innerroot Or tv_data.a_string = C_innerrev Or tv_data.a_string = C_innersend THEN Parent.TriggerEvent('ue_msg_send') RETURN ELSEIF tv_data.a_string = C_mailacount Or tv_data.a_string = C_mailbox THEN Long ll_handle ll_handle = wf_tv_getacount(curhandle) IF ll_handle <= 0 THEN MessageBox('错误','请先选择邮箱',stopsign!,OK!) RETURN END IF tv_data = wf_tv_getdata(ll_handle) s_email_set s_parm s_parm.mailid = tv_data.relid s_parm.mailuser = tv_data.c_string s_parm.mailAddress = tv_data.d_string OpenWithParm(w_email_send_new,s_parm) ELSEIF tv_data.a_string = C_smsroot Or tv_data.a_string = C_smssend THEN // DONE: 打开发送短信窗口 s_spring_send s_send s_send.sendid = 0 s_send.sendflag = 2 s_send.empid = sys_empid OpenWithParm(w_sms_send_new, s_send) ELSEIF tv_data.a_string = C_leroot Or tv_data.a_string = C_lebox THEN s_ljmail_msg_parm s_parm_set s_parm_set.msgid = 0 s_parm_set.reltype = 0 s_parm_set.relid = 0 OpenWithParm(w_ljmail_msg_send, s_parm_set) END IF end event type cb_back from uo_imflatbutton within w_email_view integer x = 658 integer width = 165 integer height = 163 integer taborder = 30 boolean bringtotop = true string text = "回复" string normalpicname = "email_view4.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;// DONE: 回复 IF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN Parent.TriggerEvent('ue_msg_back') ELSEIF dw_list.DataObject = 'dw_email_view_msg' THEN Parent.TriggerEvent('ue_reply') ELSEIF dw_list.DataObject = 'dw_sms_spring_send' THEN // TODO: 回复 // s_spring_send s_send // s_send.revphone = ELSEIF dw_list.DataObject = 'dw_ljmail_msg' THEN // TODO: 回复LE IF dw_list.GetRow() > 0 THEN s_ljmail_msg_parm s_msg_parm s_msg_parm.msgid = 0 s_msg_parm.reltype = 0 s_msg_parm.relid = 0 s_msg_parm.s_msg.mx[1].ljmail = dw_list.Object.ljmail[dw_list.GetRow()] OpenWithParm(w_ljmail_msg_send, s_msg_parm) END IF END IF end event type lv_fj from uo_email_lv within w_email_view integer x = 863 integer y = 2042 integer width = 1306 integer height = 234 integer taborder = 40 boolean bringtotop = true boolean extendedselect = true boolean hideselection = false string smallpicturename[] = {"p15drive_fdd.ico"} end type 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 RETURN 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 end event event ue_saveas; ListViewItem lvi, selectedlvi[] Long ll_cnt = 0, ll_i s_email_lvfj lvfj Blob lb String ls_msg, ls_sum = '' IF ins_index > 0 THEN IF lv_fj.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 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 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 //if cur_set.mailid > 0 then // call super::ue_saveas// tv_fj.ue_saveas //else // // //附件另存为 // Integer i // Long ls_i,ls_j,ls_newrow,ls_filesize // String ls_Pathname,ls_filename // String errmsg,arg_msg // String ls_filetypename // Long pos1,lrow,rslt // String ls_para,ls_downarg[] // ls_Pathname = this.ins_cur_fjname // // //************************************************************* // // pos1 = pos(this.ins_cur_fjname,'.',1) // IF pos1 > 0 THEN // ls_filetypename = Mid(this.ins_cur_fjname,pos1 + 1) // i = GetFileSaveName("另存为",ls_Pathname,ls_filename,"*","*."+ls_filetypename+",*."+ls_filetypename) // ELSE // ls_filetypename = '' // i = GetFileSaveName("另存为",ls_Pathname,ls_filename,"*","*.*,*.*") // END IF // // IF i = 1 AND Trim(ls_Pathname) <> '' THEN // selectblob fileblob INTO :ls_filedata // from Sys_admsg_fj // where fjid = :this.ins_cur_fjid; // if sqlca.sqlcode <> 0 then // MessageBox('系统提示', '下载附件失败') // return // end if // // IF f_blobtofile(ls_Pathname,ls_filedata,errmsg) = 0 THEN // MessageBox('系统提示',errmsg) // RETURN // ELSE // // MessageBox('系统提示','附件保存成功!'+'~r~n'+'保存路径:'+ls_Pathname) // END IF // END IF // // // // //end if end event type dw_mail from u_dw_rbtnfilter within w_email_view integer x = 2216 integer y = 1088 integer width = 1368 integer height = 595 integer taborder = 20 boolean bringtotop = true boolean titlebar = true string title = "往来邮件" string dataobject = "dw_email_view_inout" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean border = false boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" 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.SetRow(row) end event event doubleclicked;call super::doubleclicked;//IF dw_mail.GetRow() = 0 THEN RETURN // //Long i,ll_fjtype // //dw_mail.AcceptText() //ll_fjtype = dw_mail.Object.fjtype[dw_mail.GetRow()] //CHOOSE CASE ll_fjtype // CASE 1 // s_edit_index_tran s_tran // Long cur_revid[] // s_tran.b_long = dw_mail.GetRow() // s_tran.c_long = dw_mail.RowCount() // // FOR i = 1 TO dw_mail.RowCount() // cur_revid[i] = dw_mail.Object.id[i] // NEXT // s_tran.arr_long = cur_revid // OpenWithParm(w_email_rev,s_tran) // // CASE 0 // s_email_set s_parm // s_parm = cur_set // s_parm.sendid = dw_mail.Object.id[dw_mail.GetRow()] // // OpenWithParm(w_email_send_new,s_parm) // //END CHOOSE // // // // end event type dw_rep from u_dw_rbtnfilter within w_email_view integer x = 2216 integer y = 179 integer width = 1368 integer height = 909 integer taborder = 30 boolean bringtotop = true boolean titlebar = true string title = "联系人" string dataobject = "dw_email_view_send_rep" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean border = false boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" end type event rowfocuschanged;call super::rowfocuschanged;dw_mail.reset() dw_fj.reset() if isnull(currentrow) then return IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) String ls_address ls_address = THIS.Object.revaddress[currentrow] if dw_list.dataobject = 'dw_email_view_msg' and dw_list.getrow() > 0 then dw_mail.SetRedraw (FALSE) dw_mail.Retrieve(dw_list.object.mailid[dw_list.getrow()],ls_address) dw_mail.SetRedraw (TRUE) dw_fj.SetRedraw (FALSE) dw_fj.Retrieve(dw_list.object.mailid[dw_list.getrow()],ls_address) dw_fj.SetRedraw (TRUE) end if end event event clicked;call super::clicked;THIS.SetRow(row) end event type dw_fj from u_dw_rbtnfilter within w_email_view integer x = 2216 integer y = 1683 integer width = 1368 integer height = 589 integer taborder = 30 boolean bringtotop = true boolean titlebar = true string title = "往来附件" string dataobject = "dw_email_view_fj" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean border = false boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" end type event clicked;call super::clicked;THIS.SetRow(row) end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow = 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) end event event doubleclicked;call super::doubleclicked;parent.triggerevent('ue_open_fj') end event type cb_sendother from uo_imflatbutton within w_email_view integer x = 823 integer width = 165 integer height = 163 integer taborder = 30 boolean bringtotop = true string text = "转发" string normalpicname = "email_view5.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;// DONE: 要将内部消息转发到email parent.triggerevent('ue_sendother') end event type cb_del from uo_imflatbutton within w_email_view integer x = 987 integer width = 165 integer height = 163 integer taborder = 40 boolean bringtotop = true string text = "删除" string normalpicname = "email_view6.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String ls_msg //messagebox('',string(dw_list.DataObject)) If (dw_list.DataObject = 'dw_email_view_msg' )And dw_list.GetRow() > 0 THEN Parent.TriggerEvent('ue_del') END IF IF dw_list.DataObject = 'dw_sms_spring_send' And dw_list.GetRow() > 0 THEN IF MessageBox ("询问","是否确定要永久删除选中短信吗",Question!,YesNo! ) = 2 THEN RETURN uo_spring_send uo_spring uo_spring = Create uo_spring_send uo_spring.commit_transaction = Commit_Tran IF uo_spring.uf_del(dw_list.Object.Sendid[dw_list.GetRow()], Ref ls_msg, True) <> 1 THEN Destroy uo_spring MessageBox('删除失败', ls_msg) RETURN END IF Destroy uo_spring wf_dw_retrieve_smssend() END IF Long ll_boxtype = 0 uo_ljmail_msg uo_ljmail Long i IF dw_list.DataObject = 'dw_ljmail_msg' And dw_list.GetRow() > 0 THEN if not has_fj_tran then MessageBox('提示','未设置邮件数据库!',information!,OK!) RETURN end if uo_ljmail = Create uo_ljmail_msg uo_ljmail.commit_transaction = fj_tran ins_deletingrow = 1 dw_list.SetRedraw(False) FOR i = dw_list.RowCount() To 1 Step -1 IF dw_list.IsSelected(i) THEN IF ll_boxtype = 0 THEN IF uo_ljmail.uf_get_boxtype(dw_list.Object.msgid[i], Ref ll_boxtype, ls_msg) = 0 THEN MessageBox('错误', ls_msg, stopsign!) GOTO ext END IF IF ll_boxtype = 4 THEN IF MessageBox ("询问","是否确定要永久删除选中邮件吗",Question!,YesNo! ) = 2 THEN GOTO ext ELSE IF MessageBox ("询问","是否确定要把当前邮件放入废件吗",Question!,YesNo! ) = 2 THEN GOTO ext END IF END IF IF uo_ljmail.uf_del(dw_list.Object.msgid[dw_list.GetRow()], Ref ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) GOTO ext END IF dw_list.DeleteRow(i) END IF NEXT ext: ins_deletingrow = 0 dw_list.SetRedraw(True) dw_list.Trigger Event RowFocusChanged(dw_list.GetRow()) wf_tv_reflash(wf_tv_getcurrent()) Destroy uo_ljmail END IF end event type cb_rep from uo_imflatbutton within w_email_view integer x = 1152 integer width = 165 integer height = 163 integer taborder = 50 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;parent.triggerevent('ue_emailset') end event type cb_fresh from uo_imflatbutton within w_email_view integer width = 165 integer height = 163 integer taborder = 20 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;// DONE: 刷新 wf_tv_retrieve() tv_1.trigger event selectionchanged(-1, wf_tv_getcurrent()) long tvi_hdl = 0 DO UNTIL tv_1.FindItem(RootTreeItem!, 0) = -1 tv_1.DeleteItem(tvi_hdl) LOOP String ls_msg Long a long ll_tvi a = wf_tv_build_tree(ls_msg) //ll_tvi = tv_1.FindItem(RootTreeItem! ,0) handle1_email=wf_findtreeitem(tv_1,false,tv_data_move.b_string) tv_1.ExpandAll(handle1_email) tv_1.SetRedraw(false) tv_1.SelectItem(handle1_email) tv_1.SetRedraw(True) end event type lb_1 from listbox within w_email_view boolean visible = false integer x = 1540 integer width = 549 integer height = 144 integer taborder = 20 boolean bringtotop = true integer textsize = -12 integer weight = 400 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long textcolor = 33554432 borderstyle borderstyle = stylelowered! end type type cb_help from uo_imflatbutton within w_email_view event ue_help ( ) integer x = 1488 integer width = 165 integer height = 163 integer taborder = 50 boolean bringtotop = true string text = "帮助" string normalpicname = "help.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event ue_help();Int i i = htmlhelpA(Handle(THIS), sys_help_chm, 0, "电子邮箱管理.html") end event event clicked;call super::clicked;PARENT.TriggerEvent('ue_help') end event type p_resize from picture within w_email_view integer x = 2172 integer y = 1091 integer width = 48 integer height = 1184 boolean bringtotop = true string picturename = "w_resize_2.bmp" boolean focusrectangle = false end type event clicked;String ls_msg IF THIS.PictureName = 'w_resize_2.bmp' THEN THIS.PictureName = 'w_resize_1.bmp' dw_mail.Visible = TRUE dw_fj.Visible = TRUE have_inout = TRUE // wf_retreve_inout(cur_address) ELSE THIS.PictureName = 'w_resize_2.bmp' dw_mail.Visible = FALSE dw_fj.Visible = FALSE have_inout = FALSE END IF parent.triggerevent('resize') end event type p_resize1 from picture within w_email_view integer x = 2172 integer y = 179 integer width = 48 integer height = 912 boolean bringtotop = true string picturename = "w_resize_2.bmp" borderstyle borderstyle = stylelowered! boolean focusrectangle = false end type event clicked;String ls_msg IF THIS.PictureName = 'w_resize_2.bmp' THEN THIS.PictureName = 'w_resize_1.bmp' dw_rep.Visible = TRUE have_rep = TRUE ELSE THIS.PictureName = 'w_resize_2.bmp' dw_rep.Visible = false have_rep = false END IF parent.TriggerEvent('resize') end event type ln_bar from line within w_email_view long linecolor = 268435456 integer linethickness = 4 integer beginy = 173 integer endx = 3397 integer endy = 173 end type type ln_bar2 from line within w_email_view long linecolor = 16777215 integer linethickness = 4 integer beginy = 176 integer endx = 3277 integer endy = 176 end type type r_bar from rectangle within w_email_view long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 3141 integer y = 3 integer width = 88 integer height = 67 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 tv_1 from treeview within w_email_view integer y = 179 integer width = 859 integer height = 2093 integer taborder = 40 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 16777215 borderstyle borderstyle = stylelowered! boolean editlabels = true boolean hasbuttons = false boolean haslines = false boolean disabledragdrop = false boolean hideselection = false boolean tooltips = false boolean trackselect = true string picturename[] = {"email_all.bmp","email_one.bmp","email_rev.bmp","email_send.bmp","email_sent.bmp","email_dust.bmp","graphics\newsout.BMP","graphics\newsin.BMP","graphics\email_bak.bmp"} long picturemaskcolor = 16777215 long statepicturemaskcolor = 536870912 end type event selectionchanged;s_tv_data1 tv_data String ls_msg IF newhandle <= 0 THEN // DONE:不显示列表与内容 wf_ui_reflash() RETURN END IF tv_data = wf_tv_getdata(newhandle) tv_data_move = tv_data //handle1_email=newhandle IF tv_data.a_string = C_innerrev THEN // DONE: 内部消息收件箱 wf_dw_retrieve_innermsg_rev() ELSEIF tv_data.a_string = C_innersend THEN // DONE: 内部消息发件箱 wf_dw_retrieve_innermsg_send() ELSEIF tv_data.a_string = C_mailbox THEN // DONE: 邮箱 Long ll_mailid, ll_boxid ll_mailid = tv_data.a_long ll_boxid = tv_data.relid wf_dw_retrieve_mailmsg(ll_mailid, ll_boxid, tv_data.b_string) ELSEIF tv_data.a_string = C_smssend THEN // DONE: 短信发件箱 wf_dw_retrieve_smssend() ELSEIF tv_data.a_string = C_lebox THEN wf_dw_retrieve_le(tv_data.relid) ELSE IF dw_list.DataObject <> '' THEN dw_list.uf_save_profile_layout() END IF dw_list.DataObject = '' END IF //左边点选邮箱时应直接显示收件箱明细(荣)20130719 star Long ls_mailid,ls_boxid String ss_b_string ss_b_string = "收件箱" IF tv_data.a_string = "邮箱帐号" THEN dw_list.Reset( ) ole_1.Object.document.body.innerhtml = "" SELECT mailid Into :ls_mailid From u_email_set Where mailuser = :tv_data.c_string And mailAddress = :tv_data.d_string; SELECT boxid Into :ls_boxid From u_email_box Where mailid = :ls_mailid And boxname = '收件箱' And isdefault = 1; wf_dw_retrieve_mailmsg(ls_mailid, ls_boxid, ss_b_string) END IF //左边点选邮箱时应直接显示收件箱明细(荣)20130719 end wf_ui_reflash() // // //s_email_set s_tmp //dw_list.Reset() //cur_hand = THIS.FindItem(CurrentTreeItem!,0) // //IF THIS.GetItem(cur_hand,l_tvi) = 1 THEN // // IF FileExists(sys_cur_path + 'temp.html') THEN FileDelete(sys_cur_path + 'temp.html') // if not isnull(ole_1.object.document.body) then // ole_1.object.document.body.innerhtml = '' // end if // lv_fj.DeleteItems( ) // // IF cur_hand = 1 THEN // cur_set.mailid = 0 // ELSE //// s_tmp = l_tvi.Data // cur_set = l_tvi.Data // if cur_set.mailid = -1 then // parent.title = '电子邮箱管理' + ' - 内部消息' // else // parent.title = '电子邮箱管理' + ' - 当前邮箱:' + Trim(cur_set.mailuser) + '<' + Trim(cur_set.mailAddress) + '>' // end if // wf_retrieve() // END IF // //END IF // // // end event event rightclicked;IF Handle <= 0 THEN RETURN String menustr = '' tv_1.SelectItem(Handle) s_tv_data1 tv_data tv_data = wf_tv_getdata(Handle) IF tv_data.a_string = C_innerrev THEN ELSEIF tv_data.a_string = C_innersend THEN ELSEIF tv_data.a_string = C_mailacount THEN // 新建邮箱 // 接收当前 // 发送当前 // 修改 // 接收所有 // 发送所有 menustr = "Text=新建子目录1~tEvent=ue_newbox" menustr = menustr+"|"+"Text=接收当前~tEvent=ue_revcur" menustr = menustr+"|"+"Text=发送当前~tEvent=ue_sendcur" menustr = menustr+"|"+"Text=-" menustr = menustr+"|"+"Text=接收全部~tEvent=ue_revall" menustr = menustr+"|"+"Text=发送全部~tEvent=ue_sendall" menustr = menustr+"|"+"Text=-" menustr = menustr+"|"+"Text=属性~tEvent=ue_emailset_property" ELSEIF tv_data.a_string = C_mailbox THEN // 新建邮箱 // 导入邮件 // 导出邮件 // 重命名 // 删除 Long ll_parentid,ll_old String ls_str,ls_parent SELECT boxtype,parentid Into :ls_str,:ll_parentid From u_email_box Where boxid = :tv_data.relid; SELECT boxtype,parentid Into :ls_parent ,:ll_old From u_email_box Where boxid = :ll_parentid; DO WHILE ls_parent = "新邮箱" ll_parentid = ll_old SELECT boxtype,parentid Into :ls_parent ,:ll_old From u_email_box Where boxid = :ll_parentid; LOOP menustr = "Text=新建子目录2~tEvent=ue_newbox" menustr = menustr+"|"+"Text=导入邮件~tEvent=ue_import_eml" IF ls_str = "新邮箱" And ls_parent = "收件箱" THEN menustr = menustr+"|"+"Text=从收件箱移入\移出邮件~tEvent=ue_move_eml" END IF // IF ls_str = "新邮箱" And ls_parent = "发件箱" THEN // menustr = menustr+"|"+"Text=从发件箱移入邮件~tEvent=ue_import_eml" // END IF // IF ls_str = "新邮箱" And ls_parent = "已发件箱" THEN // menustr = menustr+"|"+"Text=从发件箱移入邮件~tEvent=ue_import_eml" // END IF IF tv_data.b_long <> 1 THEN menustr = menustr+"|"+"Text=重命名~tEvent=ue_renamebox" menustr = menustr+"|"+"Text=删除~tEvent=ue_delbox" END IF ELSEIF tv_data.a_string = C_leroot THEN menustr = "Text=接收供应链邮件~tEvent=ue_revlemsg" menustr += "|Text=新建子目录3~tEvent=ue_newlebox" ELSEIF tv_data.a_string = C_lebox THEN menustr = "Text=新建子目录4~tEvent=ue_newlebox" END IF IF menustr <> '' THEN m_Dfc_Control_PopupMenu dmPopupMenu dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu END IF // //s_email_set s_tmp //dw_list.Reset() //cur_hand = handle // //IF THIS.GetItem(cur_hand,l_tvi) = 1 THEN // // IF FileExists(sys_cur_path + 'temp.html') THEN FileDelete(sys_cur_path + 'temp.html') // if not isnull(ole_1.object.document.body) then // ole_1.object.document.body.innerhtml = '' // end if // lv_fj.DeleteItems( ) // // IF cur_hand = 1 THEN // cur_set.mailid = 0 // ELSE //// s_tmp = l_tvi.Data // cur_set = l_tvi.Data // if cur_set.mailid = -1 then // parent.title = '电子邮箱管理' + ' - 内部消息' // else // parent.title = '电子邮箱管理' + ' - 当前邮箱:' + Trim(cur_set.mailuser) + '<' + Trim(cur_set.mailAddress) + '>' // end if // wf_retrieve() // END IF // // if cur_set.mailid > 0 then // m_Dfc_Control_PopupMenu dmPopupMenu // String menustr // menustr = "Text=接收当前~tEvent=ue_revcur" // menustr = menustr+"|"+"Text=发送当前~tEvent=ue_sendcur" // menustr = menustr+"|"+"Text=-" // menustr = menustr+"|"+"Text=接收全部~tEvent=ue_revall" // menustr = menustr+"|"+"Text=发送全部~tEvent=ue_sendall" // menustr = menustr+"|"+"Text=-" // menustr = menustr+"|"+"Text=导入~tEvent=ue_import_eml" // menustr = menustr+"|"+"Text=属性~tEvent=ue_emailset_property" // dmPopupMenu = CREATE m_Dfc_Control_PopupMenu // dmPopupMenu.mf_BuildMenu(THIS, menustr) // dmPopupMenu.mf_PopMenu() // DESTROY dmPopupMenu // end if //END IF // //m_email_view om_1 //om_1 = CREATE m_email_view //om_1.anyobject = parent //om_1.popupmenu(THIS.X+THIS.PointerX(),THIS.Y+THIS.PointerY()) // //DESTROY om_1 end event event beginlabeledit;IF Handle <= 0 THEN RETURN s_tv_data1 tv_data tv_data = wf_tv_getdata(Handle) IF tv_data.a_string = C_mailbox THEN IF tv_data.b_long = 1 THEN RETURN 1 wf_tv_settext(Handle, tv_data.b_string) ELSEIF tv_data.a_string = C_lebox THEN IF tv_data.a_long <> 5 THEN RETURN 1 ELSE RETURN 1 END IF end event event endlabeledit;s_tv_data1 tv_data tv_data = wf_tv_getdata(Handle) String ls_msg IF IsNull(newtext) THEN RETURN 1 IF tv_data.a_string = C_mailbox THEN IF tv_data.a_string <> C_mailbox THEN RETURN 1 IF tv_data.b_long = 1 THEN RETURN 1 uo_email_box box box = Create uo_email_box box.commit_tran = commit_tran box.fj_tran = fj_tran IF box.uf_rename(tv_data.relid, newtext, ls_msg) = 1 THEN tv_data.b_string = box.boxname wf_tv_setdata(Handle, tv_data) Long Unread Unread = wf_box_getunread(box.boxid) Long totle totle = wf_box_gettotle(box.boxid) String Label Label = Trim(box.boxname) + '(' + String(Unread) + '/' + String(totle) + ')' wf_tv_settext(Handle, Label) ELSE MessageBox('重命令失败', ls_msg, stopsign!) Destroy box RETURN 1 END IF Destroy box ELSEIF tv_data.a_string = C_lebox THEN uo_ljmail_box uo_box uo_box = Create uo_ljmail_box IF uo_box.uf_rename(tv_data.relid, newtext, ls_msg) <> 1 THEN MessageBox('重命令失败', ls_msg, stopsign!) Destroy uo_box RETURN 1 ELSE tv_data.b_string = newtext wf_tv_setdata(Handle, tv_data) wf_tv_settext(Handle, newtext) END IF Destroy uo_box END IF end event event dragdrop;IF Source = dw_list THEN s_tv_data1 tv_data tv_data = wf_tv_getdata(Handle) IF tv_data.a_string = C_mailbox THEN // TODO: 电子邮件拖放 IF dw_list.DataObject <> 'dw_email_view_msg' THEN GOTO ext Long i String ls_msg dw_list.SetRedraw(False) FOR i = dw_list.RowCount() To 1 Step -1 IF dw_list.IsSelected(i) THEN IF dw_list.Object.boxid[i] = tv_data.relid THEN dw_list.SetRedraw(True) GOTO ext END IF IF mail.wf_ds_move_msg_box(dw_list.Object.id[i], tv_data.relid, ls_msg) = 1 THEN ins_deletingrow = 1 dw_list.DeleteRow(i) ins_deletingrow = 0 END IF END IF NEXT dw_list.Trigger Event RowFocusChanged(dw_list.GetRow()) dw_list.SetRedraw(True) wf_tv_reflash(wf_tv_getcurrent()) wf_tv_reflash(Handle) ELSEIF tv_data.a_string = C_lebox THEN // TODO: 龙嘉邮件拖放 ELSE GOTO ext END IF END IF ext: SetDropHighlight(0) end event event dragwithin;// dragwithin SetDropHighlight(0) s_tv_data1 tv_data tv_data = wf_tv_getdata(handle) if tv_data.a_string = C_mailbox then SetDropHighlight(handle) end if end event type sp_v1 from u_lbs_stsplitbar within w_email_view integer x = 856 integer y = 186 integer width = 7 integer height = 2093 boolean bringtotop = true long backcolor = 16777215 integer ii_minobjectsize = 600 end type type sp_h1 from u_lbs_stsplitbar within w_email_view integer x = 863 integer y = 1085 integer width = 2710 integer height = 13 boolean bringtotop = true long backcolor = 16777215 integer ii_style = 2 integer ii_minobjectsize = 600 end type type ole_1 from olecustomcontrol within w_email_view event statustextchange ( string text ) event progresschange ( long progress, long progressmax ) event commandstatechange ( long command, boolean enable ) event downloadbegin ( ) event downloadcomplete ( ) event titlechange ( string text ) event propertychange ( string szproperty ) event beforenavigate2 ( oleobject pdisp, any url, any flags, any targetframename, any postdata, any headers, ref boolean cancel1 ) event newwindow2 ( ref oleobject ppdisp, ref boolean cancel1 ) event navigatecomplete2 ( oleobject pdisp, any url ) event documentcomplete ( oleobject pdisp, any url ) event onquit ( ) event onvisible ( boolean ocx_visible ) event ontoolbar ( boolean toolbar ) event onmenubar ( boolean menubar ) event onstatusbar ( boolean statusbar ) event onfullscreen ( boolean fullscreen ) event ontheatermode ( boolean theatermode ) event windowsetresizable ( boolean resizable1 ) event windowsetleft ( long left ) event windowsettop ( long top ) event windowsetwidth ( long ocx_width ) event windowsetheight ( long ocx_height ) event windowclosing ( boolean ischildwindow, ref boolean cancel1 ) event clienttohostwindow ( ref long cx, ref long cy ) event setsecurelockicon ( long securelockicon ) event filedownload ( ref boolean cancel1 ) event navigateerror ( oleobject pdisp, any url, any frame, any statuscode, ref boolean cancel1 ) event printtemplateinstantiation ( oleobject pdisp ) event printtemplateteardown ( oleobject pdisp ) event updatepagestatus ( oleobject pdisp, any npage, any fdone ) event privacyimpactedstatechange ( boolean bimpacted ) integer x = 863 integer y = 1088 integer width = 1306 integer height = 947 integer taborder = 30 boolean bringtotop = true borderstyle borderstyle = stylelowered! boolean focusrectangle = false string binarykey = "w_email_view.win" integer textsize = -12 integer weight = 400 fontcharset fontcharset = ansi! fontpitch fontpitch = variable! fontfamily fontfamily = swiss! string facename = "Arial" long textcolor = 33554432 end type event constructor;ole_1.object.navigate('about:blank') end event type st_3 from statictext within w_email_view boolean visible = false integer x = 1861 integer y = 96 integer width = 201 integer height = 61 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean enabled = false string text = "日期从:" alignment alignment = right! boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 end event type em_1 from editmask within w_email_view boolean visible = false integer x = 2063 integer y = 77 integer width = 384 integer height = 90 integer taborder = 120 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! maskdatatype maskdatatype = datemask! string mask = "yyyy-mm-dd" boolean spin = true end type event rbuttondown;s_calender_arg s_calender s_calender.PointerX = THIS.PointerX() s_calender.PointerY = THIS.PointerY() s_calender.X = THIS.X s_calender.Y = THIS.Y OpenWithParm(w_calendar,s_calender) THIS.Text = String(id_date_selected) end event type pb_em1 from picturebutton within w_email_view boolean visible = false integer x = 2447 integer y = 74 integer width = 102 integer height = 93 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string picturename = "date.BMP" alignment htextalign = left! end type event clicked;em_1.triggerevent(rbuttondown!) end event type st_4 from statictext within w_email_view boolean visible = false integer x = 2542 integer y = 96 integer width = 106 integer height = 61 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean enabled = false string text = "到:" alignment alignment = right! boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 end event type em_2 from editmask within w_email_view boolean visible = false integer x = 2648 integer y = 77 integer width = 384 integer height = 90 integer taborder = 130 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 borderstyle borderstyle = stylelowered! maskdatatype maskdatatype = datemask! string mask = "yyyy-mm-dd" boolean spin = true end type event rbuttondown;s_calender_arg s_calender s_calender.PointerX = THIS.PointerX() s_calender.PointerY = THIS.PointerY() s_calender.X = THIS.X s_calender.Y = THIS.Y OpenWithParm(w_calendar,s_calender) THIS.Text = String(id_date_selected) end event type pb_em2 from picturebutton within w_email_view boolean visible = false integer x = 3032 integer y = 74 integer width = 102 integer height = 93 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string picturename = "date.BMP" alignment htextalign = left! end type event clicked;em_2.triggerevent(rbuttondown!) end event type pb_2 from picturebutton within w_email_view boolean visible = false integer x = 3131 integer y = 74 integer width = 102 integer height = 93 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string picturename = "date1.BMP" alignment htextalign = left! end type event clicked;m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=本日~tEvent=ue_date1" menustr = menustr + "|" + "Text=本周~tEvent=ue_date2" menustr = menustr + "|" + "Text=本月~tEvent=ue_date3" 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 type p_1 from picture within w_email_view boolean visible = false integer x = 3255 integer y = 83 integer width = 73 integer height = 64 boolean bringtotop = true string pointer = "HyperLink!" string picturename = "graphics\refresh.BMP" boolean focusrectangle = false end type event clicked;st_refresh.triggerevent(clicked!) end event type st_refresh from statictext within w_email_view boolean visible = false integer x = 3328 integer y = 93 integer width = 135 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string pointer = "HyperLink!" long textcolor = 33554432 long backcolor = 134217739 string text = "刷新" boolean focusrectangle = false end type event clicked;wf_retrieve() end event event constructor;this.backcolor = 14215660 end event type dw_user from u_dw_rbtnfilter within w_email_view integer x = 1543 integer y = 186 integer width = 618 integer height = 906 integer taborder = 20 boolean bringtotop = true string title = "确认列表" string dataobject = "dw_objdpm_user_cmmt_copy" boolean hscrollbar = true boolean vscrollbar = true boolean livescroll = false boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" end type type dw_list from u_dw_rbtnfilter within w_email_view event mousemove pbm_mousemove event lbuttondown pbm_lbuttondown event lbuttonup pbm_lbuttonup integer x = 863 integer y = 186 integer width = 680 integer height = 899 integer taborder = 20 string dragicon = "graphics\Shell32 025.ico" boolean bringtotop = true string dataobject = "dw_email_view_msg" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true string cur_allowversion = "0" end type event mousemove;if dw_list.dataobject <> 'dw_email_view_msg' then return if keydown(keyleftbutton!) then long i for i = 1 to dw_list.RowCount() if dw_list.IsSelected(i) then if ins_candrag then dw_list.Drag(begin!) ins_candrag = false return end if end if next end if end event event lbuttondown;SetCapture(handle(this)) end event event lbuttonup;ins_candrag = false ReleaseCapture() end event event rowfocuschanged;call super::rowfocuschanged;// 界面 //messagebox('rowfoucuschanged',string(this.dataobject)) IF ins_deletingrow = 1 THEN RETURN currentrow = this.getrow() IF Not KeyDown(keycontrol!) THEN wf_ui_unselectall() This.SelectRow(0, False) IF currentrow > 0 THEN This.SelectRow(currentrow, True) wf_read_row(currentrow) wf_tv_reflash(wf_tv_getcurrent()) END IF END IF Long ll_id String ls_msg s_email_lvfj s_lvfj[] // DONE: 刷新文本与关联datawindow, 刷新UI String ls_text = '' // 最终在浏览器显示 dw_user.Reset() dw_rep.Reset() dw_fj.Reset() dw_mail.Reset() lv_fj.DeleteItems() have_user = False have_fj = False IF IsNull(currentrow) Or currentrow <= 0 THEN GOTO ext END IF IF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN // 内部消息收 ll_id = dw_list.Object.sys_admsgmx_msgid[currentrow] IF wf_admsg_gethtml(ll_id, ls_text, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) GOTO ext END IF have_rep = False have_inout = False // 刷新附件 wf_admsg_getfj(ll_id, s_lvfj, ls_msg) ELSEIF dw_list.DataObject = 'dw_hismsg_copy' THEN // 内部消息发 ll_id = dw_list.Object.msgid[currentrow] IF wf_admsg_gethtml(ll_id, ls_text, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) GOTO ext END IF have_rep = False have_inout = False have_user = True dw_user.Retrieve(ll_id) // 刷新附件 wf_admsg_getfj(ll_id, s_lvfj, ls_msg) ELSEIF dw_list.DataObject = 'dw_email_view_msg' Or dw_list.DataObject = 'dw_email_view_msg_rev'THEN ll_id = dw_list.Object.id[currentrow] IF wf_mail_gethtml(ll_id, ls_text, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) GOTO ext END IF // 刷新附件 wf_mail_getfj(ll_id, s_lvfj, ls_msg) // rep dw_rep.Retrieve(ll_id) // mail // fj lss_subject="" lss_sendman="" lss_senddate="" lss_subject=dw_list.Object.subject[currentrow] lss_sendman=dw_list.Object.sendman[currentrow] lss_senddate=string(dw_list.Object.revdate[currentrow]) lss_revdate=string(dw_list.Object.u_email_msg_senddate[currentrow]) ELSEIF dw_list.DataObject = 'dw_sms_spring_send' THEN ll_id = dw_list.Object.sendid[currentrow] SELECT msg INTO :ls_text FROM u_spring_send Where sendid = :ll_id; IF sqlca.SQLCode <> 0 THEN MessageBox('错误', '查询短信内容失败,' + sqlca.SQLErrText, stopsign!) GOTO ext END IF have_user = True wf_dw_retrieve_smssendmx() ELSEIF dw_list.DataObject = 'dw_ljmail_msg' THEN IF Not has_fj_tran THEN MessageBox('提示','未设置邮件数据库!',information!,OK!) RETURN END IF uo_ljmail_msg uo_ljmail uo_ljmail = Create uo_ljmail_msg uo_ljmail.commit_transaction = fj_tran IF uo_ljmail.uf_get_html(dw_list.Object.msgid[currentrow], ls_text, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) END IF Destroy uo_ljmail ELSE GOTO ext END IF // 根据所选设置 have_user, have_fj ext: ListViewItem lvi Long i FOR i = 1 To UpperBound(s_lvfj) lvi.Label = s_lvfj[i].Filename lvi.PictureIndex = 1 lvi.Data = s_lvfj[i] lv_fj.AddItem(lvi) have_fj = True NEXT wf_html_set(ls_text) Parent.TriggerEvent('resize') //dw_rep.Reset() //dw_mail.Reset() //dw_fj.Reset() ////tab_1.tabpage_1.mle_text.Text = '' ////tab_1.tabpage_2.ole_html.Object.navigate('about:blank') //lv_fj.DeleteItems( ) //ole_1.object.navigate('about:blank') //dw_user.reset() //have_user = false // //IF currentrow = 0 THEN RETURN //THIS.SelectRow(0,FALSE) //THIS.SelectRow(currentrow,TRUE) //if dw_list.dataobject = 'dw_email_view_rev' then // if dw_list.object.mailtype[currentrow] = 0 then // dw_list.object.filename[currentrow] = 'graphics\unread_select.bmp' // else // dw_list.object.filename[currentrow] = 'graphics\read_select.bmp' // end if // dw_list.accepttext() //end if // //Long ll_id,ll_fjtype //String ls_msg ,ls_address //IF dw_list.GetRow() = 0 THEN RETURN // //// 内部消息 //if cur_set.mailid = -1 then // // // s_email_lvfj s_lvfj // listviewitem l_lvi // long count = 1, ll_size // have_fj = false // if cur_set.viewtype = 1 then // ll_id = dw_list.object.sys_admsgmx_msgid[dw_list.getrow()] // elseif cur_set.viewtype = 2 then // ll_id = dw_list.object.msgid[dw_list.getrow()] // else // parent.triggerevent('resize') // return // end if // // 正文 // IF FileExists(Pathname) THEN FileDelete(Pathname) // select datalength(s_msg) INTO :ll_size // from Sys_admsg // where msgid = :ll_id; // if sqlca.sqlcode <> 0 then // MessageBox('错误', '查询正文长度失败') // return // end if // // blob lb_text // if ll_size > 2048 then // selectblob s_msg INTO :lb_text // from Sys_admsg // where msgid = :ll_id; // if sqlca.sqlcode <> 0 then // MessageBox('错误', '下载正文数据失败') // return // end if // else // string ls_text // select s_msg INTO :ls_text // from Sys_admsg // where msgid = :ll_id; // if sqlca.sqlcode <> 0 then // MessageBox('错误', '下载正文失败') // return // end if // lb_text = blob(ls_text) // end if // // IF f_blobtofile(Pathname,lb_text,ls_msg) = 0 THEN // MessageBox('错误', ls_msg) // return // END IF // DO WHILE pos(Pathname,'\',1) > 0 // Pathname = Replace(Pathname,pos(Pathname,'\',1),1,'/') // LOOP // ole_1.object.navigate('file:///' + Pathname) // // // // 附件 // declare cursorfj cursor for // select fjid,filename, filesize from Sys_admsg_fj where msgid = :ll_id; // open cursorfj; // fetch cursorfj INTO :s_lvfj.fjid, :s_lvfj.filename, :s_lvfj.filesize; // do while (sqlca.sqlcode = 0) // s_lvfj.relid = ll_id // l_lvi.label = s_lvfj.filename // l_lvi.pictureindex = 1 // l_lvi.data = s_lvfj // lv_fj.additem(l_lvi) // have_fj = true // fetch cursorfj INTO :s_lvfj.fjid, :s_lvfj.filename, :s_lvfj.filesize; // loop // close cursorfj; // lv_fj.visible = have_fj // // // 确认列表 // if cur_set.viewtype = 2 then // have_user = true // dw_user.retrieve(ll_id) // end if // // parent.triggerevent('resize') // return //end if ////////////////// // // //ll_fjtype = dw_list.Object.fjtype[dw_list.GetRow()] //ll_id = dw_list.Object.id[dw_list.GetRow()] //cur_address = dw_list.Object.sendaddress[dw_list.GetRow()] //IF wf_retrievemx(ll_id,ll_fjtype,cur_address,ls_msg) = 0 THEN // MessageBox('错误',ls_msg) // return //END IF //wf_set_read(dw_list.GetRow()) end event event rowfocuschanging;call super::rowfocuschanging;//if currentrow <= 0 OR currentrow > dw_list.rowcount() then return //if dw_list.dataobject = 'dw_email_view_msg' then // if dw_list.object.status[currentrow] = '未读' then // dw_list.object.filename[currentrow] = 'graphics\unread.bmp' // else // dw_list.object.filename[currentrow] = 'graphics\read.bmp' // end if // dw_list.accepttext( ) //end if end event event rbuttondown;//call super::rbuttondown; IF row <= 0 THEN CALL Super::RButtonDown RETURN END IF IF KeyDown(keyLeftButton!) THEN CALL Super::RButtonDown ELSE IF Not dw_list.IsSelected(row) THEN This.ScrollToRow(row) END IF // this.selectrow(0, false) // this.selectrow(row, true) m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN // menustr = "Text=刷新信息~tEvent=ue_msg_retr" // menustr = menustr+"|"+"Text=-" // menustr = menustr+"|"+"Text=回复信息~tEvent=ue_msg_back" // menustr = menustr+"|"+"Text=确认信息~tEvent=ue_msg_del" // menustr = menustr+"|"+"Text=-" // menustr = menustr+"|"+"Text=查看历史~tEvent=ue_msg_his" // menustr = menustr+"|"+"Text=-" // IF ls_dealflag = 0 THEN // menustr = menustr+"|"+"Text=只显示待确认消息√~tEvent=ue_msg_view1" // menustr = menustr+"|"+"Text=显示全部消息~tEvent=ue_msg_view2" // ELSE // menustr = menustr+"|"+"Text=只显示待确认消息~tEvent=ue_msg_view1" // menustr = menustr+"|"+"Text=显示全部消息√~tEvent=ue_msg_view2" // END IF // menustr = menustr+"|"+"Text=-" // menustr = menustr + "|" + "Text=转发~tEvent=ue_sendother" CALL Super::RButtonDown ELSEIF dw_list.DataObject = 'dw_email_view_msg' THEN Long i, ll_cnt = 0 FOR i = 1 To dw_list.RowCount() IF dw_list.IsSelected(i) THEN ll_cnt ++ IF ll_cnt > 1 THEN EXIT END IF END IF NEXT IF ll_cnt > 1 THEN menustr = "Text=导出~tEvent=ue_export_eml" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=删除~tEvent=ue_del" ELSE menustr = "Text=回复~tEvent=ue_reply" menustr = menustr + "|" + "Text=转发~tEvent=ue_sendother" menustr = menustr + "|" + "Text=导出~tEvent=ue_export_eml" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=删除~tEvent=ue_del" 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 END IF end event event doubleclicked;call super::doubleclicked;IF dw_list.GetRow() = 0 THEN RETURN s_email_set s_parm String ls_msg IF dw_list.DataObject = 'dw_email_view_msg' THEN s_parm.mailid = dw_list.Object.mailid[dw_list.GetRow()] IF wf_ds_get_mail_set(s_parm.mailid, s_parm, ls_msg) <> 1 THEN MessageBox('错误', ls_msg, stopsign!) RETURN END IF s_parm.sendid = dw_list.Object.id[dw_list.GetRow()] IF dw_list.Object.mailtype[dw_list.GetRow()] = '发件' THEN OpenWithParm(w_email_send_new,s_parm) ELSE Long arr[] Long i FOR i = 1 To dw_list.RowCount() arr[i] = dw_list.Object.id[i] NEXT s_parm.arr = arr s_parm.cur = dw_list.GetRow() OpenWithParm(w_email_rev, s_parm) END IF ELSEIF dw_list.DataObject = 'dw_sms_spring_send' THEN // IF dw_list.Object.sendflag = 2 THEN s_spring_send s_send uo_spring_send uo_send uo_send = Create uo_spring_send uo_send.commit_transaction = sqlca IF uo_send.uf_getinfo_withmx(dw_list.Object.sendid[dw_list.GetRow()], Ref s_send, Ref ls_msg) = 0 THEN Destroy uo_send MessageBox('错误', ls_msg, stopsign!) RETURN END IF Destroy uo_send OpenWithParm(w_sms_send_new, s_send) // END IF ELSEIF dw_list.DataObject = 'dw_ljmail_msg' THEN IF dw_list.GetRow() > 0 THEN s_ljmail_msg_parm s_msg_parm s_msg_parm.msgid = dw_list.Object.msgid[dw_list.GetRow()] OpenWithParm(w_ljmail_msg_send, s_msg_parm) END IF ELSEIF dw_list.DataObject = 'dw_deal_admsg_1_copy' THEN IF dwo.Name = 'sys_admsgmx_billcode' THEN Parent.TriggerEvent('ue_viewbill_msg') END IF END IF //IF dw_list.GetRow() = 0 THEN RETURN // //Long i,ll_fjtype // //if cur_set.mailid = -1 then return // //dw_list.AcceptText() //ll_fjtype = dw_list.Object.fjtype[dw_list.GetRow()] //CHOOSE CASE ll_fjtype // CASE 1 // s_edit_index_tran s_tran // Long cur_revid[] // s_tran.b_long = dw_list.GetRow() // s_tran.c_long = dw_list.RowCount() // // FOR i = 1 TO dw_list.RowCount() // cur_revid[i] = dw_list.Object.id[i] // NEXT // s_tran.arr_long = cur_revid // OpenWithParm(w_email_rev,s_tran) // // CASE 0 // s_email_set s_parm // s_parm = cur_set // s_parm.sendid = dw_list.Object.id[dw_list.GetRow()] // // OpenWithParm(w_email_send_new,s_parm) // //END CHOOSE // // // // end event event clicked;call super::clicked;Long ll_mailid,ll_NTFlag String ls_status IF row > 0 THEN ins_candrag = True ELSE RETURN END IF IF This.DataObject = 'dw_email_view_msg' And KeyDown(keycontrol!) THEN IF row > 0 THEN This.SelectRow(row, Not This.IsSelected(row)) wf_ui_row(row) RETURN 1 // 如果不刷新其它内容 END IF ELSEIF This.DataObject = 'dw_email_view_msg' And KeyDown(keyshift!) THEN IF row > 0 THEN wf_ui_unselectall() This.SelectRow(0, False) Long i IF dw_list.GetRow() > row THEN FOR i = row To dw_list.GetRow() This.SelectRow(i, True) wf_ui_row(i) NEXT ELSE FOR i = row To dw_list.GetRow() Step -1 This.SelectRow(i, True) wf_ui_row(i) NEXT END IF RETURN 1 // 如果不刷新其它内容 END IF ELSE IF row > 0 THEN IF This.DataObject = 'dw_email_view_msg' And dwo.Name = 'filename' THEN wf_revert_read(row) wf_tv_reflash(wf_tv_getcurrent()) RETURN 1 // 只更改 未读 已读 状态 END IF // // if this.dataobject = 'dw_email_view_msg_rev' AND dwo.Name = 'filename' then // wf_revert_read(row) // wf_tv_reflash(wf_tv_getcurrent()) // return 1 // 只更改 未读 已读 状态 // end if //2012929-1648 // if this.IsSelected(row) then // return 1 // end if /////////////////////////// // // 内部消息确认 IF This.DataObject = 'dw_deal_admsg_1_copy' And dwo.Name = 'bt_deal' THEN IF MessageBox ("IF","是否确定要确认当前消息记录?"+' '+String(dw_list.Object.sys_admsgmx_s_msgtitle[row]),Question!,YesNo! ) = 2 THEN RETURN 1 Long ls_msgid, ls_empid, ls_senddtint, rslt String arg_msg ls_msgid = dw_list.Object.sys_admsgmx_msgid[row] ls_empid = dw_list.Object.sys_admsgmx_empid[row] ls_senddtint = dw_list.Object.sys_admsgmx_senddtint[row] uo_transmsg uo_itransmsg rslt = uo_itransmsg.f_redeal_admsg(ls_msgid,ls_senddtint,ls_empid,arg_msg,True) IF rslt = 0 THEN MessageBox('提示',arg_msg, Information!, OK! ) ELSE wf_dw_retrieve_innermsg_rev() END IF RETURN 1 END IF /////////////////////// // // rowfocuschanged dw_list.ScrollToRow(row) END IF END IF ///////////////////////////////////// //回执 s_email_set s_parm_huizi String ls_msg IF This.DataObject = 'dw_email_view_msg' THEN IF dw_list.Object.mailtype[dw_list.GetRow()] = "收件" THEN ll_mailid = Long(dw_list.Object.id[dw_list.GetRow()]) SELECT NTFlag Into :ll_NTFlag From u_email_msg Where id = :ll_mailid Using fj_tran; IF ll_NTFlag = 1 THEN s_parm_huizi.id = dw_list.Object.id[dw_list.GetRow()] s_parm_huizi.mailid = dw_list.Object.mailid[dw_list.GetRow()] IF wf_ds_get_mail_set(s_parm_huizi.mailid, s_parm_huizi, ls_msg) <> 1 THEN RETURN END IF s_parm_huizi.flag = 1 s_parm_huizi.revuser = dw_list.Object.senduser[dw_list.GetRow()] s_parm_huizi.revaddress = dw_list.Object.sendaddress[dw_list.GetRow()] s_parm_huizi.relid = dw_list.Object.id[dw_list.GetRow()] s_parm_huizi.reltype = 3 s_parm_huizi.Subject = " " //带主题 // s_parm_huizi.mailid = 0 // s_parm_huizi.mailuser = tv_data_move.c_string // s_parm_huizi.mailAddress = tv_data_move.d_string // s_parm_huizi.revaddress = dw_list.Object.sendman[dw_list.GetRow()] OpenWithParm(w_email_huizi,s_parm_huizi) // messagebox("","需要回执") END IF END IF END IF //////////////////////////////////// //回执 //if (dw_list.dataobject = 'dw_email_view_rev') and (dwo.Name = 'filename') and row > 0 then // if dw_list.object.mailtype[row] = 0 then // wf_set_read(row) // else // wf_set_unread(row) // end if // return 1 //end if //THIS.SetRow(row) // // end event event buttonclicked;call super::buttonclicked;//Long rslt = 1,ls_msgid ,ls_empid,ls_senddtint //String arg_msg //IF (cur_set.mailid = -1 and cur_set.viewtype = 1) and dwo.Name = 'bt_deal' AND row > 0 THEN // IF MessageBox ("IF","是否确定要确认当前消息记录?"+' '+String(this.Object.sys_admsgmx_s_msgtitle[row]),Question!,YesNo! ) = 2 THEN RETURN // ls_msgid = this.Object.sys_admsgmx_msgid[row] // ls_empid = this.Object.sys_admsgmx_empid[row] // ls_senddtint = this.Object.sys_admsgmx_senddtint[row] // // uo_transmsg uo_itransmsg // // rslt = uo_itransmsg.f_redeal_admsg(ls_msgid,ls_senddtint,ls_empid,arg_msg,TRUE) // IF rslt = 0 THEN // MessageBox('提示',arg_msg, Information!, OK! ) // ELSE // wf_retrieve() // END IF //END IF // // end event type cb_1 from uo_imflatbutton within w_email_view event ue_set_email_move ( ) integer x = 1317 integer width = 176 integer height = 163 integer taborder = 40 boolean bringtotop = true string text = "设置" string normalpicname = "imexport.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=设置签名~tEvent=ue_set_signature" menustr = menustr + "|" + "Text=设置客户资料~tEvent=ue_set_cust" menustr = menustr + "|" + "Text=设置收件分类~tEvent=ue_set_email_move" menustr = menustr + "|" + "Text=设置自动收件时间间隔~tEvent=ue_autorev" menustr = menustr + "|" + "Text=邮件短信接收人自定义分组~tEvent=ue_rep_group" 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 type st_del from uo_text_m_main within w_email_view boolean visible = false integer x = 1953 integer y = 109 integer width = 230 integer height = 51 boolean bringtotop = true integer textsize = -9 string text = "确认信息" end type event clicked;call super::clicked;parent.triggerevent('ue_msg_del') end event event constructor;call super::constructor;this.backcolor = 14215660 end event type p_del from picture within w_email_view boolean visible = false integer x = 1872 integer y = 96 integer width = 73 integer height = 64 boolean bringtotop = true boolean originalsize = true string picturename = "graphics\ok.bmp" boolean focusrectangle = false end type event clicked;st_del.triggerevent(clicked!) end event type cbx_showmeredeal from checkbox within w_email_view boolean visible = false integer x = 2216 integer y = 109 integer width = 534 integer height = 51 integer taborder = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 16777215 string text = "只显示待确认消息" boolean checked = true end type event clicked;IF This.Checked THEN ls_dealflag = 0 ELSE ls_dealflag = -1 END IF wf_retrieve() end event event constructor;this.backcolor = 14215660 end event type cb_viewbill from commandbutton within w_email_view boolean visible = false integer x = 2790 integer y = 83 integer width = 311 integer height = 83 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;parent.triggerevent('ue_viewbill_msg') end event type cb_view_his from commandbutton within w_email_view boolean visible = false integer x = 3141 integer y = 83 integer width = 311 integer height = 83 integer taborder = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "查看历史" end type event clicked;parent.triggerevent('ue_msg_his') end event type sle_find from singlelineedit within w_email_view event keydown pbm_keydown integer x = 2055 integer y = 58 integer width = 640 integer height = 90 integer taborder = 20 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 end type event keydown;IF Key = keyenter! THEN cb_find.trigger event clicked() end if end event type cb_find from uo_imflatbutton within w_email_view integer x = 2710 integer y = 48 integer width = 304 integer height = 99 integer taborder = 40 boolean bringtotop = true string text = "查找" string normalpicname = "PREVIEW.BMP" integer picsize = 16 end type event clicked;call super::clicked;String ls_date IF Trim(sle_find.Text) = "" THEN RETURN ls_date = "'%" + Trim(sle_find.Text) + "%'" //dw_list.SetFilter("subject like '%" + ls_date + "%' " ) ls_date = "(subject like " + ls_date + ") or (sendman like " + ls_date + ")" + " or (revman like " + ls_date + ")" dw_list.SetFilter( ls_date) dw_list.Filter() dw_list.SetFilter("") end event type ddlb_1 from dropdownlistbox within w_email_view integer x = 3229 integer y = 61 integer width = 260 integer height = 278 integer taborder = 90 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string item[] = {"全部","已发","未发"} borderstyle borderstyle = stylelowered! end type event constructor;//this.enabled = false this.text = '全部' end event event selectionchanged;IF THIS.TEXT ='已发' then cur_send = 1 elseif THIS.TEXT ='未发' then cur_send =0 else cur_send = -1 end if wf_dw_retrieve_smssend() end event type em_3 from editmask within w_email_view integer x = 3021 integer y = 58 integer width = 187 integer height = 83 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 16777215 string text = "100" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "##0" string minmax = "0~~" end type Start of PowerBuilder Binary Data Section : Do NOT Edit 0Fw_email_view.bin 2800000a00e011cfd0e11ab1a1000000000000000000000000000000000003003e0009fffe000000060000000000000000000000010000000100000000000010000000000200000001fffffffe0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006f00520074006f004500200074006e00790072000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050016ffffffffffffffff000000010000000000000000000000000000000000000000000000000000000018577f8001d20f3000000003000001800000000000500003004f0042005800430054005300450052004d0041000000000000000000000000000000000000000000000000000000000000000000000000000000000102001affffffff00000002ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c00000000004200500043004f00530058004f00540041005200450047000000000000000000000000000000000000000000000000000000000000000000000000000000000001001affffffffffffffff000000038856f96111d0340ac0006ba9a205d74f0000000018577f8001d20f3018577f8001d20f30000000000000000000000000004f00430054004e004e00450053005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001020012ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000030000009c000000000000000100000002fffffffe0000000400000005fffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 24ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000004c00001d8f0000187f0000000000000000000000000000000000000000000000000000004c0000000000000000000000010057d0e011cf3573000869ae62122e2b00000008000000000000004c0002140100000000000000c0460000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c00001d8f0000187f0000000000000000000000000000000000000000000000000000004c0000000000000000000000010057d0e011cf3573000869ae62122e2b00000008000000000000004c0002140100000000000000c0460000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1Fw_email_view.bin End of PowerBuilder Binary Data Section : No Source Expected After This Point