Jump to content

Postagens Recomendadas

Postado

boa noite equipe casa do desenvolvedor. gente estou recebendo essa mensagem

refresh failed. found 0 records  apos eu finalizar uma venda no pdv. lembrando

que ps produtos da grid nao sao limpos e nao fecha a tela do pdv. pra que eu

possa iniciar uma nova venda. quem poder me ajudar eu agradeco. o codigo

esta abaixo com 2 telas uma do pdv e a outra de finalizacao de vendas

procedure TfrmPdv.ZeraListaPedidos;
begin
      with dm_dados.sql_listar_pedidos do
begin
      Close;
       sql.Clear;
       sql.Add('select * from view_listar_pedidos');
       sql.Add('where ped_codpedido = :codigo');
       ParamByName('codigo').Value := CODIGO_VENDA;
       open();
end;
       dm_dados.sql_listar_pedidos.Close;
end;
end.



procedure TfrmFinalizarVendas.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
      case key of
      VK_F3:
begin
      //Finalizar totalmente a venda
      Criar_Mensagem('Confirmacao', 'Confirmar Operacao', 'Finalizar Venda?', 'question.png', 'CONFIRMACAO');

      if frmMensagens.bResposta = true then
begin
      dm_dados.tbl_pedidos.Active := true;
      dm_dados.tbl_pedidos.Locate('ped_codpedido', CODIGO_VENDA, []);

      dm_dados.tbl_pedidos.Edit;

      dm_dados.tbl_pedidosped_datpedido.Value              := Date;
      dm_dados.tbl_pedidosped_codpedido.Value             := CODIGO_VENDA;
      dm_dados.tbl_pedidoscli_id.Value                                := ID_CLIENTE;
      dm_dados.tbl_pedidosped_cpfcliente.Value              := NumCPF;
      dm_dados.tbl_pedidosuser_id.Value                            := 1; //Colocar o usuario logado no Sistema
      dm_dados.tbl_pedidosped_formaspgto.Value           := CodForma;
      dm_dados.tbl_pedidosped_pedfechado.Value          := 'SIM';
      dm_dados.tbl_pedidosped_pedfaturamento.Value := 'SIM';

      dm_dados.tbl_pedidos.Post;
      frmPdv.FinalizaDesabilita;
      frmFinalizarVendas.Close;        
end;
end;
      VK_F7:
begin
      //Chama a tela Formas de Pagamentos
      frmTelaPagamentos := TfrmTelaPagamentos.Create(Self);
      FiltrarTipoPagamentoPdv;
      frmTelaPagamentos.ShowModal;
      FreeAndNil(frmTelaPagamentos);
end;
end;
end;

 

  • Curtir 1
Postado

 

O erro que você está enfrentando, "refresh failed. found 0 records", geralmente indica que, após finalizar a venda, não foi possível encontrar os registros correspondentes no banco de dados para atualização. Além disso, a grid de produtos não está sendo limpa, o que indica que a tela do PDV não está sendo atualizada corretamente após o processo de finalização.

Aqui estão alguns pontos a serem revisados e ajustados:

1. Atualização e Limpeza da Grid

Após finalizar a venda, você precisa garantir que a grid de produtos no PDV seja limpa corretamente. Para isso, você pode inserir uma rotina para atualizar ou limpar a grid, após o procedimento de finalização.

No seu método ZeraListaPedidos, adicione uma limpeza explícita da grid de produtos. Algo como:

procedure TfrmPdv.ZeraListaPedidos; begin // Limpa a grid de pedidos grdPedidos.Clear; // Isso vai depender do componente que você está usando para exibir a lista with dm_dados.sql_listar_pedidos do begin Close; sql.Clear; sql.Add('select * from view_listar_pedidos where ped_codpedido = :codigo'); ParamByName('codigo').Value := CODIGO_VENDA; Open; end; // Fechar o dataset após abrir não parece necessário. Se for intencional, certifique-se de reabri-lo quando necessário. dm_dados.sql_listar_pedidos.Close; end;

2. Fechar a Tela do PDV e Iniciar uma Nova Venda

No procedimento de finalização (TfrmFinalizarVendas.FormKeyDown), certifique-se de que, após a finalização da venda, o código que reinicia o processo para uma nova venda está sendo chamado. Um exemplo seria adicionar uma chamada para limpar os campos da tela e reabrir o PDV para uma nova venda.

No final de VK_F3, após frmFinalizarVendas.Close;, você pode adicionar algo como:

frmPdv.ZeraListaPedidos; // Limpa a lista de produtos no PDV frmPdv.NovaVenda; // Implementa um método que prepara a tela para uma nova venda

3. Validação de Fechamento do Pedido

No trecho que finaliza a venda, você está usando um Locate para encontrar o registro do pedido. Verifique se o campo CODIGO_VENDA está corretamente populado e sendo passado para o Locate. Se o Locate não encontrar o registro, isso pode causar o erro de "0 records". Você pode adicionar uma verificação antes de editar o pedido:

if dm_dados.tbl_pedidos.Locate('ped_codpedido', CODIGO_VENDA, []) then begin // Código para editar o pedido ... end else begin ShowMessage('Pedido não encontrado! Verifique o código da venda.'); end;

4. Rever a Lógica de Refresh

Certifique-se de que o código que está lidando com o refresh dos dados da venda esteja sendo executado no momento certo. Após a finalização da venda, faça um refresh no dataset, algo como:

dm_dados.sql_listar_pedidos.Refresh;

Essas alterações devem resolver o problema de limpeza da grid e da continuidade para iniciar uma nova venda.

  • Curtir 1
Postado
Em 23/10/2024 at 21:29, Tiago Neves disse:

 

O erro que você está enfrentando, "refresh failed. found 0 records", geralmente indica que, após finalizar a venda, não foi possível encontrar os registros correspondentes no banco de dados para atualização. Além disso, a grid de produtos não está sendo limpa, o que indica que a tela do PDV não está sendo atualizada corretamente após o processo de finalização.

Aqui estão alguns pontos a serem revisados e ajustados:

1. Atualização e Limpeza da Grid

Após finalizar a venda, você precisa garantir que a grid de produtos no PDV seja limpa corretamente. Para isso, você pode inserir uma rotina para atualizar ou limpar a grid, após o procedimento de finalização.

No seu método ZeraListaPedidos, adicione uma limpeza explícita da grid de produtos. Algo como:

procedure TfrmPdv.ZeraListaPedidos; begin // Limpa a grid de pedidos grdPedidos.Clear; // Isso vai depender do componente que você está usando para exibir a lista with dm_dados.sql_listar_pedidos do begin Close; sql.Clear; sql.Add('select * from view_listar_pedidos where ped_codpedido = :codigo'); ParamByName('codigo').Value := CODIGO_VENDA; Open; end; // Fechar o dataset após abrir não parece necessário. Se for intencional, certifique-se de reabri-lo quando necessário. dm_dados.sql_listar_pedidos.Close; end;

2. Fechar a Tela do PDV e Iniciar uma Nova Venda

No procedimento de finalização (TfrmFinalizarVendas.FormKeyDown), certifique-se de que, após a finalização da venda, o código que reinicia o processo para uma nova venda está sendo chamado. Um exemplo seria adicionar uma chamada para limpar os campos da tela e reabrir o PDV para uma nova venda.

No final de VK_F3, após frmFinalizarVendas.Close;, você pode adicionar algo como:

frmPdv.ZeraListaPedidos; // Limpa a lista de produtos no PDV frmPdv.NovaVenda; // Implementa um método que prepara a tela para uma nova venda

3. Validação de Fechamento do Pedido

No trecho que finaliza a venda, você está usando um Locate para encontrar o registro do pedido. Verifique se o campo CODIGO_VENDA está corretamente populado e sendo passado para o Locate. Se o Locate não encontrar o registro, isso pode causar o erro de "0 records". Você pode adicionar uma verificação antes de editar o pedido:

if dm_dados.tbl_pedidos.Locate('ped_codpedido', CODIGO_VENDA, []) then begin // Código para editar o pedido ... end else begin ShowMessage('Pedido não encontrado! Verifique o código da venda.'); end;

4. Rever a Lógica de Refresh

Certifique-se de que o código que está lidando com o refresh dos dados da venda esteja sendo executado no momento certo. Após a finalização da venda, faça um refresh no dataset, algo como:

dm_dados.sql_listar_pedidos.Refresh;

Essas alterações devem resolver o problema de limpeza da grid e da continuidade para iniciar uma nova venda.

boa tarde @Tiago Neves, te agradeco por ter tenatado me ajudar. lmbrando que eu nao tenho muito entendimento ainda em programacao. tentei mas nao deu certo. mas o que é mais estranho é que quando eu desabukuto o post de gravacao da tabela pedidos qye corresponde a de vendas do pdv. lanco o produto no pdv finalizo a venda e ele limpa os produtos da grid. so que quando eu inicio uma nova venda aparece a mesma mensagem  refresh failed. found 0 records.

  • Curtir 1
  • Casa do Desenvolvedor mudou o título para Como resolver erro "refresh failed. found 0 records" ao finalizar uma venda no PDV?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...