$PBExportHeader$f_update_fj_cnt.srf global type f_update_fj_cnt from function_object end type forward prototypes global function integer f_update_fj_cnt (long arg_billtype, long arg_scid, long arg_relid, long arg_relid_mx, ref string arg_msg) end prototypes global function integer f_update_fj_cnt (long arg_billtype, long arg_scid, long arg_relid, long arg_relid_mx, ref string arg_msg);Int rslt = 1 Long cnt Long ll_ConnectionID IF Not (arg_billtype = 201 Or arg_billtype = 9102) THEN RETURN 1 IF f_get_outerconnection(ll_ConnectionID,arg_msg) <> 1 THEN rslt = 0 arg_msg = '更新附件数量失败,'+arg_msg GOTO ext END IF SELECT count(*) INTO :cnt FROM U_File WHERE relid = :arg_relid AND scid = :arg_scid AND relid_mx = :arg_relid_mx And billtype = :arg_billtype Using sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询附件数量失败,'+sys_fileDB_sqlca.SQLErrText GOTO ext END IF CHOOSE CASE arg_billtype CASE 201 UPDATE u_mtrldef SET fjcnt = :cnt Where mtrlid = :arg_relid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新产品附件数失败,'+sqlca.SQLErrText GOTO ext END IF CASE 9102 END CHOOSE ext: IF rslt = 0 THEN ROLLBACK Using sqlca; ELSEIF rslt = 1 THEN COMMIT Using sqlca; END IF RETURN rslt end function