Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Controlar el Post en quantumgrid (https://www.clubdelphi.com/foros/showthread.php?t=74752)

weke 08-07-2011 17:19:43

Controlar el Post en quantumgrid
 
Buenas tardes,
hacía muchísimo tiempo que no posteaba nada pero me he encontrado con un problema que no consigo solucionar.

Estoy utilizando Delphi 2010 y el componente quantumgrid para mostrar los datos. Tengo una pantalla en la que muestro unos datos de cabecera y tengo 2 grids donde inserto lineas (relacionadas con la cabecera), al realizar algún cambio habilito unos botones (cancelar y guardar cambios).

La cuestión es que al modificar e insertar las líneas en los grids cuando cambio de registro me hace el post de forma automáticamente y ya le puedo dar a guardar cambio o a cancelar, que cuando vuelvo a entrar los cambios se guardan de todos modos.

En los botones tengo implementado el Cancel o el Post de las tablas a las que están apuntando los grids y me gustaría controlarlo manualmente, en lugar de que siempre me guarde los cambios (tanto si quiere el usuario como si no).

A ver si alguien se ha encontrado con este problema y me puede echar una manilla. Si no ha quedado clara alguna parte de la explicación no dudeis en preguntar por si no me he explicado lo sificiente claro.

Un saludo y muchas gracias de antemano.

ecfisa 08-07-2011 22:51:22

Hola.

Una opción es usar CachedUpdates de manera que sólo se guardaran los cambios si escribis los datos que están en caché.

Por ejemplo en OnCreate de tu form:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  DataSet.CachedUpdates:= True;
end;

Para guardar los cambios:
Código Delphi [-]
procedure TForm1.btnGuardarClick(Sender: TObject);
begin
  DataSet.ApplyUpdates;
end;

Para cancelar los cambios:
Código Delphi [-]
procedure TForm1.btnAnularClick(Sender: TObject);
begin
  DataSet.CancelUpdates;
end;

Un saludo.

weke 09-07-2011 03:38:46

Muchas gracias ecfisa,
el lunes en cuanto llegue al trabajo lo pruebo y te digo si me ha funcionado.

Un saludo.

weke 11-07-2011 09:32:32

Buenos días,
ecfisa, acabo de hacer los cambios que me indicas pero no me reconoce ni CachedUpdates ni ApplyUpdates. Estoy utilizando TADOTable como dataset, por si fuera el componente que estoy utilizando.

Seguiré mirando a ver si encuentro alguna opción que me permita hacer esto que me indicas.

Un saludo.

ecfisa 11-07-2011 15:56:00

Hola weke.

Realmente no puedo ayudarte mucho con ADO pues no trabajo con él. Pero ví que el componente TADODataSet tiene los métodos UpdateBach y CancelUpdates que cumplen el mismo cometido, espero te sirvan.

Saludos.

weke 11-07-2011 22:51:00

Muchas gracias ecfisa,
con UpdateBach y CancelUpdates todo solucionado.
Solo hay que cambiar el tipo de bloqueo del TADOTable tal y como indica la documentación de Delphi, la verdad es que no me había dado cuenta de esta opción.

Gracias de nuevo y un saludo.


La franja horaria es GMT +2. Ahora son las 15:59:15.

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