• 0
Sign in to follow this  
Halan Lopes

Preciso De Ajuda! (Resolvido)

Question

17 answers to this question

Recommended Posts

  • 0

É tipo assim:

use um Edit pra receber esse total, ex:

procedure TForm1.Button1Click(Sender: TObject);
var vTotal : Real;
begin
  vTotal := 0;
  Table1.First;
  while not Table1.EOF do begin
    vTotal := vTotal + Table1.FieldByName('Total').Value;
    Table1.Next;
  end;
  Edit1.text := FormatFloat('0,00',vTotal);
end;

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

O Código Acima do " Programador " ele tá certo... Tente ser mais especifico...

olha só você usa o Data Modulo então a sua tabela em vez de Table1 por exemplo vai ter o Nome do DataModulo.TAble1...

Onde Table1 é o nome da Tabela...

Esse código quando se clica no botão ele soma, agora se quer que some automatimente coloque esse código em outo evento, o que você achar masi adquado...

Lembrando que ele mexe com a tabela , não com o seu DBGrid...

Mais Duvidas Tente ser mais claro dar mais detalhes... Ai o pessoal ajuda mais...

Há! veja esse post aqui está logo abaixo... Ele vai lhe ajudar mostra como criar um campo Calculado em sua table e pode mostrar no DBgrid, não grava no banco só para visualizar...

http://scriptbrasil.com.br/forum/index.php?showtopic=53474

Valeu.. Tbaiano wink.gif

Share this post


Link to post
Share on other sites
  • 0

Arredondando como?

como deveria sair? quantas casas decimais? e como ta saindo ae? dry.gif

você precisa ser mais especifico.

no exemplo que passei, é pra sair com duas casas decimais (Ex: 100.00)

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

gostaria que ficasse assim "1,50" mas o que está acontecendo é que

ele está arredondando pra "2", e com aquele exemplo

Edit1.text := FormatFloat('0,00',vTotal);

aparece assim "002"

quando eu coloquei

Edit1.text := FormatFloat(' ',vTotal);

ele retornou o valor certo "1,5" mas sem a casa decimal que era pra ficar assim "1,50"

Share this post


Link to post
Share on other sites
  • 0

Sei computador deve ta configurado com ponto nas casas decimais, substitua a virgula mpelo ponto e faz o teste ae, ok!

Edit1.text := FormatFloat('0.00',vTotal);

Abs. Progr'amador

Share this post


Link to post
Share on other sites
  • 0

deu certo agora eu coloquei no OnKeyDown do DBGrid para que ele atualize cada vez que eu clicar pra baixo, mas apareceu um problema!

só consigo digitar um numero no campo quantidade, porque?

Share this post


Link to post
Share on other sites
  • 0

Como assim, ele dá algum erro? na hora que você digita?

Qual código você ta usando no OnKeyDown?

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

o codigo é esse!

procedure TfrmPedido.DBGrid1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

var vTotal : Real;

begin

vTotal := 0;

DataModule1.DetalhedoPedido.First;

while not DataModule1.DetalhedoPedido.EOF do begin

vTotal := vTotal + DataModule1.DetalhedoPedido.FieldByName('Total').Value;

DataModule1.DetalhedoPedido.Next;

end;

Edit1.text := FormatFloat('0.00',vTotal);

end;

é como se o segundo valor fosse um comando pra descer, dai ele entra apenas o primeiro valor!

Share this post


Link to post
Share on other sites
  • 0

faz assim:

procedure TfrmPedido.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var vTotal : Real;
begin
  if key = vk_return then begin // 'vk_return' representa a tecla enter
     vTotal := 0;
     DataModule1.DetalhedoPedido.First;
     while not DataModule1.DetalhedoPedido.EOF do begin
        vTotal := vTotal + DataModule1.DetalhedoPedido.FieldByName('Total').Value;
        DataModule1.DetalhedoPedido.Next;
     end;
     Edit1.text := FormatFloat('0.00',vTotal);
  end;
end;

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
  • 0

deu o erro

[Error] Pedido.pas(79): Undeclared identifier: 'key'

[Warning] Pedido.pas(79): Comparing signed and unsigned types - widened both operands

Share this post


Link to post
Share on other sites
  • 0

Ata!!! já tava até postando, pra ver onde você tinha colocado isso, porque esse erro era impossivel!!! rolleyes.gif

Resolvido, tópico Fechado.

Abs. Progr'amador.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this