somar uma coluna do dbgrid com adoquery

17/02/2013

2

boa tarde, sou iniciante MESMO em delphi e estou tentando desenvolver um livro caixa. Gostaria de somar uma coluna do gbgrid
o nome da coluna é ''ENTRADA'' uso banco de dados ACESS um datamodule com os seguintes componentes adoconection, adoquery,datasurce.

se puder postar um passo a passo, ficarei muito grato.
Responder

Posts

17/02/2013

Joel Rodrigues

E aí, beleza?

Bom, vamos lá. Com o seguinte código você consegue somar os valores de uma coluna e armazenar em uma variável:
total := 0;
query.First;
while not query.EoF do
begin
  total := total + query.FieldByName('COLUNA').AsFloat;
  query.Next;
end;


Aí a variável total terá armazenado o total da coluna 'COLUNA' (mudar o nome para a coluna que você deseja somar).
Ah, a variável total deve ter sido declarada.

Qualquer dúvida, é só falar.
Responder

27/02/2013

Luiz Silva

SOMA DAS CULUNAS DA DBGRID

ok. está somando as colunas do gbgrid, mais só apareçe o valor atualizado quando fecho sistema e entro novamente.

como disse acima, uso um adoquey, datamodule, adoconection, datasurce.
criei um campo na query onde nao existe na minha tabela, os campos sao totalentrada , totalsaida, saldosoma, todos fora criados para receber a soma das colunas entrada, saida e depois subtrair me dando o valor em totaldasoma.

está somando e subtraindo, mais como disse acima, nao atualiza no momento que faço uma operaçao de NOVO, EDITAR, EXCLUIR. tenho que fechar e abrir para atualizar
Responder

27/02/2013

Joel Rodrigues

Isso depende muito de onde você colocou o código para somar a coluna. Experimente colocar no evento onafterpost da query, que ocorre sempre que uma linha é inserida ou atualizada.
Abraço.
Responder

28/02/2013

Luiz Silva

isso depende muito de onde você colocou o código para somar a coluna. experimente colocar no evento onafterpost da query, que ocorre sempre que uma linha é inserida ou atualizada.
abraço.



[Error] uteste.pas(35): ',' or ':' expected but ':=' found


esse é o error que dá....
Responder

28/02/2013

Joel Rodrigues

Em que linha ocorre esse erro?
Responder

28/02/2013

Ricardo Araujo

Conseguiu fazer a soma ?
Responder

28/02/2013

Luiz Silva

Olha a soma da coluna cxentrada está sendo lançado em uma coluna criada apenas na query com o nome de totalentrada, a mesma coisa acontece com a coluna cxsaida lançada na coluna que é apenas criada na query totalentrada, entao criei uma terceira coluna na query para receber a subtraçao da totalentrada - (menos) totalsaida, me dando o saldocaixa. Bom até ai está funcionando 100%, o problema que no momento da inserçao, ediçao e gravar as informaçoes lançadas no grid, os campos ou colunas que criei na Adoquery, nao atualizam, tenho que fechar e abrir a tabela.

esse é o comando;

select sum(cxentrada) as totalentrada, sum(cxSaida) as totalsaida,
sum(cxentrada) - sum(cxsaida) as saldocaixa
from tbl_caixa


coloquei isso no SQL da somaqry.

os valores sao mostrados em um edit.

acho que a estou precisando na verdade de um update na query no momento das operaçoes (no botao) NOVO, EDITAR, GRAVAR, EXCLUIR, CANCELAR.
Responder

28/02/2013

Joel Rodrigues

Amigo, como você está fazendo um select no banco para verificar esses totais, é necessário fechar e abrir a query sempre, pois será feita uma consulta ao banco para obter os novos valores.
Responder

28/02/2013

Luiz Silva

nao tem como fazer um update na tabela? tipo fechar tabela, update e depois abrir tabela após as operações (no botao) NOVO, EDITAR, GRAVAR, EXCLUIR, CANCELAR.

Responder

28/02/2013

Joel Rodrigues

Rapaz, ter tem... é só colocar o código para somar o total no evento OnAfterPost (depois do post) e/ou OnAfterOpen (após abrir a tabela).
Responder

28/02/2013

Luiz Silva

ok. deu certo aqui, como a tabela estava somando e subtrando, apenas nao estava fazendo isso no ato, coloquei nos botoes para fechar a abrir a query.

dm.somaqry.Close;
dm.somaqry.Open;

ficando OK


muito obrigado pela atençao e paciencia!
Responder

01/03/2013

Joel Rodrigues

Show de bola. Quando precisar, estaremos por aqui.
Vou encerrar o tópico.
Abraço.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira