Ver Mensaje Individual
  #2  
Antiguo 09-05-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 24
andres1569 Va por buen camino
Hola:

Si editas dentro de un form modal que al aceptar confirma la transacción de todos los valores (o si trabajas con CachedUpdates aplica los cambios), te recomiendo que a la hora de cerrar el form recorras toda la tabla y asignes el valor correlativo, más que nada para que no se ralentice todo cada vez que haces un delete.

Si no usas un modelo de confirmación de todos los cambios, sino que cada vez que se realiza un delete o un post grabas, entonces habría que programar algo así:

[code]
var
ContadorGlobal : Integer;
Reasignando : Boolean; // variable globale dentro del DataModule

procedure DATAMAIN.TablaAfterDelete (ADataSet: TDataSet);
var
Contador : Integer;
BK : TBookMark;
begin
with ADataSet do
begin
BK := GetBookMark;
try
DisableControls;
try
First;
Contador := 1;
while NOT EOF do
begin
with FieldByName('NumLinea') do
if AsInteger <> Contador then
begin
Append;
AsInteger := Contador;
Post;
end;
Inc (Contador);
Next;
end;
finally
ContadorGlobal := Contador; // ContadorGlobal es el que asignas en el evento OnNewRecord
GotoBookMark (BK);
EnableControls;
end;
finally
FreeBookMark (BK);
end;
end;
end;

Saludos
Responder Con Cita