Somar uma coluna no DBGrid
Olá pessoal tudo bem?
Gostaria de saber se tem como somar uma coluna no dbGrid, tipo assim, pegar a coluna Valor Total, somá-la toda e aparecer num label ou dbEdit.
Agradeço antecipadamente.
Abraços :)
Gostaria de saber se tem como somar uma coluna no dbGrid, tipo assim, pegar a coluna Valor Total, somá-la toda e aparecer num label ou dbEdit.
Agradeço antecipadamente.
Abraços :)
Edibertoalves
Curtidas 0
Respostas
Nandolh
01/09/2005
Se vc estiver utilizando dbExpress - ClientDataSet, crie um campo agregado...
GOSTEI 0
Demetrius
01/09/2005
Utilize esse código:
Eu uso e sempre funciona.
:D
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;
Eu uso e sempre funciona.
:D
GOSTEI 0
Nandolh
01/09/2005
Desculpe discordar de vc Demetrius, mas esta forma deixa a aplicação muito lenta. Imagine se vc tiver uns 1000 registros na tabela, levaria uma eternidade. O ideal são campos agregados.
GOSTEI 0
Demetrius
01/09/2005
O programa é para somar mensalão????? :D
GOSTEI 0
Edibertoalves
01/09/2005
olá amigos,
tem algum exemplo usando campos agregados e aonde devo implementar???
Estou usando DataSet + DataSetProvider + ClientDataSet
Componentes da FIBPlus.
Obrigado :wink:
tem algum exemplo usando campos agregados e aonde devo implementar???
Estou usando DataSet + DataSetProvider + ClientDataSet
Componentes da FIBPlus.
Obrigado :wink:
GOSTEI 0
Nandolh
01/09/2005
Hehehehehe gostei da colocação Demetrius...
GOSTEI 0
Nandolh
01/09/2005
Olhe em http://www.comunidade-firebird.org/cflp/downloads/CFLP_T002.PDF
O artigo acima é para os Interbase Express. Mas ele ensina como adicionar e utilizar Agregados em um ClientDataSet.
Procure pela parte que fala de ´Campo agregados´
Boa sorte
O artigo acima é para os Interbase Express. Mas ele ensina como adicionar e utilizar Agregados em um ClientDataSet.
Procure pela parte que fala de ´Campo agregados´
Boa sorte
GOSTEI 0
Edibertoalves
01/09/2005
Demetrius,
Aonde ou qual evento eu irei colocar esse código?????
No clientdataset???
Obrigado :)
Aonde ou qual evento eu irei colocar esse código?????
No clientdataset???
Obrigado :)
GOSTEI 0
Demetrius
01/09/2005
Faça o seguinte:
Abaixo da clausula private crie uma procedure
private
procedure Soma_Coluna;
Depois precione ctrl+c;
no procedure criado coloque o código adaptado as suas necessidade.
crie um botão e coloque no evento onclick
Soma_coluna.
depois é só executar
Abaixo da clausula private crie uma procedure
private
procedure Soma_Coluna;
Depois precione ctrl+c;
no procedure criado coloque o código adaptado as suas necessidade.
crie um botão e coloque no evento onclick
Soma_coluna.
depois é só executar
GOSTEI 0
Edibertoalves
01/09/2005
Demetrius,
Gostaria de que fosse automático, ou seja, o usuário vai entrando com os valores e o dbEdit vai recebendo a somatória dos valores.
Em qual evento do dbEdit eu colocaria essa Soma_Coluna ???
Obrigado :wink:
Gostaria de que fosse automático, ou seja, o usuário vai entrando com os valores e o dbEdit vai recebendo a somatória dos valores.
Em qual evento do dbEdit eu colocaria essa Soma_Coluna ???
Obrigado :wink:
GOSTEI 0
Demetrius
01/09/2005
Faça o seguinte.
Copie o codigo e coloque no evento onexit do edit que vc entra com o valor.
Ex:
vc esta cadastrando uma conta, coloca o valor a ser pago, quando vc der enter e mudar de componente o calculo será realizado automaticamente.
se não conseguir mande-me seu e-mail que amanhã envio para vc um exemplo
Copie o codigo e coloque no evento onexit do edit que vc entra com o valor.
Ex:
vc esta cadastrando uma conta, coloca o valor a ser pago, quando vc der enter e mudar de componente o calculo será realizado automaticamente.
se não conseguir mande-me seu e-mail que amanhã envio para vc um exemplo
GOSTEI 0
Edibertoalves
01/09/2005
Olá Demétrius, o exemplo não funcionou!!! :cry:
Gostaria sim, pode me enviar um exemplo???
meu email é ediberto_alves@yahoo.com.br
Obrigado :wink:
Gostaria sim, pode me enviar um exemplo???
meu email é ediberto_alves@yahoo.com.br
Obrigado :wink:
GOSTEI 0
Nandolh
01/09/2005
Vai ficar lento!!!
Mas se ainda insiste... Boa sorte :)
Mas se ainda insiste... Boa sorte :)
GOSTEI 0
Martins
01/09/2005
Se vc tivesse utilizando campo agregado, toda vez q vc inserisse algo em seu dataset, o valor automaticamente seria adicionado a ele, sempre somando.
vale dar uma estudada na idéia.
Martins
vale dar uma estudada na idéia.
Martins
GOSTEI 0
Edibertoalves
01/09/2005
Olá Nando e Martins, tudo bem?
Tenho duas tabelas: ProdutosPedidos e Pedidos, o usuário vai entrar com a quantidade * valor unitário, e na coluna seguinte no ´Valor Total´ seria o resultado disso. Esses 3 campos são de origem da tabela ProdutosPedidos.
Então o que gostaria é o seguinte: Pegar toda a somatória da coluna ´Valor Total´ da tabela ProdutosPedidos e jogar para a tabela Pedidos onde nessa tabela tem um campo chamado ´ValortotaldoPedido´.
Tem alguma idéia onde eu possa fazer isso, pode ser usando os campos agregados???? Se sim, como poderia fazer.Dei uma estudada sobre a apostila que o Martins passou mas estou errando na implementação
O que faço???
Obrigado.
Tenho duas tabelas: ProdutosPedidos e Pedidos, o usuário vai entrar com a quantidade * valor unitário, e na coluna seguinte no ´Valor Total´ seria o resultado disso. Esses 3 campos são de origem da tabela ProdutosPedidos.
Então o que gostaria é o seguinte: Pegar toda a somatória da coluna ´Valor Total´ da tabela ProdutosPedidos e jogar para a tabela Pedidos onde nessa tabela tem um campo chamado ´ValortotaldoPedido´.
Tem alguma idéia onde eu possa fazer isso, pode ser usando os campos agregados???? Se sim, como poderia fazer.Dei uma estudada sobre a apostila que o Martins passou mas estou errando na implementação
O que faço???
Obrigado.
GOSTEI 0
Martins
01/09/2005
Olá Nando e Martins, tudo bem?
Tenho duas tabelas: ProdutosPedidos e Pedidos, o usuário vai entrar com a quantidade * valor unitário, e na coluna seguinte no ´Valor Total´ seria o resultado disso. Esses 3 campos são de origem da tabela ProdutosPedidos.
Então o que gostaria é o seguinte: Pegar toda a somatória da coluna ´Valor Total´ da tabela ProdutosPedidos e jogar para a tabela Pedidos onde nessa tabela tem um campo chamado ´ValortotaldoPedido´.
Tem alguma idéia onde eu possa fazer isso, pode ser usando os campos agregados???? Se sim, como poderia fazer.Dei uma estudada sobre a apostila que o Martins passou mas estou errando na implementação
O que faço???
Obrigado.
vc gostaria de passar só o total geral ou total de cada pedido?
GOSTEI 0
Martins
01/09/2005
Só complementando, se o seu problema for passar o valor total geral tem como, se for do jeito q está na outra table tb, e quanto aos campos agregados e calculados, melhor do q eu postar aqui um exemplo, é postar o link de um colunista do clube delphi, tá aqui em baixo o link.
[url]http://www.clubedelphi.net/portal/artigos/lichot/11.asp[/url]
Espero q te ajude.
Boa sorte!!
[url]http://www.clubedelphi.net/portal/artigos/lichot/11.asp[/url]
Espero q te ajude.
Boa sorte!!
GOSTEI 0
Edibertoalves
01/09/2005
Olá Martins!
Quero pegar o valor total geral de todos os itens, da coluna ´ValorTotal´ da tabela ProdutosPedidos.
Com esse total geral, esse resultado, vai ser jogado num campo ValorTotaldoPedido, da tabela Pedidos e, sendo exibido através de um label ou dbEdit.
O que pode ser feito???
Obrigado :wink:
Quero pegar o valor total geral de todos os itens, da coluna ´ValorTotal´ da tabela ProdutosPedidos.
Com esse total geral, esse resultado, vai ser jogado num campo ValorTotaldoPedido, da tabela Pedidos e, sendo exibido através de um label ou dbEdit.
O que pode ser feito???
Obrigado :wink:
GOSTEI 0