Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Regex

[Resolvido] Somar valores de um DBGrid

Recommended Posts

Olá amigos!

 

Estou iniciando a entender o Delphi. Visto que venho de outras linguagens, como o PHP e o Javascript, a linguagem do Delphi parece-me diferente do que estou acostumado...

 

Bem, fiz a conexão com um banco de dados e tenho um DBGrid com alguns valores sendo exibidos. Estes estão sendo repassados a DBTexts.

Gostaria de clicar em um botão e fosse mostrada a soma destes valores.

 

Consegui fazer isto com campos comuns, mas não com DBTexts. Não sei se estou dando uma referência errada ou o problema é outro...

 

Vejam:

 

valor:=StrToFloat(DBText1.datafield)+StrToFloat(DBText2.datafield);
 final.caption:=FloatToStr(valor);

Isto retorna um erro de ponto flutuante.

 

Alguém poderia me dar uma luz?

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Regex, não sei se vai te ajudar, mas no seu caso dá para fazer assim

var
valor : Double;//eu utilizo a variável em Double
...

valor:=StrToFloat(DBText1.Caption) + StrToFloat(DBText2.Caption);
Label1.Caption:=FloatToStrF(valor,ffFixed,7,2);{o fffixed é para deixar o valor com duas casas decimais e até 7 antes da vírgula}
//Neste caso, eu estou jogado o resultado para um label
--------------------------------------------------------------------------------------------

 

Mas dá para fazer a soma já na consulta, eu utilizo o Zeos na conexão com o banco, então ficaria assim, numa tabela com três campos

Cod_cliente - Nome - Valor

var valor: Double;
...
ZQuery1.Active:=False;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add('Select Cod_cliente, Nome,Valor from clientes');
ZQuery1.Active:=True;
ZQuery1.First;
	while not(ZQuery1.Eof)do
	begin
	  valor:=valor+ZQuery1.fieldByname('Valor').AsFloat;
	  ZQuery1.Next;
	end;
Label1.Caption:=FloatToStrF(valor,ffFixed,7,2);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João! Muito grato pela ajuda! [resolvido].

 

Já que você tocou no assunto da query, pergunta simples: onde insiro a query do BD?

 

Minha conexão está baseada em um DataModule, com um TDataBase e vários TTable's e TDataSource's. A query eu insiro como uma procedure ou dentro de algum componente?

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo Regex, assim como você está aprendendo Delphi, eu estou tentando aprender php e estou encontrando algumas dificuldades

Em Delphi, você tem que utilizar o componente Query, eu por exemplo utilizo o componente Zeos, neste link

tem uma explicação de como instalar o mesmo no delphi, http://imasters.com.br/artigo/3377

o zeos pode ser utilizado para vários bancos, como MySQL, SQL Server, etc.

Você só tem que colocar ela ou no DataModule ou mesmo no form onde vai utilizá-la, eu utilizo o zeos por achar mais fácil e simples de trabalhar do que a SQLConnection.

Instale ele no delphi, aí, se surgir dúvidas, pergunta aí, que na medida do possível, a gente dá uma ajudinha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá João,

 

Grato pela ajuda novamente! Ajudou bastante ^^

 

Havendo dúvidas sobre PHP envie-me pm, posso ajudá-lo!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.