Como somar campos de uma DBGrig ?

Delphi

15/06/2008

olá.

Gostaria de saber como eu faço para somar todos os campos de uma coluna do meu DBGrig sempre que ele for atualizado (insert, delet, update)!?
Ex.:
Coluna 2 tem estes valores em 5 linhas:
R$ 2,00
R$ 15,00
R$ 7,50
R$ 50,00
R$ 1,25

O objetivo disso é eu jogar isso no Caption de uma Label.
que no caso iria ficar: R$ 75,75

Agradeço desde já.

.lg.


.lg.

.lg.

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

15/06/2008

Se estiver usando ClientDataSet crie um campo Agregado que resolve o seu problema, senão post que componentes está usando, banco e componentes de acesso para melhor podemos te ajudar! :wink:


GOSTEI 0
.lg.

.lg.

15/06/2008

Opa,

Aqui está:
Banco de Dados: Paradox 7
Componentes: DBE, Data Access, Data Controls

Observação: Estou usando um DataModule.

PS.: Se bem que o forum podia liberar upload interno de arquivos zipados.


GOSTEI 0
.lg.

.lg.

15/06/2008

paullsoftware, nada!?
ninguem sabe!?


GOSTEI 0
Joaoshi

Joaoshi

15/06/2008

Colega, uma solução com o BDE se não tiver muitos dados é no [b:db1d3c1c51]After Post[/b:db1d3c1c51] e [b:db1d3c1c51]After Delete [/b:db1d3c1c51]do [b:db1d3c1c51]DataSet[/b:db1d3c1c51] você chamar uma função que execute a soma.

Espero ter ajudado.


GOSTEI 0
.lg.

.lg.

15/06/2008

Colega, uma solução com o BDE se não tiver muitos dados é no [b:3a4ac7abe1]After Post[/b:3a4ac7abe1] e [b:3a4ac7abe1]After Delete [/b:3a4ac7abe1]do [b:3a4ac7abe1]DataSet[/b:3a4ac7abe1] você chamar uma função que execute a soma. Espero ter ajudado.

Agradeço.

Vou ver em casa o que eu vou conseguir... e qualquer coisa eu venho a tirar mais duvidas.
So por garantia... A função que você fala é do Banco de Dados ou será do delphi mesmo!?

ps. Não sei se há uma função que some isso no delphi, todavia vc ja me mostrou aonde que ele irá atualizar toda vez que alguma coisa for feita na tabela. Se o delphi não tiver essa função... minha duvida ainda será como produzir uma função que some os campos da coluna.

Todavia, Obrigado pela informação.

.lg.


GOSTEI 0
Edsant

Edsant

15/06/2008

caro amigo, se eu entendi a sua pergunta. vc quer um procedure que some os dados de uma coluna de um dbgrid...bom eu faço assim..

crio um botão calcular...

procedure TfFichas.btnCalcularClick(Sender: TObject);
Var
Saldo: Currency;
begin
Saldo := 0;
with Dbgrid5.DataSource.DataSet do begin
First;
if dm.EDITPAGAMENTO.RecordCount <> 0 then
begin
while not EOF do begin
Saldo := Saldo + DbGrid5.Columns[4].Field.Value; // Caso a Coluna 4 for a de Totais
Next;
dm.EDFICHA.Edit;
dm.EDFICHACUSTOPROJETO.Value := Saldo;
dm.EDFICHA.Post;
end;
end else
dm.EDFICHA.Edit;
dm.EDFICHACUSTOPROJETO.Value := Saldo;
end;

end;

Você pode chamar essa procedure nos eventos....
espero ter ajudado...

falous..

carlos.


GOSTEI 0
.lg.

.lg.

15/06/2008

edsant,

Obrigado. Era exatamente o que eu precisava.
Vlw.


GOSTEI 0
POSTAR