$PBExportHeader$f_update_printnum2.srf global type f_update_printnum2 from function_object end type forward prototypes global function integer f_update_printnum2 (long arg_scid, string arg_code, boolean arg_ifscid, long arg_printnum, ref string arg_msg, boolean arg_ifcommit) end prototypes global function integer f_update_printnum2 (long arg_scid, string arg_code, boolean arg_ifscid, long arg_printnum, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt String ls_sccode String ls_billcode,ls_tablename,ls_codename Boolean if_f IF arg_printnum = 0 THEN rslt = 1 GOTO ext END IF IF arg_ifscid THEN SELECT sccode INTO :ls_sccode FROM u_scdef Where scid = :arg_scid; IF sqlca.SQLCode <> 0 Or IsNull(ls_sccode) THEN ls_sccode = '' ELSE ls_sccode = '' END IF ls_billcode = Mid(Trim(arg_code),Len(ls_sccode) + 1,2) //IF sys_option_saletask_ifuse_typebillcode = 1 THEN // SELECT count(*) INTO :cnt // From u_saletype Where billcode = :ls_billcode; // IF sqlca.SQLCode <> 0 THEN // cnt = 0 // END IF // // IF cnt > 0 THEN // ls_billcode = 'SG' // END IF //END IF //IF sys_option_saletask_ifuse_typebillcode = 1 And cnt > 0 THEN // if_f = False //ELSE SELECT tablename,codename INTO :ls_tablename,:ls_codename FROM u_billcode Where firststr = :ls_billcode; IF sqlca.SQLCode <> 0 THEN if_f = False ELSE if_f = True END IF //END IF IF Not if_f THEN SELECT tablename,codename INTO :ls_tablename,:ls_codename FROM u_billcode Where oldfirststr = :ls_billcode; IF sqlca.SQLCode <> 0 THEN if_f = False ELSE if_f = True END IF END IF IF Trim(ls_tablename) = '' THEN rslt = 0 arg_msg = '没有表名' GOTO ext END IF IF Trim(ls_codename) = '' THEN rslt = 0 arg_msg = '没有单号列名' GOTO ext END IF IF if_f THEN String update_sql update_sql = '' update_sql += " update " + ls_tablename update_sql += " set printnum = printnum + " + String(arg_printnum) update_sql += " where " + ls_codename + " = '" + arg_code + "'" // MessageBox('',update_sql) EXECUTE Immediate :update_sql; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新表:'+ls_tablename+'打印次数失败' rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT; END IF RETURN rslt end function