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

Apar Informações De Um Grid


Kindelis

Pergunta

é o seguinte eu estou desenvolvendo uma aplicação apra controle de vendas e estoque e nessa aplicação tem a janela Vendas que no caso seria o caixa, ai eu criei uma função que conforme eu vou adicionando ítens a venda eles são descontados diretamente na tabela de estoque, (ex. venda de um 1 pneu o programa busca este pneu na tabela de estoque subtrai da quantidade disponível a quantidade vendida no caso pór exeplo esse pneu tinha 2 no estoque eu vendo um automaticamente a quantidade disponivel cai para 1) e exibe os ítens vendidos em um DBGrid, porém o meu problema é caso o usuario queira cancelar a venda eu queria uma função que devolvesse esses ítens comprados ao estoque, o cancelamento de um por um eu sei fazer porém com todos ao mesmo tempo complicou a minha cabeça, por isso eu preciso de ajuda, seria algo do tipo :

enquanto dbgrid exibe alguma informação

inicio

informação exibida.delete;

estoque.quantidadedisponivel=quantidadedisponivel + quantidadevendida;

fim

fim

se alguém não conseguir entender esse "algoritimo" que eu tentei escrever XD é só postar uma resposta que eu tento explicar melhor.. obrigado pela atenção

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
enquanto dbgrid exibe alguma informação

inicio

informação exibida.delete;

estoque.quantidadedisponivel=quantidadedisponivel + quantidadevendida;

fim

fim

Kindelis, a idéia é esta mesmo. Você apenas deve ter em mente que o que está aparecendo no DBGrid provém do DataSet ligado a ele. Assim, este é o "cara" que você deve utilizar para controlar o loop. Supondo que seja TabItemVendas - Ex.:
...
  TabVendas.First;
  while not TabItemVendas.EOF do
  begin
   // aqui deve ser posicionada a tabela de estoque no item adequado
    TabEstoque.Edit;
    TabEstoqueQTD.Value := TabEstoqueQTD.Value +TabItemVendasQTD.Value;
    TabEstoque.Post;
   // após restituida a quantidade o item da venda pode ser eliminado
    TabItemVendas.Delete;
  end;
...

Observe que o delete eliminará o registro atual e a TabItemVendas será prosicionada no registro que antes seria o próximo registro (por isso não utilizamos o Next), de modo que ao final da exclusão do último item vendido chegaremos ao EOF.

Reforço que os itens vendidos visualizados no dbgrid vem de DBGrid.DataSource.DataSet (no ex. TabItemVendas). Assim, o delete neste dataset resultará no que você pretende.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

então micheus este codigo serve perfeitamente, no delphi 4, no caso eu uso o delphi 7 e quando eu tento fazer esta função ele fala que o query é Read Only ou seja somente leitura e não deixa executar o Qury1.EOF nesa linha ele acusa que o query é somente leitura , já no delphi 4 eu fiz esse mesmo codigo e funcionou, você sabe como eu tiro isso? eu já procurei a propriedade readOnly no object inspector mais não achei nada...

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...