Jump to content
Fórum Script Brasil
  • 0

Apar Informações De Um Grid


Kindelis

Question

é 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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...