somar uma coluna do dbgrid com adoquery
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.
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.
Luiz Silva
Curtidas 0
Respostas
Joel Rodrigues
17/02/2013
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:
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.
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.
GOSTEI 0
Luiz Silva
17/02/2013
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
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
GOSTEI 0
Joel Rodrigues
17/02/2013
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.
Abraço.
GOSTEI 0
Luiz Silva
17/02/2013
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.
abraço.
[Error] uteste.pas(35): ',' or ':' expected but ':=' found
esse é o error que dá....
GOSTEI 0
Joel Rodrigues
17/02/2013
Em que linha ocorre esse erro?
GOSTEI 0
Ricardo Araujo
17/02/2013
Conseguiu fazer a soma ?
GOSTEI 0
Luiz Silva
17/02/2013
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.
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.
GOSTEI 0
Joel Rodrigues
17/02/2013
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.
GOSTEI 0
Luiz Silva
17/02/2013
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.
GOSTEI 0
Joel Rodrigues
17/02/2013
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).
GOSTEI 0
Luiz Silva
17/02/2013
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!
dm.somaqry.Close;
dm.somaqry.Open;
ficando OK
muito obrigado pela atençao e paciencia!
GOSTEI 0
Joel Rodrigues
17/02/2013
Show de bola. Quando precisar, estaremos por aqui.
Vou encerrar o tópico.
Abraço.
Vou encerrar o tópico.
Abraço.
GOSTEI 0