$PBExportHeader$uo_reexam.sru forward global type uo_reexam from nonvisualobject end type end forward global type uo_reexam from nonvisualobject end type global uo_reexam uo_reexam type variables Long reexamid String reexamcode String employname String duty Long departmentid DateTime reexamdate String emptel String firsttestor String consultor String result String workidea String deptidea String manageridea Long flag String opemp DateTime opdate String modemp DateTime moddate String auditrep DateTime auditdate String dscrp Long addempid Int ifemploy Boolean it_newbegin = False //新建标志 Boolean it_updatebegin = False //修改标志 end variables forward prototypes public function integer p_reset () public function integer p_getinfo (long arg_reexamid, ref string arg_msg) public function integer newbegin () public function integer updatebegin (long arg_reexamid, ref string arg_msg) public function integer save (ref string arg_msg, boolean arg_ifcommit) public function integer del (long arg_reexamid, ref string arg_msg) public function integer auditing (long arg_reexamid, ref string arg_msg, boolean arg_ifcommit) public function integer c_auditing (long arg_reexamid, ref string arg_msg, boolean arg_ifcommit) public function integer add_workidea (long arg_reexamid, string arg_newidea, ref string arg_msg) public function integer add_deptidea (long arg_reexamid, string arg_newidea, ref string arg_msg) public function integer add_manageridea (long arg_reexamid, string arg_newidea, ref string arg_msg) public function integer add_result (long arg_reexamid, string arg_newidea, ref string arg_msg) end prototypes public function integer p_reset ();reexamid = 0 reexamcode = '' employname = '' departmentid = 0 duty = '' firsttestor = '' consultor = '' result = '' workidea = '' deptidea = '' manageridea = '' flag = 0 dscrp = '' it_newbegin=false it_updatebegin=false return 1 end function public function integer p_getinfo (long arg_reexamid, ref string arg_msg);long rslt = 1 SELECT u_reexam.employname, u_reexam.duty, u_reexam.departmentid, u_reexam.reexamdate, u_reexam.firsttestor, u_reexam.consultor, u_reexam.result, u_reexam.workidea, u_reexam.deptidea, u_reexam.manageridea, u_reexam.reexamcode, u_reexam.flag, u_reexam.opemp, u_reexam.opdate, u_reexam.modemp, u_reexam.moddate, u_reexam.auditrep, u_reexam.auditdate , u_reexam.dscrp INTO :employname, :duty, :departmentid, :reexamdate, :firsttestor, :consultor, :result, :workidea, :deptidea, :manageridea, :reexamcode, :flag, :opemp, :opdate, :modemp, :moddate, :auditrep, :auditdate, :dscrp FROM u_reexam WHERE u_reexam.reexamid = :arg_reexamid ; if sqlca.sqlcode <> 0 then rslt = 0 arg_msg = '查询复试通知失败(错误单据唯一码)'+sqlca.sqlerrtext goto ext end if reexamid = arg_reexamid 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_reexamid, ref string arg_msg);int rslt = 1 if arg_reexamid < 0 then rslt = 0 arg_msg = '错误的复试通知单唯一码' goto ext end if if p_getinfo(arg_reexamid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 1 then rslt = 0 arg_msg = "该复试通知单已审核,不能修改" goto ext end if reexamid = arg_reexamid 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(reexamcode) THEN reexamcode = '' IF IsNull(employname) THEN employname = '' IF IsNull(duty) THEN duty = '' IF IsNull(departmentid) THEN departmentid = 0 IF IsNull(addempid) THEN addempid = 0 IF IsNull(ifemploy) THEN ifemploy = 0 IF IsNull(firsttestor) THEN firsttestor = '' IF IsNull(consultor) THEN consultor = '' IF IsNull(result) THEN result = '' IF IsNull(workidea) THEN workidea = '' IF IsNull(deptidea) THEN deptidea = '' IF IsNull(manageridea) THEN manageridea = '' IF IsNull(emptel) THEN emptel = '' IF IsNull(dscrp) THEN dscrp = '' 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 reexamid = 0 THEN ls_newid = f_sys_scidentity(0,"u_reexam","reexamid",arg_msg,False,sqlca) IF ls_newid < 0 THEN rslt = 0 GOTO ext END IF reexamcode = getid(0,"FZ",Date(server_dt),False,sqlca) //取得新单据编号 IF reexamcode = "err" THEN reexamcode = '' rslt = 0 arg_msg = "无法获取复试通知单编号" GOTO ext END IF INSERT INTO u_reexam( u_reexam.reexamid, u_reexam.reexamcode, u_reexam.employname, u_reexam.duty, u_reexam.departmentid, u_reexam.reexamdate, u_reexam.emptel, u_reexam.firsttestor, u_reexam.consultor, u_reexam.flag, u_reexam.opemp, u_reexam.opdate, u_reexam.dscrp, u_reexam.addempid, u_reexam.ifemploy) VALUES ( :ls_newid, :reexamcode, :employname, :duty, :departmentid, :reexamdate, :emptel, :firsttestor, :consultor, 0, :publ_operator, :server_dt, :dscrp, :addempid, :ifemploy); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入操作失败>>"+"~n"+sqlca.SQLErrText GOTO ext END IF reexamid = ls_newid ELSE UPDATE u_reexam SET employname = :employname, duty = :duty, departmentid = :departmentid, reexamdate = :reexamdate, emptel = :emptel, firsttestor = :firsttestor, consultor = :consultor, modemp = :publ_operator, moddate = :server_dt, dscrp = :dscrp, addempid = :addempid , ifemploy = :ifemploy WHERE u_reexam.reexamid = :reexamid AND u_reexam.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_reexamid, ref string arg_msg);long rslt = 1 if arg_reexamid <= 0 then rslt = 0 arg_msg = '没有删除对象' goto ext end if if p_getinfo(arg_reexamid,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_reexam where u_reexam.reexamid = :arg_reexamid ; 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_reexamid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1 ,cnt if arg_reexamid <= 0 then rslt = 0 arg_msg = "错误复试通知单唯一码" goto ext end if if p_getinfo(arg_reexamid,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_reexam set u_reexam.flag = 1, u_reexam.auditrep = :publ_operator, u_reexam.auditdate = getdate() where u_reexam.reexamid = :arg_reexamid ; 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_reexamid, ref string arg_msg, boolean arg_ifcommit);long rslt = 1,cnt = 0 datetime null_dt setnull(null_dt) if arg_reexamid <= 0 then rslt = 0 arg_msg = "错误复试通知单唯一码" goto ext end if if p_getinfo(arg_reexamid,arg_msg) = 0 then rslt = 0 goto ext end if if flag = 0 then rslt = 0 arg_msg = "该复试通知单还未审核,操作取消" goto ext end if update u_reexam set u_reexam.flag = 0, u_reexam.auditrep = '', u_reexam.auditdate = :null_dt where u_reexam.reexamid = :arg_reexamid; 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 public function integer add_workidea (long arg_reexamid, string arg_newidea, ref string arg_msg);Int rslt = 1 arg_newidea = Trim(arg_newidea) IF arg_reexamid <= 0 THEN rslt = 0 arg_msg = "错误的复试通知单唯一码" GOTO ext END IF IF p_getinfo(arg_reexamid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "非审核状态下不可用" GOTO ext END IF UPDATE u_reexam SET workidea = ltrim(rtrim(workidea))+' '+:arg_newidea Where u_reexam.reexamid = :arg_reexamid; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; rslt = 0 arg_msg = "因网络或其它原因导致添加科/车间主管意见操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF COMMIT; workidea = workidea+' '+arg_newidea ext: RETURN rslt end function public function integer add_deptidea (long arg_reexamid, string arg_newidea, ref string arg_msg);Int rslt = 1 arg_newidea = Trim(arg_newidea) IF arg_reexamid <= 0 THEN rslt = 0 arg_msg = "错误的复试通知单唯一码" GOTO ext END IF IF p_getinfo(arg_reexamid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "非审核状态下不可用" GOTO ext END IF UPDATE u_reexam SET deptidea = ltrim(rtrim(deptidea))+' '+:arg_newidea Where u_reexam.reexamid = :arg_reexamid; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; rslt = 0 arg_msg = "因网络或其它原因导致添加部门经理意见操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF COMMIT; deptidea = deptidea+' '+arg_newidea ext: RETURN rslt end function public function integer add_manageridea (long arg_reexamid, string arg_newidea, ref string arg_msg);Int rslt = 1 arg_newidea = Trim(arg_newidea) IF arg_reexamid <= 0 THEN rslt = 0 arg_msg = "错误的复试通知单唯一码" GOTO ext END IF IF p_getinfo(arg_reexamid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "非审核状态下不可用" GOTO ext END IF UPDATE u_reexam SET manageridea = ltrim(rtrim(manageridea))+' '+:arg_newidea Where u_reexam.reexamid = :arg_reexamid; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; rslt = 0 arg_msg = "因网络或其它原因导致添加副总/总经理意见操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF COMMIT; manageridea = manageridea+' '+arg_newidea ext: RETURN rslt end function public function integer add_result (long arg_reexamid, string arg_newidea, ref string arg_msg);Int rslt = 1 arg_newidea = Trim(arg_newidea) IF arg_reexamid <= 0 THEN rslt = 0 arg_msg = "错误的复试通知单唯一码" GOTO ext END IF IF p_getinfo(arg_reexamid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF flag = 0 THEN rslt = 0 arg_msg = "非审核状态下不可用" GOTO ext END IF UPDATE u_reexam SET u_reexam.result = ltrim(rtrim(u_reexam.result)) + ' ' + :arg_newidea Where u_reexam.reexamid = :arg_reexamid; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; rslt = 0 arg_msg = "因网络或其它原因导致添加复试情况操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF COMMIT; result = result+' '+arg_newidea ext: RETURN rslt end function on uo_reexam.create call super::create TriggerEvent( this, "constructor" ) end on on uo_reexam.destroy TriggerEvent( this, "destructor" ) call super::destroy end on