Ver Mensaje Individual
  #3  
Antiguo 03-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Autoincrementos no creo que pueda servir, ya que pueden quedar huecos y en números de factura, no se permite.

No creo que sea nada complejo.
Código Delphi [-]
function Incrementa(nFactura:string):string;
begin
  if Length(nFactura) > 3 then
    Result := copy(nfactura, 1, 3) + intToStr(strToint(copy(nfactura, 3, 255))+1);
end;

El problema más grave es recuperar el número de factura más alto de un grupo, ya que al ser texto, la ordenación de un String no tiene nada que ver con integer.

La forma de salvar este obstaculo, es añadir ceros por la izquierda, así se puede pedir un listado de nFactura ordenado descendente. El primer nFactura será el que se incrementa.

Código:
st-00000001
st-00010000
Aquí 10.000 es el último al pedir una ordenación AScendente.

Sin embargo, manteniendo el orden ASCendente, aquí no se obtienen los mismos resultados:
Código:
st-13
st-10000
st-1
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita