VALOR TOTAL SOMADO NO DBGRID E PASSADO PRO LABEL FORA

Delphi

14/12/2010

Olá pessoal, bom dia, Bom, talvez essa pergunta possa ser simples, mas a questão é que estou tendo probleminha quando se trata fazer as coisas pelo data set provider etc ...
estou com um form de saida venda, onde meus campos do dbgrid somam, tenho os campos agrregate etc ... o normal de se fazer, o lance que eu coloquei lá no datasetprovider para ele atualizar quando se clica em gravar,
como faço pra quando eu ir digitando ele ir somando automático em um label fora, como nessas telas de frente de loja?

Abraço a todos.
Alex Bahiano

Alex Bahiano

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

14/12/2010

Você disse que tem os campos de seu DBgrid somando os valores e Você quer mostrar estes valores seria isso?
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Isso, tenho um campo virtual que soma automaticamente dentro do dbgrid. quero colocar um campo fora com a mesma soma de todos os campos, o que esta acontecendo é que quando eu direciono um dbtext por exemplo pro campo virtual do dbgrid, ele só me traz a primeira celula do dbgrid, não soma todas, entendeu, quero que some todas em tempo de execução coloquei um item ele some e mostre fora do dbgrid o total, dos itens que estão no registro.
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

o seu campo virtual soma certinho os valores?
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom, ele soma tudo certinho as colunas, mas só me mostra o valor total quando clico em gravar, é isso que quero fazer diferente, que ele me mostre tbm o valor total em um campo fora do dbgrid,  antes mesmo de gravar no banco. coloquei um produto ele vai somando automatico. enetedeu?
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

Bom, ele soma tudo certinho as colunas, mas só me mostra o valor total quando clico em gravar, é isso que quero fazer diferente, que ele me mostre tbm o valor total em um campo fora do dbgrid,  antes mesmo de gravar no banco. coloquei um produto ele vai somando automatico. enetedeu?


Sim intendi.

Coloque assim:


labelX.caption:=seucampovirtual.text;


GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom! eu fiz isso já, mas só me retorna a primeira linha do dbgrid, no caso 3 registro dentro do dbgrid ele não me retorna a som ex:   linha - 400 linha- 200 linha - 100                    quando clica em gravar mostra  700 certinho   o label fora me mostra 400 :( a primeira linha, e só me mostra depois que clico em gravar, quer fazer que mostre enquanto estiver colocando registro dentro do dbgrid como nessas telas de frenre de loja, adiciona um produto soma, adiciona outro soma etc....
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

certo intendi entao, como estra sendo feita a inserção dos dados em seu DBgrid?
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom, tenho 2 tabelas 1 o corpo e a outra a de itens da venda, o dbgrid recebe a de itens onde tenho
campos calculados qunt * preço no onvalidate desses campos no campo agregate tenho o Total com SUM(Totalitens) já fiz dessa forma e também coloque SUM(QUANTIDADE * PRECO) NO CAMPO TOTAL AGRREGADO, bom, com isso consegui fazer ele calcular mas só muda depois que passo pra outra coluna, como faço pra já mostrar calculado quando clicar no enter dentro do dbgrid, abaixo deixo um exemplo feito em flash com essa dúvida, assim fica mais fácil, se não for de compreenção, coloco o código todo ok!

Mini video em flash da dúvida:
http://www.4shared.com/file/l67blHqm/duvidadev.html


No aguardo!
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom além do video em flash mostrando o que esta acontecendo, abaixo o meu código, só preciso que ao, colocar a quantidade no dbgrid já mostre calculado no label fora do dbgrid, abaixo o código:     NO ONCALCFIELDS       QRY ATUALIZAR       Bom é isso, é dá uma olhada no videozinho e v esse código, pra v se dá pra me ajudar, só preciso que ele me dê o total dos itens na mesmo momento que são incluidos no dbgrid, como em uma tela de PDV. no aguardo. no aguardo.
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

no evento DBGrid1KeyPress coloque o mesmo cógigo do oncellclick.
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

o que estou achando estranho é isso, eu não coloquei código nenhum nos eventos do dbgrid, então como ele calcula ao mover de uma linha para outra? 
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

pelo apply update da sua query.
GOSTEI 0
Paulo Andrade

Paulo Andrade

14/12/2010

o que estou achando estranho é isso, eu não coloquei código nenhum nos eventos do dbgrid, então como ele calcula ao mover de uma linha para outra? 
Pois quando vc altera de uma linha para outra, o banco salva automaticamente os dados e executa o CalcField (Atualiza as informações).   SE eu entendí direito, vc quer fazer a soma do total do pedido, ou seja, somar todas as linhas.   Ae vc deve criar uma tblTMP em tempo de execução, com os mesmos dados q consta na tabela de pedido, daí faz hum loop e vai somando o valor e guardando numa variável depois, no resultado do loop, vc manda o resultado pro label.     lembrando q o ideal para Atualizar campos de cáculos, deve usar o campo Calc da tabela que deseja.
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Não estou conseguindo entender isso, então eu coloco o mesmo código da minha qry no dbgrid? é isso?
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

14/12/2010

isso mesmo. ou poderia colocar no evento a açao de sua query.
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

poxa! nada ainda, vou colocar o pequeno projeto aqui, pra v se vcs me mostram aonde estou errando, pode ser?
GOSTEI 0
Paulo Andrade

Paulo Andrade

14/12/2010

poxa! nada ainda, vou colocar o pequeno projeto aqui, pra v se vcs me mostram aonde estou errando, pode ser?
Posta ae amigão...
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom, taí o meu pequeno projeto de estudo, preciso que o dbedit que esta fora do dbgrid do form Venda2 me mostre o total dos pedidos na medida que for inserindo, ou editando, não estou conseguindo enxergar onde estou falhando pra isso acontecer.

PROJETO:
http://www.4shared.com/file/tRItdheQ/AULA06.html


Já agradeço adiantado o HELP.

Abraços.


GOSTEI 0
Rafael Ribeiro

Rafael Ribeiro

14/12/2010

BOA TARDE!

          VOCÊ VAI FAZER O SEGUINTE: NO ENVENTO "ONDATACHANGE" DO SEU DATASOURCE2 VOCÊ VAI COLOCAR:

DBEdit6.Text := floattostr(DMPEDIDO2.cdsITEM.FieldByName('Total').AsFloat);


Espero ter colaborado!

Rafael
GOSTEI 0
Carlos Bernardo

Carlos Bernardo

14/12/2010

Boa noite no campo aggregate TOTAL a Expression esta somando um campo calculado...   Tenta alterar para SUM(Quantidade * PrecoUnit) o resto parece estar correto...    
GOSTEI 0
Rafael Ribeiro

Rafael Ribeiro

14/12/2010

Tente mudar de campo calculado para internalcalc.   Att.   Rafael
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Rafael coloquei isso DBEdit6.Text := floattostr(DMPEDIDO2.cdsITEM.FieldByName('Total').AsFloat)   mas me traz um erro, pois estou abrindo o form como (NULL) Variant   Carlos, se eu mudo assim,   SUM(Quantidade * PrecoUnit)   Só soma, a primeira linha do dbgrig no caso do campo TOTALITEN,   vou tentar mudar para internalcal pra v, se modificou no projeto Rafa? deu certo?
GOSTEI 0
Alex Bahiano

Alex Bahiano

14/12/2010

Bom pessoal uma saida que tive foi colocar o evento do botão gravar, em um campo QUANTIDADE E PREÇO assim ao colocar uma quantidade ele já mostra, só que nesse caso vai gravando no banco, estava tentando fazer na memoria para assim depois gravar quando clicasse em finalizar.
GOSTEI 0
Aloisio Santos

Aloisio Santos

14/12/2010

Bom dia Alex,

Bom, eu costumo usar uma Query pra fazer a soma dos campos que desejo, com a seguinte instrução de SELECT:

Select SUM(ValorCompra*Qtde) from NotaFiscal

E a partir daí, no formulário onde são lançados os dados, eu coloquei no evento OnExit, do campo Valor Unitário (partindo do principio de que a Qtde já foi informada) um código que salva o registro corrente e em seguida, fecha e abre logo em seguida a referida Query.


NomeDaQuery.Active := False;
NomeDaQuery.Active := True;

Pra mim dá certo, o resultado é imediato.
Espero ter ajudado.
GOSTEI 0
Rafael Ribeiro

Rafael Ribeiro

14/12/2010

Amigo, boa tarde!

Vamos lá... passo a passo.
GOSTEI 0
Rafael Ribeiro

Rafael Ribeiro

14/12/2010

Amigo... estou tentando colocar o codigo aqui, mas o site não aceitando. Coloquei em txt e fiz o upload no 4shared. Bixe lá e veja se te ajuda: http://www.4shared.com/document/iDt70BrX/devmedia_duvida.html .

Abçs
GOSTEI 0
POSTAR