Somar Coluna de Um DBgrid
Tenho Um banco de dados e na tela de cadastro tenho 2 tabelas: Clientes e arrecadação, 1 para muitos respectivamente, cada clientes tem uma arrecadação mensal no dbgrid, gostaria criar campo que some esta arrecadação do dbgrid(coluna).
Banco de Dados: Access
Componentes ADoTable.
Grato,
Adriano.
Banco de Dados: Access
Componentes ADoTable.
Grato,
Adriano.
Xadriano
Curtidas 0
Respostas
Maurício Santos
01/09/2004
Olá!!!
Esta rotina eu usei em BD Paradox. Espero que te ajude.
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;
Sucesso!!!
Maurício
Esta rotina eu usei em BD Paradox. Espero que te ajude.
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;
Sucesso!!!
Maurício
GOSTEI 0
Xadriano
01/09/2004
voce poderia me dizer em qual componente e qual evento coloco esta rotina; sou iniciante não tenho muita experiencia!! :oops:
Ficarei muito grato.
adriano
Ficarei muito grato.
adriano
GOSTEI 0
Chcoelho
01/09/2004
Olá......tem uma materia no SITE CLUBE DELPHI que lida com campos agregado...é muito bom!! Dê uma olhada.....vale a pena!!
GOSTEI 0
Carlosfim
01/09/2004
A solução postada pelo amigo Maurício funciona, mas se vc tiver muitos registros ela pode demorar um pouco, visto que ela soma registro a registro.
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
Daí vc acessa o resultado através da seguinte linha:
Espero ter ajudado.
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
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:
ADOQuery.FieldByName(´NOME DO CAMPO´).asFloat;
Espero ter ajudado.
GOSTEI 0
Carlosfim
01/09/2004
A solução postada pelo amigo Maurício funciona, mas se vc tiver muitos registros ela pode demorar um pouco, visto que ela soma registro a registro.
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
Daí vc acessa o resultado através da seguinte linha:
Espero ter ajudado.
Se vc precisar somar muitos campos talvez seja o caso de utilizar um componente ADOQuery e somar através de SQL, desta forma:
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:
ADOQuery.FieldByName(´NOME DO CAMPO´).asFloat;
Espero ter ajudado.
GOSTEI 0