Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   BOTON CANCEL -> Error: Table1:DataSet is not in Edit mode (https://www.clubdelphi.com/foros/showthread.php?t=53174)

amadis 12-02-2008 23:59:56

BOTON CANCEL -> Error: Table1:DataSet is not in Edit mode
 
Que tal Gente!

Tengo un pequelo problema que me esta volviendo loco.

Estoy trabajando con una tabla paradox haciendo un pequeño control para levantar pedidos de productos. (4 productos).

El problema esta en el form de edicion/alta pedidos

tengo varios dbedits (uno para idcliente, otor pera fecha y 4 para cantidades de productos)

un boton OK y un NO.

El problema es en el NO. cuando estoy agregando un nuevo registro NO ME CANCELA, me da error pedidos:DataSet is not in Edit mode.

Sinembargo chequeo mediante lo que mostrare luego y me dice que esta en estado DsInsert.

Aquí esta el boton cancelar

Código Delphi [-]
procedure TFnuevopedido.BTcancelarClick(Sender: TObject);
begin
  if (pedidos.State = DSinsert) or (pedidos.State = DSedit)
    then
      begin
           IF pedidos.State = dsinsert then showmessage('ins');
           IF pedidos.State = dsedit then showmessage('Ed');
             // de estos 2 pasos anteriores salta el SHOWMESSAGE ('INS');
           datos.pedidos.Cancel;
      end;
   close;
end;

Y cuando llega a ejecutar el cancel me da el error de que no está en modo Edicion.

El boton de OK tiene pregunta si esta en estado de edicion o insercion y postea y luego cierra. Eso funciona.

Luego si Edito un registro antes creado y luego cancelo la EDICION, cancela correctamente.

Dentro del form en los 4 edits de cantidad de productos, hay una instruccion en el onchange de cada uno que ejecuta un procedimiento que calcula el precio, tomando el precio del producto de otra tabla y multiplicando por esa cantidad. Probe anular esa instruccion pensando que el hecho de hacer un lookup en otra tabla podria perder el estado de inserción pero sigue dando error.

Cuando hago cancelar me sale 9 veces el error de no edit mode.

:confused: ¿alguna idea?

Revisé si no había algun ";" fuera de lugar o faltante y parece que no...

Desde ya Muchas Gracias

Chris 13-02-2008 00:19:07

Mira la diferencia en tu código:
Código Delphi [-]
IF pedidos.State = dsinsert then showmessage('ins');
y
Código Delphi [-]
datos.pedidos.Cancel;

Puede ser que no sean los mismos componentes con los que estés tratando.

Saludos.

amadis 13-02-2008 11:50:49

Perdon, al publicar el codigo saque "datos." para ahorrar espacio, que corresponde a un datamodule donde estan los elementos de datos. Todas las tablas estan en eldatamodule datos asi que eso no es.

Gracias

Lepe 13-02-2008 14:16:10

Pues tendrás que poner el código fuente que sí es ¿no? o ¿tenemos que adivinarlo?

Saludos


La franja horaria es GMT +2. Ahora son las 17:54:00.

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