Ver Mensaje Individual
  #2  
Antiguo 18-01-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Reputación: 18
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