$PBExportHeader$uo_ljmail_box.sru forward global type uo_ljmail_box from nonvisualobject end type end forward global type uo_ljmail_box from nonvisualobject end type global uo_ljmail_box uo_ljmail_box forward prototypes public function integer uf_getchildboxs (long arg_parentid, ref s_ljmail_box arg_child[], ref string arg_msg) public function integer uf_save (ref s_ljmail_box s_box, ref string arg_msg) public function integer uf_getinfo (long arg_boxid, ref s_ljmail_box arg_s_box, ref string arg_msg) public function integer uf_rename (long arg_boxid, string arg_newname, ref string arg_msg) public function long uf_getboxid (long arg_empid, long arg_boxtype, ref string arg_msg) public function integer uf_initbox (long arg_empid, ref string arg_msg, boolean if_commit) public function integer uf_getparentid (long arg_boxid, ref long arg_parentid, ref string arg_msg) public function integer uf_getboxtype (long arg_boxid, ref long arg_boxtype, ref string arg_msg) end prototypes public function integer uf_getchildboxs (long arg_parentid, ref s_ljmail_box arg_child[], ref string arg_msg);Int rslt = 1 s_ljmail_box arg_rslt[] Long ll_cnt = 0 Long ll_boxid String ls_boxname Long ll_boxtype DECLARE cur1 Cursor FOR SELECT boxid, boxname, boxtype From u_ljmail_box Where empid = :sys_empid And parentid = :arg_parentid; OPEN cur1; FETCH cur1 Into :ll_boxid, :ls_boxname, :ll_boxtype; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arg_rslt[ll_cnt].boxid = ll_boxid arg_rslt[ll_cnt].boxname = ls_boxname arg_rslt[ll_cnt].empid = sys_empid arg_rslt[ll_cnt].parentid = arg_parentid arg_rslt[ll_cnt].boxtype = ll_boxtype FETCH cur1 Into :ll_boxid, :ls_boxname, :ll_boxtype; LOOP CLOSE cur1; arg_child = arg_rslt RETURN rslt end function public function integer uf_save (ref s_ljmail_box s_box, ref string arg_msg);Int rslt = 1 IF s_box.boxid = 0 THEN Long ll_boxid ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca) IF ll_boxid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_ljmail_box(boxid, boxname, empid, parentid, boxtype) VALUES(:ll_boxid, :s_box.boxname, :s_box.empid, :s_box.parentid, :s_box.boxtype); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF s_box.boxid = ll_boxid ELSE UPDATE u_ljmail_box SET boxname = :s_box.boxname, empid = :s_box.empid, parentid = :s_box.parentid, boxtype = :s_box.boxtype Where boxid = :s_box.boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更改LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = 'LE邮箱已经被删除,请刷新后再试' GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSE COMMIT; END IF RETURN rslt end function public function integer uf_getinfo (long arg_boxid, ref s_ljmail_box arg_s_box, ref string arg_msg);Int rslt = 1 Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM u_ljmail_box Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = 'LE邮箱不存在,请刷新后再试' GOTO ext END IF SELECT boxid, boxname, empid, parentid, boxtype INTO :arg_s_box.boxid, :arg_s_box.boxname, :arg_s_box.empid, :arg_s_box.parentid, :arg_s_box.boxtype From u_ljmail_box Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF ext: RETURN rslt end function public function integer uf_rename (long arg_boxid, string arg_newname, ref string arg_msg);Int rslt = 1 Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM u_ljmail_box Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = 'LE邮箱不存在,请刷新后再试' GOTO ext END IF UPDATE u_ljmail_box Set boxname = :arg_newname Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新LE邮箱失败,' + sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function long uf_getboxid (long arg_empid, long arg_boxtype, ref string arg_msg);Long ll_boxid = 0 Long ll_cnt SELECT count(0) INTO :ll_cnt FROM u_ljmail_box WHERE empid = :arg_empid AND parentid = 0 And boxtype = :arg_boxtype; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询龙嘉邮件箱失败,' + sqlca.SQLErrText GOTO ext END IF IF ll_cnt <= 0 THEN arg_msg = '帐号龙嘉邮件箱未初始化' GOTO ext END IF SELECT top 1 boxid INTO :ll_boxid FROM u_ljmail_box WHERE empid = :arg_empid AND parentid = 0 And boxtype = :arg_boxtype; IF sqlca.SQLCode <> 0 THEN ll_boxid = 0 arg_msg = '查询龙嘉邮箱失败,' + sqlca.SQLErrText GOTO ext END IF ext: RETURN ll_boxid end function public function integer uf_initbox (long arg_empid, ref string arg_msg, boolean if_commit);Int rslt = 1 Long ll_cnt SELECT count(0) INTO :ll_cnt FROM u_ljmail_box WHERE empid = :arg_empid And parentid = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询龙嘉邮件箱失败,' + sqlca.SQLErrText GOTO ext END IF Long ll_boxid IF ll_cnt = 0 THEN // 收件箱 ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca) IF ll_boxid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_ljmail_box(boxid, boxname, empid, parentid, boxtype) VALUES(:ll_boxid, '收件箱', :arg_empid, 0, 1); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化收件箱失败,' + sqlca.SQLErrText GOTO ext END IF // 发件箱 ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca) IF ll_boxid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_ljmail_box(boxid, boxname, empid, parentid, boxtype) VALUES(:ll_boxid, '发件箱', :arg_empid, 0, 2); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化发件箱失败,' + sqlca.SQLErrText GOTO ext END IF // 已发件箱 ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca) IF ll_boxid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_ljmail_box(boxid, boxname, empid, parentid, boxtype) VALUES(:ll_boxid, '已发件箱', :arg_empid, 0, 3); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化已发件箱失败,' + sqlca.SQLErrText GOTO ext END IF // 废件箱 ll_boxid = f_sys_scidentity(0,"u_ljmail_box","boxid",arg_msg,True,id_sqlca) IF ll_boxid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_ljmail_box(boxid, boxname, empid, parentid, boxtype) VALUES(:ll_boxid, '废件箱', :arg_empid, 0, 4); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化废件箱失败,' + sqlca.SQLErrText GOTO ext END IF END IF ext: IF if_commit THEN IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF END IF RETURN rslt end function public function integer uf_getparentid (long arg_boxid, ref long arg_parentid, ref string arg_msg);Int rslt = 1 SELECT parentid INTO :arg_parentid FROM u_ljmail_box Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询父邮箱失败,ID:' + String(arg_boxid) + sqlca.SQLErrText GOTO ext END IF ext: RETURN rslt end function public function integer uf_getboxtype (long arg_boxid, ref long arg_boxtype, ref string arg_msg);Int rslt = 1 SELECT boxtype INTO :arg_boxtype FROM u_ljmail_box Where boxid = :arg_boxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询邮箱类型失败,ID:' + String(arg_boxid) + sqlca.SQLErrText GOTO ext END IF ext: RETURN rslt end function on uo_ljmail_box.create call super::create TriggerEvent( this, "constructor" ) end on on uo_ljmail_box.destroy TriggerEvent( this, "destructor" ) call super::destroy end on