Ver Mensaje Individual
  #3  
Antiguo 22-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Yare.

Paciencia, paciencia que no hay muchos deambulando a esta hora...

Agrega al form:
  • Un TIBQuery, (o el equivalente en los componentes que uses) que le daremos por nombre: Tu_Query.
  • Un TDataSource asociado al query que denominaremos: dsQuery.
  • Un TDBEdit para ir mostrando la existencia.
Las asignaciones de los ejemplos siguientes podes realizarlas desde el Object Inspector en tiempo de diseño; para darle más claridad lo hago por código .

Si ya tenes actualizadas las existencias en tabla EXISTENCIA:
Código Delphi [-]
procedure TForm.FormCreate(Sender: TObject);
begin
  with Tu_Query do
  begin
    DataSource:= dsVentas; // TDataSource asociado a tabla VENTAS
    Close;
    SQL.Clear;
    SQL.Add('SELECT CANTIDAD AS STOCK FROM EXISTENCIA');
    SQL.Add('WHERE CODIGO_BARRAS = :CODIGO_BARRAS'); // (*)
    Open;
  end;
  DBEdit1.DataSource:= dsQuery;
  DBEdit1.DataField := 'STOCK';
end;

Si no tenes actualizadas las existencias en la tabla EXISTENCIA, podes obtenerlas restando a el campo CANTIDAD de la tabla COMPRAS el campo CANTIDAD de la tabla VENTAS. Para lo que habría que cambiar un poco la consulta:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  with Tu_Query do
  begin
    DataSource:= dsVentas; // TDataSource asociado a tabla VENTAS
    Close;
    SQL.Clear;
    SQL.Add('SELECT TC.CANTIDAD - TV.CANTIDAD AS STOCK');
    SQL.Add('FROM COMPRAS TC, VENTAS TV');
    SQL.Add('WHERE TC.CODIGO_BARRAS = TV.CODIGO_BARRAS');
    SQL.Add('AND TV.CODIGO_BARRAS = :CODIGO_BARRAS'); // (*)
    Open;
  end;
  DBEdit1.DataSource:= dsQuery;
  DBEdit1.DataField := 'STOCK';
end;
De ambos modos mientras te vayas desplazando por los diferentes artículos mostrará la existencia en el TDBEdit.

(*) Es indispensable que lo que sigue a los ':' (CODIGO_BARRAS) sea exáctamente el nombre del campo de la tabla VENTAS. Y que la propiedad DataSource del query apunte al TDataSource asociado a la tabla VENTAS para que se vaya mostrando la existencia al desplazarse por la misma.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita