Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   recorrer tabla detalle (https://www.clubdelphi.com/foros/showthread.php?t=54885)

teclilla 02-04-2008 14:54:36

recorrer tabla detalle
 
hola,
estoy con Delphi5 y paradox7 con un formulario para realizar albaranes, tengo la tabla maestra "Talbaranes" donde guardo datos generales (idalb, fecha, observaciones, transporte, ...) y una tabla detalle "TalbprodDetalle" donde guardo cada linea de detalle del albaran (el id del albaran al que pertenece, el codigo del producto seleccionado y la cantidad). Yo lo que quiero es controlar el stock de los productos, es decir, una vez que doy de alta un albaran y lo guardo, seguidamente quiero recorrer la tabla detalle para cada linea de producto y descontar la cantidad en la tabla "Tproductos" (donde guardo todos los datos de los productos y tengo un campo stock). No se si me explico. Me gustaria saber como recorrer la tabla detalle, tengo un esbozo pero no me funciona, testea el while y sale.

Código Delphi [-]
procedure TFormAlbaran.ControlStock;
begin
        //para los detalles del alb correspondiente
        while not TalbprodDetalle.Eof do
        begin
        TProductos.Locate('Codigo',TalbprodDetalleCodprod.asString,[]);
        TProductos.FieldByName('Stock').asInteger:=TProductos.FieldByName('Stock').asInteger - TalbprodDetalleCantidad.AsInteger;
        TalbprodDetalle.next;
        end;
end;

El procedimiento se realiza justo despues de realizar:

Código Delphi [-]
Talbaranes.Post;
        TalbprodDetalle.Post;
        TalbprodDetalle.ApplyUpdates;

Muchas gracias.

Caro 02-04-2008 15:07:13

Hola teclilla, para recorrer tu tabla te falta posicionarte en el primer registro con First, pero no estoy segura que solo ese sea tu problema.
Código Delphi [-]
procedure TFormAlbaran.ControlStock;
begin   //para los detalles del alb correspondiente  
 TalbprodDetalle.First;
 while not TalbprodDetalle.Eof do    begin
     TProductos.Locate('Codigo',TalbprodDetalleCodprod.asString,[]);
    TProductos.FieldByName('Stock').asInteger:=TProductos.FieldByName('Stock').asInteger - TalbprodDetalleCantidad.AsInteger;
    TalbprodDetalle.next;
   end;
end;

Saluditos


La franja horaria es GMT +2. Ahora son las 20:06:49.

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