Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dar baixa no estoque


lucioalves

Pergunta

estou aprendendo delphi e fiz um programa de controle de estoque mas quando clico no botão para gravar da a mensagem 'Dataset not in edit or insert mod' estou enviando o codigo que estou usando, por favor me ajude.

procedure TfrmPedidos.SpeedButton1Click(Sender: TObject);

begin

modestoque.tbDetPed.Edit;

modestoque.tbDetPed.First;

while not modestoque.tbDetPed.Eof do

begin

modestoque.tbProduto.Locate('CodPro',modestoque.tbDetPedCodPro.Value,[]);

if modestoque.tbDetPedBaixa.Value<> true then

begin

modestoque.tbProduto.Edit;

modestoque.tbProdutoQuantEst.Value:=modestoque.tbProdutoQuantEst.Value -

modestoque.tbDetPedQuantidade.Value;

modestoque.tbProduto.Post;

modestoque.tbDetPed.Edit;

modestoque.tbDetPedBaixa.Value:=True;

modestoque.tbDetPed.Post;

end;

modestoque.tbDetPed.Post;

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
quando clico no botão para gravar da a mensagem 'Dataset not in edit or insert mod'

Correção do Código

procedure TfrmPedidos.SpeedButton1Click(Sender: TObject);
begin
  modestoque.tbDetPed.First;

  while not modestoque.tbDetPed.Eof do
  begin
     if modestoque.tbProduto.Locate('CodPro',modestoque.tbDetPedCodPro.Value,[]) then
        begin
            if modestoque.tbDetPedBaixa.Value<> true then
               begin

                   modestoque.tbProduto.Edit;
                   modestoque.tbProdutoQuantEst.Value:=modestoque.tbProdutoQuantEst.Value -
                   modestoque.tbDetPedQuantidade.Value;
                   modestoque.tbProduto.Post;

                   modestoque.tbDetPed.Edit;
                   modestoque.tbDetPedBaixa.Value:=True;
                   modestoque.tbDetPed.Post;
               end;
        end
      else
        begin
            showmessage('Registro não encontrado !');
            exit;
        end;
  end;    
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
desde já agradeço ,coloquei o codigo fonte mas o programa esta travando na hora que clico no botão

Observe o código .... voce esta fazendo um while nos registros de modestoque.tbDetPed mas faltou um next para fazer rolar o proximo registro da tabela

procedure TfrmPedidos.SpeedButton1Click(Sender: TObject);
begin
  modestoque.tbDetPed.First;

  while not modestoque.tbDetPed.Eof do
  begin

     modestoque.tbProduto.first; // mandar para o primeiro registro sempre que fizer um locate

     if modestoque.tbProduto.Locate('CodPro',modestoque.tbDetPedCodPro.Value,[]) then
        begin
            if modestoque.tbDetPedBaixa.Value<> true then
               begin

                   modestoque.tbProduto.Edit;
                   modestoque.tbProdutoQuantEst.Value:=modestoque.tbProdutoQuantEst.Value -
                   modestoque.tbDetPedQuantidade.Value;
                   modestoque.tbProduto.Post;

                   modestoque.tbDetPed.Edit;
                   modestoque.tbDetPedBaixa.Value:=True;
                   modestoque.tbDetPed.Post;
               end;

           modestoque.tbDetPed.next; ///  faltou este comando
        
        end
      else
        begin
            showmessage('Registro não encontrado !');
            exit;
        end;
  end;    
end;

OBS: se ainda estiver travando, use o debugger do dephi (usando o break point ) para saber onde está o problema

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...