duda con opcion de autosuma
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
|
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 |
La franja horaria es GMT +2. Ahora son las 15:53:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi