$PBExportHeader$uo_employ.sru forward global type uo_employ from nonvisualobject end type end forward global type uo_employ from nonvisualobject end type global uo_employ uo_employ type variables Long employid String employcode String employname String duty DateTime employdate String firsttestor String retestor Long ifemploy String employway string dscrp Long flag String opemp DateTime opdate String modemp DateTime moddate String auditrep DateTime auditdate string dscrp2 Long addempid Boolean it_newbegin = False //新建标志 Boolean it_updatebegin = False //修改标志 end variables forward prototypes public function integer p_reset () public function integer p_getinfo (long arg_employid, ref string arg_msg) public function integer newbegin () public function integer updatebegin (long arg_employid, ref string arg_msg) public function integer save (ref string arg_msg, boolean arg_ifcommit) public function integer del (long arg_employid, ref string arg_msg) public function integer auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit) public function integer c_auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit) end prototypes public function integer p_reset ();employid = 0 employcode = '' employname = '' duty = '' firsttestor = '' retestor = '' ifemploy = 0 employway = '' flag = 0 dscrp2 = '' dscrp = '' it_newbegin=false it_updatebegin=false return 1 end function public function integer p_getinfo (long arg_employid, ref string arg_msg);long rslt = 1 SELECT u_employ.employname, u_employ.duty, u_employ.employdate, u_employ.employway, u_employ.firsttestor, u_employ.retestor, u_employ.ifemploy, u_employ.employcode, u_employ.flag, u_employ.opemp, u_employ.opdate, u_employ.modemp, u_employ.moddate, u_employ.auditrep, u_employ.auditdate , u_employ.dscrp2 INTO :employname, :duty, :employdate, :employway, :firsttestor, :retestor, :ifemploy, :employcode, :flag, :opemp, :opdate, :modemp, :moddate, :auditrep, :auditdate, :dscrp2 FROM u_employ WHERE u_employ.employid = :arg_employid ; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询应聘人员登记表失败(错误单据唯一码)'+sqlca.sqlerrtext goto ext end if employid = arg_employid ext: return rslt end function public function integer newbegin ();p_reset() it_newbegin = true it_updatebegin = false return 1 end function public function integer updatebegin (long arg_employid, ref string arg_msg);int rslt = 1 if arg_employid < 0 then rslt = 0 arg_msg = '错误的应聘人员登记表唯一码' goto ext end if if p_getinfo(arg_employid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 1 then rslt = 0 arg_msg = "该应聘人员登记表已审核,不能修改" goto ext end if employid = arg_employid it_newbegin = false it_updatebegin = true ext: if rslt = 0 then p_reset() return rslt end function public function integer save (ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 DateTime server_dt Long ls_newid IF IsNull(employname) THEN employname = '' IF IsNull(duty) THEN duty = '' IF IsNull(firsttestor) THEN firsttestor = '' IF IsNull(retestor) THEN retestor = '' IF IsNull(ifemploy) THEN ifemploy = 0 IF IsNull(employway) THEN employway = '' IF IsNull(dscrp) THEN dscrp = '' IF IsNull(dscrp2) THEN dscrp2 = '' IF it_newbegin = False And it_updatebegin = False THEN rslt = 0 arg_msg = "非编辑状态不可以提交" GOTO ext END IF SELECT Top 1 getdate() Into :server_dt From u_user; //取得系统时间,借用操作员表 IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,日期 " GOTO ext END IF IF addempid = 0 THEN rslt = 0 arg_msg = '请选择人员增补申请单' GOTO ext END IF IF employid = 0 THEN //新建 ls_newid = f_sys_scidentity(0,"u_employ","employid",arg_msg,True,id_sqlca) IF ls_newid < 0 THEN rslt = 0 GOTO ext END IF employcode = getid(0,"YP",Date(server_dt),False,sqlca) //取得新单据编号 IF employcode = "err" THEN employcode = '' rslt = 0 arg_msg = "无法获取应聘人员登记表编号" GOTO ext END IF INSERT INTO u_employ( u_employ.employid, u_employ.employcode, u_employ.employname, u_employ.duty, u_employ.employdate, u_employ.firsttestor, u_employ.retestor, u_employ.ifemploy, u_employ.dscrp, u_employ.employway, u_employ.flag, u_employ.opemp, u_employ.opdate, u_employ.dscrp2, u_employ.addempid) VALUES ( :ls_newid, :employcode, :employname, :duty, :employdate, :firsttestor, :retestor, :ifemploy, :dscrp, :employway, 0, :publ_operator, :server_dt, :dscrp2, :addempid); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText GOTO ext END IF employid = ls_newid ELSE //////// //更新 UPDATE u_employ SET employname = :employname, duty = :duty, employdate = :employdate, firsttestor = :firsttestor, retestor = :retestor, ifemploy = :ifemploy, employway = :employway, dscrp = :dscrp, modemp = :publ_operator, moddate = :server_dt, dscrp2 = :dscrp2, addempid = :addempid WHERE u_employ.employid = :employid AND u_employ.flag = 0 ; IF sqlca.SQLCode <> 0 Or sqlca.SQLNRows <= 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致更新单据操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF END IF it_newbegin = False it_updatebegin = False ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT; END IF Return(rslt) end function public function integer del (long arg_employid, ref string arg_msg);long rslt = 1 if arg_employid <= 0 then rslt = 0 arg_msg = '没有删除对象' goto ext end if if p_getinfo(arg_employid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 1 then rslt = 0 arg_msg = "该应聘人员登记表已经审核,不能删除" goto ext end if if it_newbegin or it_updatebegin then rslt=0 arg_msg="编辑状态下不可以执行,操作取消" goto ext end if delete from u_employ where u_employ.employid = :arg_employid ; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = "删除人员登记表操作失败"+"~n"+sqlca.sqlerrtext goto ext end if commit; it_newbegin = false it_updatebegin = false if rslt = 0 then rollback; p_reset() end if ext: return (rslt) end function public function integer auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1 ,cnt if arg_employid <= 0 then rslt = 0 arg_msg = "错误应聘人员登记表唯一码" goto ext end if if p_getinfo(arg_employid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 1 then rslt = 0 arg_msg = "该应聘人员登记表已经审核,操作取消" goto ext end if cnt=0 SELECT count(*) INTO :cnt FROM u_user WHERE username=:publ_operator using sqlca; if sqlca.sqlcode<>0 then rslt=0 arG_MSG="查询操作失败,操作员!" goto ext end if if cnt=0 then rslt=0 arG_MSG="操作员姓名未登记或已取消!" goto ext end if update u_employ set u_employ.flag = 1, u_employ.auditrep = :publ_operator, u_employ.auditdate = getdate() where u_employ.employid = :arg_employid ; if sqlca.sqlcode<>0 then ARG_msg='更新应聘人员登记表审核状态失败,原因>>'+sqlca.sqlerrtext rslt=0 goto ext end if ext: if rslt=0 then rollback; elseif rslt=1 and arg_ifcommit then commit; end if return rslt end function public function integer c_auditing (long arg_employid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1,cnt = 0 datetime null_dt setnull(null_dt) if arg_employid <= 0 then rslt = 0 arg_msg = "错误应聘人员登记表唯一码" goto ext end if if p_getinfo(arg_employid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 0 then rslt = 0 arg_msg = "该应聘人员登记表还未审核,操作取消" goto ext end if update u_employ set u_employ.flag = 0, u_employ.auditrep = '', u_employ.auditdate = :null_dt where u_employ.employid = :arg_employid; if sqlca.sqlcode<>0 then rslt=0 arg_Msg='更新应聘人员登记表状态失败!原因:'+sqlca.sqlerrtext goto ext end if ext: if rslt=0 then rollback; elseif rslt=1 and arg_ifcommit then commit; end if return rslt end function on uo_employ.create call super::create TriggerEvent( this, "constructor" ) end on on uo_employ.destroy TriggerEvent( this, "destructor" ) call super::destroy end on