$PBExportHeader$uo_jgdscrp.sru forward global type uo_jgdscrp from nonvisualobject end type end forward global type uo_jgdscrp from nonvisualobject end type global uo_jgdscrp uo_jgdscrp forward prototypes public function integer del_jgdscrp (long arg_jgdscrpid, boolean arg_ifcommit, ref string arg_msg) public function integer save_jgdscrpmx (long arg_jgdscrpmxid, long arg_jgdscrpid, string arg_jgdscrpmxcode, string arg_jgdscrpmxname, boolean arg_ifcommit, ref string arg_msg) public function integer del_jgdscrpmx (long arg_jgdscrpmxid, boolean arg_ifcommit, ref string arg_msg) public function integer save_jgdscrp (long arg_jgdscrpid, string arg_code, string arg_name, boolean arg_ifcommit, ref string arg_msg) end prototypes public function integer del_jgdscrp (long arg_jgdscrpid, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1 Long cnt = 0 SELECT count(*) INTO :cnt FROM u_jgdscrp INNER JOIN u_jgdscrpmx ON u_jgdscrp.jgdscrpid = u_jgdscrpmx.jgdscrpid INNER JOIN u_mtrl_jgdscrp ON u_jgdscrpmx.jgdscrpmxid = u_mtrl_jgdscrp.jgdscrpmxid Where u_jgdscrp.jgdscrpid = :arg_jgdscrpid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询操作失败!'+sqlca.SQLErrText GOTO ext END IF IF cnt > 0 THEN rslt = 0 arg_msg = '该项目已经用于物料,不能删除' GOTO ext END IF DELETE From u_jgdscrpmx Where jgdscrpid = :arg_jgdscrpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除加工工艺明细操作失败'+sqlca.SQLErrText GOTO ext END IF DELETE From u_jgdscrp Where jgdscrpid = :arg_jgdscrpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除加工项目操作失败'+sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK Using sqlca; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT Using sqlca; END IF RETURN rslt end function public function integer save_jgdscrpmx (long arg_jgdscrpmxid, long arg_jgdscrpid, string arg_jgdscrpmxcode, string arg_jgdscrpmxname, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1 Long ls_newid IF IsNull(arg_jgdscrpmxcode) THEN arg_jgdscrpmxcode = '' IF IsNull(arg_jgdscrpmxname) THEN arg_jgdscrpmxname = '' IF IsNull(arg_jgdscrpmxid) THEN arg_jgdscrpmxid = 0 IF IsNull(arg_jgdscrpid) THEN arg_jgdscrpid = 0 IF arg_jgdscrpid <= 0 THEN rslt = 0 arg_msg = '没有加工项目!' GOTO ext END IF IF Trim(arg_jgdscrpmxcode) = '' OR IsNull(arg_jgdscrpmxname) THEN rslt = 0 arg_msg = '没有编号或名称' GOTO ext END IF IF arg_jgdscrpmxid = 0 THEN ls_newid = f_sys_scidentity(0,"u_jgdscrpmx","jgdscrpmxid",arg_msg,FALSE,sqlca) IF ls_newid < 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_jgdscrpmx (jgdscrpmxid,jgdscrpid,jgdscrpmxcode,jgdscrpmxname ) Values (:ls_newid,:arg_jgdscrpid, :arg_jgdscrpmxcode,:arg_jgdscrpmxname ) ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '新建加工工艺"'+arg_jgdscrpmxname+'"失败,可能是名称已经存在或网络故障!' GOTO ext END IF ELSE UPDATE u_jgdscrpmx SET jgdscrpmxcode = :arg_jgdscrpmxcode, jgdscrpmxname = :arg_jgdscrpmxname Where jgdscrpmxid = :arg_jgdscrpmxid AND jgdscrpid = :arg_jgdscrpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新加工工艺"'+arg_jgdscrpmxname+'"失败,可能是名称已经存在或网络故障!' GOTO ext END IF UPDATE u_mtrldef SET jgdscrp = RTRIM(LTRIM(ISNULL(u_jgdscrp.jgdscrpcode, ''))) + RTRIM(LTRIM(ISNULL(u_jgdscrp.jgdscrpname, ''))) +RTRIM((LTRIM(ISNULL(u_jgdscrpmx.jgdscrpmxcode, ''))) ) + RTRIM(LTRIM(ISNULL(u_jgdscrpmx.jgdscrpmxname, ''))) FROM u_jgdscrpmx INNER JOIN u_jgdscrp ON u_jgdscrpmx.jgdscrpid = u_jgdscrp.jgdscrpid INNER JOIN u_mtrl_jgdscrp INNER JOIN u_mtrldef ON u_mtrl_jgdscrp.mtrlid = u_mtrldef.mtrlid ON u_jgdscrpmx.jgdscrpmxid = u_mtrl_jgdscrp.jgdscrpmxid Where u_mtrl_jgdscrp.jgdscrpmxid = :arg_jgdscrpmxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新产品资料加工工艺"'+arg_jgdscrpmxname+'"失败,可能是名称已经存在或网络故障!' GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK USING sqlca; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT USING sqlca; END IF RETURN rslt end function public function integer del_jgdscrpmx (long arg_jgdscrpmxid, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1 Long cnt = 0 SELECT count(*) INTO :cnt FROM u_jgdscrpmx INNER JOIN u_mtrl_jgdscrp ON u_jgdscrpmx.jgdscrpmxid = u_mtrl_jgdscrp.jgdscrpmxid Where u_jgdscrpmx.jgdscrpmxid = :arg_jgdscrpmxid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询操作失败!'+sqlca.SQLErrText GOTO ext END IF IF cnt > 0 THEN rslt = 0 arg_msg = '该项目已经用于物料,不能删除' GOTO ext END IF DELETE From u_jgdscrpmx Where jgdscrpmxid = :arg_jgdscrpmxid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除加工工艺明细操作失败'+sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK Using sqlca; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT Using sqlca; END IF RETURN rslt end function public function integer save_jgdscrp (long arg_jgdscrpid, string arg_code, string arg_name, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1 Long ls_newid IF IsNull(arg_code) THEN arg_code = '' IF IsNull(arg_name) THEN arg_name = '' IF Trim(arg_code) = '' OR IsNull(arg_name) THEN rslt = 0 arg_msg = '没有编号或名称' GOTO ext END IF IF arg_jgdscrpid = 0 THEN ls_newid = f_sys_scidentity(0,"u_jgdscrp","jgdscrpid",arg_msg,FALSE,sqlca) IF ls_newid < 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_jgdscrp (jgdscrpid,jgdscrpcode,jgdscrpname ) Values (:ls_newid, :arg_code,:arg_name ) ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '新建加工项目"'+arg_name+'"失败,可能是名称已经存在或网络故障!'+sqlca.SQLErrText GOTO ext END IF ELSE UPDATE u_jgdscrp SET jgdscrpcode = :arg_code, jgdscrpname = :arg_name Where jgdscrpid = :arg_jgdscrpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新加工项目"'+arg_name+'"失败,可能是名称已经存在或网络故障!'+sqlca.SQLErrText GOTO ext END IF UPDATE u_mtrldef SET jgdscrp = RTRIM(LTRIM(ISNULL(u_jgdscrp.jgdscrpcode, ''))) + RTRIM(LTRIM(ISNULL(u_jgdscrp.jgdscrpname, ''))) +RTRIM((LTRIM(ISNULL(u_jgdscrpmx.jgdscrpmxcode, ''))) ) + RTRIM(LTRIM(ISNULL(u_jgdscrpmx.jgdscrpmxname, ''))) FROM u_jgdscrpmx INNER JOIN u_jgdscrp ON u_jgdscrpmx.jgdscrpid = u_jgdscrp.jgdscrpid INNER JOIN u_mtrl_jgdscrp INNER JOIN u_mtrldef ON u_mtrl_jgdscrp.mtrlid = u_mtrldef.mtrlid ON u_jgdscrpmx.jgdscrpmxid = u_mtrl_jgdscrp.jgdscrpmxid Where u_jgdscrp.jgdscrpid = :arg_jgdscrpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新产品资料加工工艺"'+arg_name+'"失败,可能是名称已经存在或网络故障!' GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK USING sqlca; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT USING sqlca; END IF RETURN rslt end function on uo_jgdscrp.create call super::create TriggerEvent( this, "constructor" ) end on on uo_jgdscrp.destroy TriggerEvent( this, "destructor" ) call super::destroy end on