Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-01-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Recorrer Registros de dos Tablas comprobando STOCK

Buenas, espero puedan orientarme con una duda.

Utilizo este codigo (Algo rebuscado, pero hace bien la pega):

Código Delphi [-]
While Not BDatos.PRODUCTOSTAB.Eof do
begin
BDatos.PRODUCTOSTAB.Edit;
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat:=
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat -
BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsFloat;
BDatos.PRODUCTOSTAB.Next;
BDatos.PRODUCTOSFTAB.Next;
end;
BDatos.PRODUCTOSTAB.First;
BDatos.PRODUCTOSFTAB.First;
end;
end;

Lo que hace es recorrer todos los registros de dos TABLAS los cuales pueden ser varios (previamente filtrados en ambas TABLAS, siendo identicos) de la TABLA1 (STOCK Disponible) descontando la cantidad indicada en la TABLA2 (cantidad necesaria), esto lo utilzo para formulas y descuento de materias primas en el STOCK, funciona perfecto, la pregunta, ¿Como puedo saber antes de ejecutar el descuento si el STOCK es suficiente? Por ejemplo, de 5 materias primas la tercera es inferior a lo solicitado me lanse algun mensaje de aviso, se entiende???

y la segunda, cuando recorro los registros y se vuelve a posicionar en el primero, se ve como desciende y vuelve a subir, hay alguna manera de que esto no sea visible???

Gracias de antemano...

PD: Utilizo Delphi 2010, Zeos 7.0.0, MySQL

Última edición por Lenny fecha: 18-01-2011 a las 17:15:23.
Responder Con Cita
  #2  
Antiguo 18-01-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking Solcucionado 1/2

Me autorrespondo:

Código Delphi [-]
procedure TPRODUCCION.Button1Click(Sender: TObject);
begin
While not BDatos.PRODUCTOSTAB.Eof Do
Begin
if BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat <
   BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsFloat then begin
    ShowMessage('El STOCK no es suficiente, elija una cantidad menor.');
    BDatos.PRODUCTOSTAB.First;
    BDatos.PRODUCTOSFTAB.First;
    abort;
 end;
BDatos.PRODUCTOSTAB.Next;
BDatos.PRODUCTOSFTAB.Next;
end;
BDatos.PRODUCTOSTAB.First;
BDatos.PRODUCTOSFTAB.First;

While Not BDatos.PRODUCTOSTAB.Eof do
begin
BDatos.PRODUCTOSTAB.Edit;
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat:=
BDatos.PRODUCTOSTAB.FieldbyName('STOCK').AsFloat -
BDatos.PRODUCTOSFTAB.FieldbyName('STOCK').AsFloat;
BDatos.PRODUCTOSTAB.Next;
BDatos.PRODUCTOSFTAB.Next;
end;
BDatos.PRODUCTOSTAB.First;
BDatos.PRODUCTOSFTAB.First;
end;

El primer Bucle compara entre las dos tablas (independiente de la cantidad de registros) si la cantidad solicitada en la TABLA2 (FORMULA) es mayor al valor en la TABLA1 (STOCK), si la cantidad es mayor, se aborta, si la cantidad es inferior sigue con el siguiente bucle, el cual descuenta entre tablas las materias primas (STOCK) necesarias...

Solo me queda que no sean visibles los recorridos por la tabla.

No se si estoy reinventando la rueda, no dudo que existan mejores formas de hacer lo expuesto, al menos me resulta perfecto y sin errores...

Atento ante cualquier comentario estare atento, Gracias!!!!

Última edición por Lenny fecha: 18-01-2011 a las 18:29:22.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recorrer registros golf2008 MySQL 3 17-04-2008 15:56:44
Actualizar registros de dos tablas lKinGl Conexión con bases de datos 31 01-04-2008 20:09:58
Visualizar registros de dos tablas GustavoCruz SQL 5 29-01-2008 20:05:58
importar registros de tablas juliet DB2 1 14-12-2006 16:19:34
Recorrer todos los registros de una tabla que tengan el mismo campo Sayuri Conexión con bases de datos 3 08-12-2005 16:07:46


La franja horaria es GMT +2. Ahora son las 19:26:10.


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
Copyright 1996-2007 Club Delphi