$PBExportHeader$uo_email_sign.sru forward global type uo_email_sign from nonvisualobject end type end forward global type uo_email_sign from nonvisualobject end type global uo_email_sign uo_email_sign type variables long id string ownerid='' string signname='' string signcontent='' private: transaction fj_tran end variables forward prototypes public subroutine uf_settrans (transaction arg_tran) public function integer uf_save (ref string arg_msg) public function integer uf_delete (integer arg_id, ref string arg_msg) public subroutine uf_reset () public function integer uf_set_sign (integer arg_id, string arg_ownerid, ref string arg_msg) public function integer uf_get_signinfo (integer arg_id, ref string arg_signname, ref string arg_signcontent, ref string arg_msg) public function integer uf_changesign (string arg_sign, ref string arg_html, ref string arg_msg) end prototypes public subroutine uf_settrans (transaction arg_tran);fj_tran=arg_tran end subroutine public function integer uf_save (ref string arg_msg);Int rslt = 1 Long cnt if id=0 then goto new end if SELECT count(*) INTO :cnt FROM U_email_signature WHERE id = :id Using fj_tran; IF cnt > 0 THEN UPDATE u_email_signature SET signname = :signname,signcontent = :signcontent WHERE id = :id Using fj_tran; IF fj_tran.SQLCode <> 0 THEN ROLLBACK using fj_tran; rslt = 0 arg_msg = '更新签名失败!' ELSE COMMIT using fj_tran; END IF ELSE new: DateTime dat dat = DateTime(Today(),Now()) SELECT count(*)+1 INTO :id FROM u_email_signature Using fj_tran; // messagebox('',string(id)) IF id > 1 THEN SELECT max(id)+1 INTO :id FROM u_email_signature Using fj_tran; END IF INSERT INTO u_email_signature(id,ownerid,signname,signcontent,opdate) VALUES(:id,:ownerid,:signname,:signcontent,:dat) Using fj_tran; IF fj_tran.SQLCode <> 0 THEN ROLLBACK using fj_tran; arg_msg = '保存签名失败' rslt = 0 ELSE COMMIT using fj_tran; END IF END IF RETURN rslt end function public function integer uf_delete (integer arg_id, ref string arg_msg);int rslt=1 long cnt select count(*) into :cnt from u_email_signature where id=:arg_id and ownerid= :ownerid using fj_tran; if cnt=0 then rslt=0 arg_msg='未找到签名,或者你不是签名持有人!' goto ext end if delete u_email_signature where id=:arg_id using fj_tran; if fj_tran.sqlcode<>0 then rslt=0 arg_msg='删除签名失败!' rollback using fj_tran; else commit using fj_tran; end if ext: return rslt end function public subroutine uf_reset (); id=0 signname='' signcontent='