Somar campo de um DBGrid...
Primeiramente bom dia pessoal. Meu problema eh o seguinte
1- tenho um DbGrid q tem uma coluna chamada valor
2- gostaria de somar essa coluna e por em um Edit
obs: n quero somar a Tabela toda n soh quero somar os campos q estao filtrados no DBGrid.
1- tenho um DbGrid q tem uma coluna chamada valor
2- gostaria de somar essa coluna e por em um Edit
obs: n quero somar a Tabela toda n soh quero somar os campos q estao filtrados no DBGrid.
Hviana
Curtidas 0
Respostas
Marcio.theis
21/01/2005
O que vc pode fazer é criar uma procedure que varre toda a sua qry ou table carregando para uma variável o valor, depois vc atribui ao edit;
(uma idéia) exite n outras.
(uma idéia) exite n outras.
GOSTEI 0
Maurício Santos
21/01/2005
Olá!!!
Esta rotina eu usei em BD Paradox.
var
Total: Currency;
begin
Total := 0;
DataModule.NomeTabela.DisableControls;
try
while not DataModule.NomeTabela.EOF do begin
Total := Total + DataModule.NomeTabela.FieldByName(´NomeDoCampoASomar´).AsCurrency;
DataModule.NomeTabela.Next;
end;
finally
DataModule.NomeTabela.EnableControls;
Edit1.Text := FormatFloat(´#,0.00´, Total);
end;
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
Código:
ADOQuery.Active := False;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(SELECT SUM(CAMPO A SER SOMADO) FROM TABELA WHERE [CRITÉRIOS]);
ADOQyery.Open;
Daí vc acessa o resultado através da seguinte linha:
Código:
ADOQuery.FieldByName(´NOME DO CAMPO´).asFloat;
Espero ter ajudado.
Maurício
Esta rotina eu usei em BD Paradox.
var
Total: Currency;
begin
Total := 0;
DataModule.NomeTabela.DisableControls;
try
while not DataModule.NomeTabela.EOF do begin
Total := Total + DataModule.NomeTabela.FieldByName(´NomeDoCampoASomar´).AsCurrency;
DataModule.NomeTabela.Next;
end;
finally
DataModule.NomeTabela.EnableControls;
Edit1.Text := FormatFloat(´#,0.00´, Total);
end;
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
Código:
ADOQuery.Active := False;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(SELECT SUM(CAMPO A SER SOMADO) FROM TABELA WHERE [CRITÉRIOS]);
ADOQyery.Open;
Daí vc acessa o resultado através da seguinte linha:
Código:
ADOQuery.FieldByName(´NOME DO CAMPO´).asFloat;
Espero ter ajudado.
Maurício
GOSTEI 0