Como somar coluna do dbgrid, e mostra num edit?

Delphi

27/03/2006

Olá galera blz?

Estou precisando somar uma coluna do dbgrid depois de fazer uma busca, e mostrar o resultado num edit ou label.

Pesquisei mais não achei, os código que eu vi, são sempre para somar duas ou mais tabelas.

Tenho uma tabela de vendas com esses campos (ID_Vendas, Empresa, Data, Valor).
Sendo que o campo Valor é DOUBLE PRECISION.

Estou usando FireBird 1.5.2 mais Delphi 7.

Estou fazendo uma consulta assim:
if combobox1.Text = ´Empresa´then
begin
 DM_Geral.IBDSEmpresa.Close;
 DM_Geral.IBDSEmpresa.SelectSQL.Clear;
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select * From Vendas´);
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´);
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´;
 DM_Geral.IBDSEmpresa.Open;

Essa pesquisa vai me retornar:
Empresa X, Data 27/03/2006, Valor 150,00
Empresa X, Data 27/03/2006, Valor 100,00
Gostaria de mostrar num edit ou label, a soma dos dois campo (Valor).

Desde já agradeço.


Vitoreduardo

Vitoreduardo

Curtidas 0

Respostas

Rogick

Rogick

27/03/2006

O método q eu uso, não é o + bonito mas dá pro gasto.

É assim:
...
var
  vrTotal: Currency;
begin
...
// Após o Open do DataSet ou no Evento AfterOpen...
  with DM_Geral.IBDSEmpresa do
  begin
     DataSource1.DataSet := nil; // Desvinculado DataSource

     First; // Desnecessário, só por legibilidade

     vrTotal := 0;
     while not Eof do 
     begin
       vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
       Next; 
     end;

     First;
     DataSource1.DataSet := DM_Geral.IBDSEmpresa; 
  end;
  Edit1.Text := Format(´¬.2n´, [vrTotal]); // Joga o valor formatado na Edit
...


Espero ter ajudado, qq coisa posta d novo. :wink:


GOSTEI 0
Martins

Martins

27/03/2006

if combobox1.Text = ´Empresa´then 
begin 
 DM_Geral.IBDSEmpresa.Close; 
 DM_Geral.IBDSEmpresa.SelectSQL.Clear; 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select Sum(Valor) as ValorX From Vendas´); 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´); 
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´; 
 DM_Geral.IBDSEmpresa.Open;


Assim vc soma usando SQL.

Se entendi errado, me perdoe.

Boa sorte!!!


GOSTEI 0
Rogick

Rogick

27/03/2006

Vou explicar melhor:

Esta função simplemente varre o DataSet incrementando os registros do campo VALOR na variável e depois joga o valor calculado na edit.

Eu disse que não era bonito, e não funciona bem quando conjunto de dados é muito grande(fica lento às vezes), mas dá pro gasto.


GOSTEI 0
Vitoreduardo

Vitoreduardo

27/03/2006

O Martins blz?

Eu tinha feito assim como vc falo, mais acontece o seguinte erro(Field ´ID_Vendas´ not found).

Do jeito que o Rogick fez até funcionou mais só pro campo data, pro campo Empresa não, pois o tipo de consulta que eu fiz eu não preciso digitar todo o nome da Empresa, então funcionou mais só se eu digitar a primeira letra, quando digito a segunda letra da (Access violation).

Outro problema com o código do Rogick;
Quando eu faço a primeira consulta por data da certo, mais quando limpo o edit e faço uma nova pesquisa da (Access violation).

Código:
var
  vrTotal: Currency;
begin
if combobox1.Text = ´Data´then
begin
 DM_Geral.IBDSConsultaVendas.Close;
 DM_Geral.IBDSConsultaVendas.SelectSQL.Clear;
 DM_Geral.IBDSConsultaVendas.SelectSQL.Add(´Select * From Vendas´);
 DM_Geral.IBDSConsultaVendas.SelectSQL.Add(´Where Upper(Data) Like:Data´);
 DM_Geral.IBDSConsultaVendas.ParamByName(´Data´).AsDate := StrToDate(Edit1.text);
 DM_Geral.IBDSConsultaVendas.Open;
with DM_Geral.IBDSConsultaVendas do
begin
 DM_Geral.IBDSConsultaVendas := nil;
 vrTotal := 0;
while not Eof do
begin
 vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
 Next;
end;
 First;
 DM_Geral.IBDSConsultaVendas := DM_Geral.IBDSConsultaVendas;
end;
 DBText3.Caption := Format(´¬.2n´, [vrTotal]);
end;
end;



GOSTEI 0
Martins

Martins

27/03/2006

[b:d4c062bbb7]vitoreduardo[/b:d4c062bbb7], vamos tentar com o código abaixo Ok!

if combobox1.Text = ´Empresa´then 
begin 
 DM_Geral.IBDSEmpresa.Close; 
 DM_Geral.IBDSEmpresa.SelectSQL.Clear; 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data, Sum(Valor) From Vendas´); 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´); 
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´; 
 DM_Geral.IBDSEmpresa.Open;


Veja se assim funciona, pois no código anterior o ID_Vendas não estaria presente na instrução SQL, agora os campos indicados por vc estão lá, teste por favor.

boa sorte!


GOSTEI 0
Vitoreduardo

Vitoreduardo

27/03/2006

Martins, não funcionou.

Ocorre o seguinte erro:(Invalid expression in the select list (not contained in either an aggregate function or the Group by clause)´.

Eu até tinha tentado dessa forma mais não obtive sucesso.
if combobox1.Text = ´Empresa´then 
begin 
 DM_Geral.IBDSEmpresa.Close; 
 DM_Geral.IBDSEmpresa.SelectSQL.Clear; 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data, Sum(Valor) From Vendas´); 
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´); 
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´; 
 DM_Geral.IBDSEmpresa.Open;


Esse Edit1.text é onde eu vou digitar o nome da empresa, então eu tenho que jogar o resultado da sama em outro lugar, num edit ou label.
Mais eu já fiz isso e o erro continua.


GOSTEI 0
Martins

Martins

27/03/2006

Amigo, esse erro acontece quando vc compila ou quando vc executa a ação no projeto?

Hj aqui tá complicado para pensar, vou ficar de castigo até mais tarde. Amigo, acredito q vc terá q fazer um sub-select para conseguir o q deseja, não posso nem testar pois não tenho o FB nessa máquina, apenas Ib6 q vem com o programa da Caixa - CEF.

Selec Campos, (Select Sum(Campo) from Tabela Where Codicao ) from Tabela Where Condicao.


if combobox1.Text = ´Empresa´then 
begin 

 DM_Geral.IBDSEmpresa.Close; 

 DM_Geral.IBDSEmpresa.SelectSQL.Clear; 

 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data,(Select Sum(Valor) as Valores From Vendas where Upper(Empresa) Like: empresa) as Valor from Vendas ´); 

 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´); 

 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= QuotedStr(UpperCase(Edit1.text))+´¬´; 

 DM_Geral.IBDSEmpresa.Open;


  Labelx.Caption := FormatFloat(´R$ #,0.00´, Dm_Geral.IBDSEmpresa.FieldByName(´Valores´).AsFloat);


Boa sorte!


GOSTEI 0
Vitoreduardo

Vitoreduardo

27/03/2006

Blz Martins

Eu consegui aqui, pelo menos uma parte.
Vou continuar tentando aqui e posto o resultado.

valeu


GOSTEI 0
Martins

Martins

27/03/2006

Blz Martins Eu consegui aqui, pelo menos uma parte. Vou continuar tentando aqui e posto o resultado. valeu


Certo, poste o q falta arrumar, q nós veremos isso, boa sorte!


GOSTEI 0
Georgecvenancio

Georgecvenancio

27/03/2006

Caro colega, acrescentando ao que nosso colega Martins escreveu:

if combobox1.Text = ´Empresa´then
begin
DM_Geral.IBDSEmpresa.Close;
DM_Geral.IBDSEmpresa.SelectSQL.Clear;
DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data, Sum(Valor) From Vendas´);
DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´);
//Aqui está a mudança
DM_Geral.IBDSEmpresa.SelectSQL.Add(´Group by ID_Vendas,Empresa´);
DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´;
DM_Geral.IBDSEmpresa.Open;


GOSTEI 0
Rogick

Rogick

27/03/2006

O Vitor, acho o q vc fez tá certo, só que não endenteu a questão do [b:52e31bdda4]DataSource.Data[/b:52e31bdda4] receber [b:52e31bdda4]nil[/b:52e31bdda4]. Você estava jogando para nil o próprio componente(TIBQuery eu acho), quando vc deveria jogar para nil a propriedade [i]DataSet[i] do DataSource que está ligando o [b:52e31bdda4]IBDSConsultaVendas[/b:52e31bdda4] a [b:52e31bdda4]DBGrid[/b:52e31bdda4]. Isso é opicional, só para o usuário não ver o DBGrid ´rolando´ até o final e depois voltar para o início. E isso funciona para qualquer query, desde que tenha o campo valor, e para otimizar o código, vc pode colocá-lo no Evento [b:52e31bdda4]AfterOpen[/b:52e31bdda4] do TIBQuery ou criar uma procedure para isso.

Posta aqui o nome do [b:52e31bdda4]DataSource[/b:52e31bdda4] que vc tá usando para eu te mandar o código como ele pode ficar.


GOSTEI 0
Martins

Martins

27/03/2006

Tantos códigos e nada certo, faltava apenas pensar e verificar q faltava colocar um group by, para agruparmos.

Teste com o código abaixo, testei ontem na casa de um colega q roda Firebird e funcionou, fiz uma tabela com a estrutura passada por vc.

select Empresa, Id_Vendas, Sum(Valor) from testes where Id_vendas = 2 group by Empresa, Id_Vendas;


if combobox1.Text = ´Empresa´then 
begin 

 DM_Geral.IBDSEmpresa.Close; 

 DM_Geral.IBDSEmpresa.SelectSQL.Clear; 

 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data, Sum(Valor) as Valores From Vendas where Upper(Empresa) Like: empresa Group by ID_Vendas, Empresa, Data ´); 

 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´); 

 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= QuotedStr(UpperCase(Edit1.text))+´¬´; 

 DM_Geral.IBDSEmpresa.Open; 


Chame no Label com o código.
Labelx.Caption := FormatFloat(´R$ #,0.00´, Dm_Geral.IBDSEmpresa.FieldByName(´Valores´).AsFloat); 


Boa sorte!!!


GOSTEI 0
Martins

Martins

27/03/2006

Tantos códigos e nada certo, faltava apenas pensar e verificar q faltava colocar um group by, para agruparmos.


Estou falando dos códigos q postei ontem as pressas, quanto aos códigos dos demais colegas, não me considero apto a julgá-los, refiro-me expressamente aos meus.

Teste com o código abaixo, testei ontem na casa de um colega q roda Firebird e funcionou, fiz uma tabela com a estrutura passada por vc.
select Empresa, Id_Vendas, Sum(Valor) from testes where Id_vendas = 2 group by Empresa, Id_Vendas;


Fiz um teste no IbExpert somente para verificar resultados, nada muito importante, nem igual a sua realidade.
:wink:


GOSTEI 0
Odacir

Odacir

27/03/2006

Mas o colega que fez a pergunta, gostaria de mostrar todos os registros da consulta no DBGrid, e a somatória da coluna em questão em um Edit.

Com o SQL mostrado, teria de ser feito duas consultas ao banco de dados. Uma para mostrar os dados no grid, e a outra apenas para fazer o somatório, correto?

Um campo calculado, não resolveria o problema mais fácil?


GOSTEI 0
Martins

Martins

27/03/2006

Mas o colega que fez a pergunta, gostaria de mostrar todos os registros da consulta no DBGrid, e a somatória da coluna em questão em um Edit. Com o SQL mostrado, teria de ser feito duas consultas ao banco de dados. Uma para mostrar os dados no grid, e a outra apenas para fazer o somatório, correto? Um campo calculado, não resolveria o problema mais fácil?


É uma Opção sim, com certeza.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

27/03/2006

O método q eu uso, não é o + bonito mas dá pro gasto. É assim:
...
var
  vrTotal: Currency;
begin
...
// Após o Open do DataSet ou no Evento AfterOpen...
  with DM_Geral.IBDSEmpresa do
  begin
     DataSource1.DataSet := nil; // Desvinculado DataSource

     First; // Desnecessário, só por legibilidade

     vrTotal := 0;
     while not Eof do 
     begin
       vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
       Next; 
     end;

     First;
     DataSource1.DataSet := DM_Geral.IBDSEmpresa; 
  end;
  Edit1.Text := Format(´¬.2n´, [vrTotal]); // Joga o valor formatado na Edit
...
Espero ter ajudado, qq coisa posta d novo. :wink:


eu usaria o método do Rogick, mas com uma pequena alteração:
  with DM_Geral.IBDSEmpresa do
  begin
     DisableControls;
     First; // Desnecessário, só por legibilidade

     vrTotal := 0;
     while not Eof do 
     begin
       vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
       Next; 
     end;
     First;
     EnableControls; 
  end;
  Edit1.Text := Format(´¬.2n´, [vrTotal]); // Joga o valor formatado na Edit


outra coisa: há alguma restrição quanto ao uso de clientdataset? seria bem mais simples criar campos agregados no clientdataset...


GOSTEI 0
Martins

Martins

27/03/2006

[quote:f25b48d7ab=´Rogick´]O método q eu uso, não é o + bonito mas dá pro gasto. É assim:
...
var
  vrTotal: Currency;
begin
...
// Após o Open do DataSet ou no Evento AfterOpen...
  with DM_Geral.IBDSEmpresa do
  begin
     DataSource1.DataSet := nil; // Desvinculado DataSource

     First; // Desnecessário, só por legibilidade

     vrTotal := 0;
     while not Eof do 
     begin
       vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
       Next; 
     end;

     First;
     DataSource1.DataSet := DM_Geral.IBDSEmpresa; 
  end;
  Edit1.Text := Format(´¬.2n´, [vrTotal]); // Joga o valor formatado na Edit
...
Espero ter ajudado, qq coisa posta d novo. :wink:


eu usaria o método do Rogick, mas com uma pequena alteração:
  with DM_Geral.IBDSEmpresa do
  begin
     DisableControls;
     First; // Desnecessário, só por legibilidade

     vrTotal := 0;
     while not Eof do 
     begin
       vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
       Next; 
     end;
     First;
     EnableControls; 
  end;
  Edit1.Text := Format(´¬.2n´, [vrTotal]); // Joga o valor formatado na Edit


outra coisa: há alguma restrição quanto ao uso de clientdataset? seria bem mais simples criar campos agregados no clientdataset...[/quote:f25b48d7ab]

Olá [color=darkblue:f25b48d7ab][b:f25b48d7ab]Emerson[/b:f25b48d7ab][/color:f25b48d7ab], mesmo atarefado, vc arrumou um tempo para contribuir com a comunidade, é sempre muito bom tê-lo participando dos tópicos.

Pensei q conseguiria com SQL :lol:

Estou esquecendo q podemos encontrar soluções por caminhos alternativos :oops:


GOSTEI 0
Vitoreduardo

Vitoreduardo

27/03/2006

Fala galera

Fiz desse jeito:
if combobox1.Text = ´Empresa´then
begin
 DM_Geral.IBDSEmpresa.Close;
 DM_Geral.IBDSEmpresa.SelectSQL.Clear;
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data,Valor, Sum(Valor) From Vendas´);
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´);
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Group by ID_Vendas,Empresa,Data,Valor´);
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´;
 DM_Geral.IBDSEmpresa.Open;
with DM_Geral.IBDSEmpresa do
begin
 DisableControls;
 First;
 vrTotal := 0;
while not Eof do
begin
 vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
 Next;
end;
 First;
 EnableControls;
end;
 Edit2.Text := Format(´¬.2n´, [vrTotal]);
end;
end;


E para pesquisar entre datas fiz assim:
var
  vrTotal: Currency;
begin
  inherited;
 DM_geral.IBDSConsultaVendas.Close;
 dm_geral.IBDSConsultaVendas.ParamByName(´Datavenda1´).AsDate := DateTimePicker1.Date;
 dm_geral.IBDSConsultaVendas.ParamByName(´Datavenda2´).AsDate := DateTimePicker2.Date;
 dm_geral.IBDSConsultaVendas.Prepare;
 dm_geral.IBDSConsultaVendas.Open;
with DM_Geral.IBDSEmpresa do
begin
 DisableControls;
 First;
 vrTotal := 0;
while not Eof do
begin
 vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
 Next;
end;
 First;
 EnableControls;
end;
 Edit2.Text := Format(´¬.2n´, [vrTotal]);
end;
end;


Agora preciso fazer para pesquisar por Empresa e entre data, tipo primeiro eu escolho a empresa e depois pesquiso entre data para aquela empresa.
Estou usando os componentes (IBDataBase,IBDataSet, IBTransaction, DataSource).
Vou tentar aqui e posto o resultado.

valeu


GOSTEI 0
Vitoreduardo

Vitoreduardo

27/03/2006

Fala galera Fiz desse jeito:
if combobox1.Text = ´Empresa´then
begin
 DM_Geral.IBDSEmpresa.Close;
 DM_Geral.IBDSEmpresa.SelectSQL.Clear;
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Select ID_Vendas, Empresa, Data,Valor, Sum(Valor) From Vendas´);
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Where Upper(Empresa) Like:Empresa´);
 DM_Geral.IBDSEmpresa.SelectSQL.Add(´Group by ID_Vendas,Empresa,Data,Valor´);
 DM_Geral.IBDSEmpresa.ParamByName(´Empresa´).AsString:= UpperCase(Edit1.text)+´¬´;
 DM_Geral.IBDSEmpresa.Open;
with DM_Geral.IBDSEmpresa do
begin
 DisableControls;
 First;
 vrTotal := 0;
while not Eof do
begin
 vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
 Next;
end;
 First;
 EnableControls;
end;
 Edit2.Text := Format(´¬.2n´, [vrTotal]);
end;
end;
E para pesquisar entre datas fiz assim:
var
  vrTotal: Currency;
begin
  inherited;
 DM_geral.IBDSConsultaVendas.Close;
 dm_geral.IBDSConsultaVendas.ParamByName(´Datavenda1´).AsDate := DateTimePicker1.Date;
 dm_geral.IBDSConsultaVendas.ParamByName(´Datavenda2´).AsDate := DateTimePicker2.Date;
 dm_geral.IBDSConsultaVendas.Prepare;
 dm_geral.IBDSConsultaVendas.Open;
with DM_Geral.IBDSEmpresa do
begin
 DisableControls;
 First;
 vrTotal := 0;
while not Eof do
begin
 vrTotal := vrTotal + FieldByName(´VALOR´).AsCurrency;
 Next;
end;
 First;
 EnableControls;
end;
 Edit2.Text := Format(´¬.2n´, [vrTotal]);
end;
end;
Agora preciso fazer para pesquisar por Empresa e entre data, tipo primeiro eu escolho a empresa e depois pesquiso entre data para aquela empresa. Estou usando os componentes (IBDataBase,IBDataSet, IBTransaction, DataSource). Vou tentar aqui e posto o resultado. valeu

Alguém sabe como colocar um pesquisa simples por data no evento OnChange do edit, é que eu vi um sistema assim e gostaria de fazer assim sem presisar clicar num botão.


GOSTEI 0
Jander Almeida

Jander Almeida

27/03/2006

procedure TFrmFinanceiroConsult.btn1Click(Sender: TObject);
var
somar:Currency;
begin
DM.QRYFINANCEIRO.Close;
DM.QRYFINANCEIRO.SQL.Clear;
DM.QRYFINANCEIRO.SQL.add('SELECT C.NOME,P.CODPEDIDO,NPARCELA,VLPARCELA,VENCIMENTO FROM PEDIDO P, CLIENTES C,FINANCERIO F WHERE P.CODCLIENTE = C.CODCLIENTE AND F.CODPEDIDO = P.CODPEDIDO AND (P.CODPEDIDO <> 0)');
//***********************************************//

if edNPed.Text <> '' Then
begin
DM.QRYFINANCEIRO.SQL.add(' AND (P.CODPEDIDO ='+ edNPed.Text +')');
end;
//************************************************//
if ed_NomeCliente.Text <> '' Then
begin
DM.QRYFINANCEIRO.SQL.add(' AND (C.NOME LIKE '+ QuotedStr('%'+ ed_NomeCliente.Text + '%')+')');
DM.QRYFINANCEIRO.SQL.Add('ORDER BY P.CODPEDIDO');
end;
//***********************************************//
if dtInicial.Text <> ' / / ' Then
begin
DM.QRYFINANCEIRO.SQL.add(' AND (F.VENCIMENTO >= :pDtIni )');
DM.QRYFINANCEIRO.Parameters.ParamByName('pDtIni').DataType := ftDate;
DM.QRYFINANCEIRO.Parameters.ParamByName('pDtIni').Value := dtInicial.Text;
end;
//**********************************************//
if dtFinal.Text <> ' / / ' Then
begin
DM.QRYFINANCEIRO.SQL.add(' AND (VENCIMENTO <= :pDtFin )');
DM.QRYFINANCEIRO.Parameters.ParamByName('pDtFin').DataType := ftDate;
DM.QRYFINANCEIRO.Parameters.ParamByName('pDtFin').Value := dtFinal.Text;
end;
//**********************************************//
DM.QRYFINANCEIRO.Open;
//**********************************************//
if DM.QRYFINANCEIRO.RecordCount = 0 Then
begin
ShowMessage('Nenhuma OS Foi Encontrado!');
end;
begin
with DM.QRYFINANCEIRO do
begin
DM.DSQFINANCERIO.DataSet:=nil;
somar:=0;
//DM.QRYFINANCEIRO.First;
while not Eof do
begin
somar:=somar+FieldByName('VLPARCELA').AsCurrency;
Next;
end;
First;
DM.DSQFINANCERIO.DataSet:= DM.QRYFINANCEIRO;
end;
edTotal.Text:=FormatFloat('R$ ##,0.00',somar);
end;
end;
GOSTEI 0
POSTAR