somar dados do grid a medida que for sendo inserido

26/02/2013

0

Boa tarde,

Estou precisando de uma ajuda, a questão é a seguinte:

Tenho um DBGrid em minha aplicação onde o cliente ira cadastrar os serviços que estao sendo executado, pois minha aplicação é um gerenciador de OS para oficina de carro.
Clica no Botao inserir e adiciona um registro, depois salva e por ai vai.

O que estou precisando que a medida que for inserindo um registro e va adicionando a soma em DBEdit ou DBText, pois essa soma será armazena numa tabela Pai.

Exemplo:

Adicione primeiro registro de R$ 200,00 automaticamente o edit Valor total exibira o Total cadastrado.
Então ao incluir um novo registro de R$ 100,00 ao salva
Flavio Silva

Flavio Silva

Responder

Posts

26/02/2013

Joel Rodrigues

Você pode fazer um loop para varrer o dataset e somar estes valores. Faça isso no evento onAfterPost, que ocorre sempre que é feita uma inserção ou atualização na tabela.
Responder

26/02/2013

Flavio Silva

after post de onde?

tabela, grid, dataset
Responder

26/02/2013

Joel Rodrigues

O afterpost é um evento do dataset.
Responder

27/02/2013

Thiago Delalibera

Flávio eu tenho um sistema comercial com controle de OS, para somar eu faço o seguinte, criei a procedure:

procedure TfrmCadOrdemServico.SomaProdutos;
begin
DM.sqlSomaOrdemServico.Close;
DM.sqlSomaOrdemServico.SQL.Text := 'SELECT SUM(PRECOTOTAL) AS RESULTADO FROM PRODUTOSOS WHERE CODIGOOS=' + '''' + IntToStr(CodigoOS) + '''';
DM.sqlSomaOrdemServico.Open;

eSubTotal.Text:= FormatFloat('##,##0.00', DM.sqlSomaOrdemServico.FieldByName('RESULTADO').Value);
end;


O segredo é o seguinte o meu Query "sqlSomaOrdemServico" está conectado na mesma Transaction do Query que esta inserindo os valores no banco e mostrando no dbgrid, ou seja, sempre que você inserir e chamar sua atualização da dbgrid, chame também o "SomaProdutos", basta adaptar as suas necessidades, espero que ajude!
Responder

27/02/2013

Francisco Macário

Olá.

Se você estiver usando ClientDataset use campo calculado.

É uma forma rápida e fácil.

At.
Responder

27/02/2013

Joni Nunes

Em todos os exemplos citados, é melhor usar campo calculado, para não ficar abrindo e fechando dataset, o que nesse caso, faz processamento no servidor (buscar dados novamente) e transportar pela rede.

Processando por campo calculado, fica tudo mais rápido.

abraço
Responder

30/06/2013

José

Tópico concluído.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar