Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Asignar valor de Locate (https://www.clubdelphi.com/foros/showthread.php?t=92626)

The Cid James 12-12-2017 22:06:17

Asignar valor de Locate
 
Buenas gente necesito asignar el valor del locate del siguiente codigo a una variable de tipo integer, el problema es que siempre me devuelve 0 el resultado
Código Delphi [-]
procedure Tfstock.Button1Click(Sender: TObject);
begin
  if fmodulo.tProductos.Locate('id_producto', fmodulo.qProductos['id_producto'], [])
    then
      fstockproductos := Tfstockproductos.Create(self);
      fstockproductos.ShowModal;
      fstockproductos.Bsprestar.Visible := false;
      idproducto := fmodulo.qProductos.Fields.FieldByName('id_producto').AsInteger;
end;

Este valor seria el parametro para editar las cantidades de esta forma

Código Delphi [-]
procedure Tfstockproductos.BspaumentarClick(Sender: TObject);
begin
fmodulo.qProductos.Active := true;
fmodulo.tProductos.Active := true;
if fmodulo.tProductos.Locate('id_producto', fstock.idproducto, [])
  then
    begin
      fmodulo.tProductos.Edit;
      fmodulo.tProductos.Fields.FieldByName('Stock').AsInteger := fmodulo.qProductos.Fields.FieldByName('Stock').AsInteger + StrToInt(Estockproductos.text);
      fmodulo.tProductos.Post;
      fmodulo.qProductos.Refresh;
      close;
      fmodulo.tProductos.Active := false;
      fstock.idproducto := 0;
end
else
 ShowMessage('no encontrado '+ '- ' +IntToStr(fstock.idproducto));
end;

The Cid James 14-12-2017 03:34:15

Al final lo resolví con dos radio button de la siguiente manera por no encontrar el erro :confused:

Código Delphi [-]
procedure Tfstock.Button1Click(Sender: TObject);
begin
  fmodulo.tProductos.Active := true;
  if rbsumar.Checked = true
    then
      begin
      if fmodulo.tProductos.Locate('id_producto', fmodulo.qProductos['id_producto'], [])
        then
          begin
            fmodulo.qProductos.Active := true;
            fmodulo.tProductos.Edit;
            idproducto := 0;
            idproducto := StrToInt(Esumrest.text);
            fmodulo.tProductos.Fields.FieldByName('Stock').AsInteger := fmodulo.qProductos.Fields.FieldByName('Stock').AsInteger + idproducto;
            fmodulo.tProductos.Post;
            fmodulo.qProductos.Refresh;
          end;
      end
  else
    if RBrestar.Checked = true
      then
        if fmodulo.tProductos.Locate('id_producto', fmodulo.qProductos['id_producto'], [])
        then
          begin
            fmodulo.qProductos.Active := true;
            fmodulo.tProductos.Edit;
            idproducto := 0;
            idproducto := StrToInt(Esumrest.text);
            fmodulo.tProductos.Fields.FieldByName('Stock').AsInteger := fmodulo.qProductos.Fields.FieldByName('Stock').AsInteger - idproducto;
            fmodulo.tProductos.Post;
            fmodulo.qProductos.Refresh;
          end;

end;


La franja horaria es GMT +2. Ahora son las 12:26:08.

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