Loop while not eof não está funcionando.

05/06/2023

0

Boa tarde, tenho uma tabela que armazena vendas de mercadorias, criei um campo nessa tabela chamado itemCod (numérico) para armazenar os
itens referentes a cada venda ex: produto A item 1, produto B item 2 assim por diante, queria criar um botão no formulário que ao clicar
preenchesse automaticamente esse campo das vendas anteriores. Estou tentando criar um laço (loop) com o while not eof, mas não estou conseguindo. Obrigado.
Numero de item para cada produto no formulário de vendas
Adão Silva

Adão Silva

Responder

Posts

05/06/2023

Paulo

Boa tarde, tenho uma tabela que armazena vendas de mercadorias, criei um campo nessa tabela chamado itemCod (numérico) para armazenar os
itens referentes a cada venda ex: produto A item 1, produto B item 2 assim por diante, queria criar um botão no formulário que ao clicar
preenchesse automaticamente esse campo das vendas anteriores. Estou tentando criar um laço (loop) com o while not eof, mas não estou conseguindo. Obrigado.
Numero de item para cada produto no formulário de vendas


Posta o código
Responder

05/06/2023

Adão Silva

Obrigado,segue,,,,, código...
var
x, lista: integer;
begin
lista:=form1.ADOTable2.FieldByName('codigoVendas').Value;
x:=0;
form1.ADOTable2.Edit;
while Not form1.ADOTable2.Eof do
begin
x:=x+1;
if lista <> 0 then

form1.ADOTable2codItem.value:= x;
form1.ADOTable2.Next;
form1.ADOTable2.Edit;
Responder

06/06/2023

Arthur Heinrich

Talvez a chamada do método Edit, de dentro do loop esteja prejudicando a execução.

Você pode tentar uma pequena mudança:

var
  x, lista: integer;
begin
  x:=0;
  while Not form1.ADOTable2.Eof do
  begin
    lista:=form1.ADOTable2.FieldByName('codigoVendas').Value;
    if lista <> 0 then
      begin
        x:=x+1;
        form1.ADOTable2.Edit;
        form1.ADOTable2codItem.value:= x;
      end;
    form1.ADOTable2.Next;
  end;
end;


Porém, a lógica da numeração talvez precise ser revista.
Responder

06/06/2023

Adão Silva

Boa tarde, era exatamente isso, agora deu certo muito obrigado......
Responder

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

Aceitar