VALOR TOTAL SOMADO NO DBGRID E PASSADO PRO LABEL FORA
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.
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
Curtidas 0
Respostas
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
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
14/12/2010
o seu campo virtual soma certinho os valores?
GOSTEI 0
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
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
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
14/12/2010
certo intendi entao, como estra sendo feita a inserção dos dados em seu DBgrid?
GOSTEI 0
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:
No aguardo!
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
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
14/12/2010
no evento DBGrid1KeyPress coloque o mesmo cógigo do oncellclick.
GOSTEI 0
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
14/12/2010
pelo apply update da sua query.
GOSTEI 0
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
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
14/12/2010
isso mesmo. ou poderia colocar no evento a açao de sua query.
GOSTEI 0
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
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
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:
Já agradeço adiantado o HELP.
Abraços.
PROJETO:
http://www.4shared.com/file/tRItdheQ/AULA06.html
Já agradeço adiantado o HELP.
Abraços.
GOSTEI 0
Rafael Ribeiro
14/12/2010
BOA TARDE!
VOCÊ VAI FAZER O SEGUINTE: NO ENVENTO "ONDATACHANGE" DO SEU DATASOURCE2 VOCÊ VAI COLOCAR:
Espero ter colaborado!
Rafael
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
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
14/12/2010
Tente mudar de campo calculado para internalcalc.
Att.
Rafael
GOSTEI 0
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
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
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.
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
14/12/2010
Amigo, boa tarde!
Vamos lá... passo a passo.
Vamos lá... passo a passo.
GOSTEI 0
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
Abçs
GOSTEI 0