DB Grid
Como posso somar todos os valores de uma coluna do DB Grid?
Coelhopirado
Curtidas 0
Respostas
Rodrigo_lemes
28/10/2003
O conteúdo do seu DBGrid está vindo de uma tabela ou de uma consulta. Assumiremos q esteja vindo de uma tabela.
- Crie uma variável do mesmo tipo do campo que deseja somar;
- zere a variável no início do procedimento;
Tabela.First;
While Not Tabela.Eof do
Begin
variavel:= variavel + TabelaCampo.value;
Tabela.Next;
End;
- Crie uma variável do mesmo tipo do campo que deseja somar;
- zere a variável no início do procedimento;
Tabela.First;
While Not Tabela.Eof do
Begin
variavel:= variavel + TabelaCampo.value;
Tabela.Next;
End;
GOSTEI 0
Rodrigo_lemes
28/10/2003
Obs.: Esta dica só é válida para o programa em tempo de execução. Ela não responde em tempo de projeto. Ok?
GOSTEI 0
Bacalhau
28/10/2003
Oooooooooopa, esta é interessante. Gostaria de saber como é possível saber a soma de uma coluna, no instante em que mudamos um valor, mas sem o recurso ao ´while not table.eof´.
É que uma tabela pode ter 100000 registos o que torna a solução impraticável...
Se alguém souber agradeço
abraço
bacalhau
É que uma tabela pode ter 100000 registos o que torna a solução impraticável...
Se alguém souber agradeço
abraço
bacalhau
GOSTEI 0
Wallacest
28/10/2003
Voce pode utilizar a SQL
tipo
-SELECT Cod_Nota,Data,Cliente, Sum (Valor_Total) AS Total From Entrada
-Where Data Between :inicio and :Final
params[0].AsDateTime := TDataTimeToStr (Text_1.text)
params[1].AsDateTime := TDataTimeToStr (Text_2.text)
Fiz parametrizado para ser ter uma idéia.
Você tb consultar por cliente danto somente o valor por cliente ou agrupando pelo mesmo e tal. acho que pode te ajudar.
OBS: SQL é mais rapido, melhor e ainda. Não tem problema de dar erro no BD depois
tipo
-SELECT Cod_Nota,Data,Cliente, Sum (Valor_Total) AS Total From Entrada
-Where Data Between :inicio and :Final
params[0].AsDateTime := TDataTimeToStr (Text_1.text)
params[1].AsDateTime := TDataTimeToStr (Text_2.text)
Fiz parametrizado para ser ter uma idéia.
Você tb consultar por cliente danto somente o valor por cliente ou agrupando pelo mesmo e tal. acho que pode te ajudar.
OBS: SQL é mais rapido, melhor e ainda. Não tem problema de dar erro no BD depois
GOSTEI 0