PDA

Ver la Versión Completa : duda con opcion de autosuma


phoenix
09-05-2003, 20:10:02
hola, tengo hecho un proyecto con delphi 6 y paradox, y tiene una celda de autosuma numerica, mi pregunta es suponiendo que tengo los numeros 1,2 y 3 si borro el 2 o 3 al hacer el siguiente post me autosuma al 4, hay alguna forma de que al borrar el 2 bajen tosdos 1 puesto (pasando a ser el 3 a 2), o que si borro el 3 el siguiente post el autonomerico me vuelva a crear un 3 nuevo?, es posible que lo halla liado un poco pero gracias de antemano

andres1569
09-05-2003, 22:53:06
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