PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Lista Objetos #558728

29/06/2016

0

Tenho uma classe com o objeto TProdutoPronto. Gostaria de ter uma lista com esse objeto só que como eu fiz não está dando certo.

Código:

function TListaProduto.BuscaEBalanca: TObjectList<TProdutoPronto>;
var
  cdsProdutos: TADODataSet;
  iProduto: TProdutoPronto;
  FList: TObjectList<TProdutoPronto>;
begin
  // Carregar lista
  cdsProdutos := TADODataSet.Create(nil);
  FList := TObjectList<TProdutoPronto>.Create;
  try
    try
      cdsProdutos.Connection := DM.ADO;
      cdsProdutos.CommandText := 'SELECT CodBarras, ProdutoDescricao, Preco, IdGrupo'+
                                 ' FROM tblProdutos'+
                                 ' WHERE produto_balanca = True'+
                                 ' ORDER BY IdProduto;';
      cdsProdutos.Open;
      cdsProdutos.First;
      while not cdsProdutos.Eof do
      begin
        iProduto := TProdutoPronto.Create;
        iProduto.CodBarras := cdsProdutos.FieldByName('CodBarras').AsString;
        iProduto.Descricao := cdsProdutos.FieldByName('ProdutoDescricao').AsString;
        iProduto.PrecoVenda := cdsProdutos.FieldByName('Preco').AsCurrency;
        iProduto.GrupoID := cdsProdutos.FieldByName('IdGrupo').AsInteger;
        iProduto.GrupoNome := FGrupo.BuscaPorId(iProduto.GrupoID).Descricao;
        FList.Add(iProduto);
        iProduto.Free;
        cdsProdutos.Next;
      end;
    finally
      result := FList;
      cdsProdutos.Close;
      FreeAndNil(cdsProdutos);
    end;
  except
    on E: Exception do
    begin
      FsRetorno := PChar('Erro ao carregar produtos!'+#13+#10
                        +'ERRO: '+E.Message);
      FiRetorno := 100;
    end;
  end;
end;


Dessa forma a lista retorna o mesmo item (Ex.: Produto 01, Produto 01, Produto 01...).
Paulo Andrade

Paulo Andrade

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar