PDA

Ver la Versión Completa : Detectar fila sin grabar


Parsec
30-06-2013, 09:10:11
Hola a tod@s,

si yo realizo cambios en las celdas de un dbgrid no actualiza la tabla hasta que cambio de fila y al principio de la fila muestra el siguiente símbolo:
http://www.procesosbpm.com/imagen2.jpg

Cuando ya se ha realizado la grabación, muestra este símbolo al principio de la fila:
http://www.procesosbpm.com/imagen1.jpg

¿Cómo puedo saber en que estado se encuentra?, si falta por actualizar (1ª imagen) o si ya se ha actualizado (2ª imagen).

Saludos

Casimiro Notevi
30-06-2013, 10:12:27
dsState, puede ser dsInsert, dsEdit, dsBrowse, etc.
Mira la ayuda de delphi o el magnífico libro de Ian Marteens, La cara oculta de Delphi (http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip).

Parsec
30-06-2013, 12:04:38
Muchas gracias,

solucionado, escribo con detalle el código por si alguien lo necesita:

if dBGRID2.DataSource.DataSet.State = Dsedit then
Showmessage('Edición'); // Se ha realizado un cambio en el dbgrid y no está grabado todavía
if dBGRID2.DataSource.DataSet.State = Dsbrowse then
Showmessage('Recorriendo');// Una vez grabado el dato el dbgrid vuelve a este estado.

Saludos

ecfisa
30-06-2013, 20:16:43
Hola Parsec.

Primero que nada gracias por publicar como lo solucionaste ;)

Otra opción es usando RTTI, ejemplo:

...
uses TypInfo;

...
begin
with DBGrid2.DataSource do
ShowMessage(GetEnumName(TypeInfo(TDataSetState), Ord(DataSet.State)));
end;


Saludos :)

Parsec
08-07-2013, 18:32:39
Gracias Ecfisa, voy a probarlo.

Saludos

gandalf_uy
30-09-2015, 14:00:33
Hola!

Estoy buscando una forma de solucionar algo parecido a lo que plantean en este hilo.

Tengo una DbGrid asociada a una TTable. Los campos booleans los muestro con un checkbox. Al presionar sobre uno de ellos, cambia su valor, pero el registro no se me actualiza. Como quien dice queda en modo edición y solo se actualiza si el usuario se mueve de registro. Lo que me sucede a veces es que el usuario al ver que está el checkbox cambiado, piensa que ya hizo la modificación y cierra el form. Por ende, quisiera saber alguna manera de forzar que inmediatamente que se clickea el checkbox, el mismo automáticamente actualice la tTable sin necesidad de que tenga que moverse de registro el usuario.

Alguna sugerencia?

Mil gracias!

ecfisa
30-09-2015, 15:05:43
Hola gandalf_uy.

How to make TDBCheckBox update its DataField immediately after click? (http://stackoverflow.com/questions/30963524/how-to-make-tdbcheckbox-update-its-datafield-immediately-after-click)

Saludos :)