Fórum COMO FAZER SOMAR COLUNA DO DBGRID, DIFERENCIANDO LETRAS E NUMEROS #598138
23/10/2018
0
begin
Total:=0;
ClientDataSet1.DisableControls;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
Total := Total + StrToFloat(TrocaPtoPVirg(ClientDataSet1.FieldByName(Trim(lbl_campo.Caption)).AsString));
ClientDataSet1.Next;
end;
ClientDataSet1.First;
ClientDataSet1.EnableControls;
lbl_total.Caption:=''Total = ''+FloatToStr(Total);
end;Lucas Araujo
Curtir tópico
+ 0Post mais votado
24/10/2018
Total := 0;
ClientDataSet1.DisableControls;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
Total := Total + StrToFloatDef(TrocaPtoPVirg(ClientDataSet1.FieldByName(Trim(lbl_campo.Caption)).AsString), 0); // Coloquei StrToFloatDef
ClientDataSet1.Next;
end;
ClientDataSet1.First;
ClientDataSet1.EnableControls;
lbl_total.Caption := 'Total = ' + FloatToStr(Total);Natanael Ferreira
Gostei + 1
Mais Posts
23/10/2018
Emerson Nascimento
var Total: float; lCampoNumerico: boolean; nPosCampo: integer; begin try nPosCampo := ClientDataSet1.FieldByName(Trim(lbl_campo.Caption)).FieldNo; except nPosCampo := -1; end; Total := 0; lCampoNumerico := (nPosCampo >= 0) and (ClientDataSet1.Fields[nPosCampo].DataType in [ftSmallInt, ftInteger, ftWord, ftFloat, ftCurrency, ftLargeint, ftShortint, ftExtended]); if lCampoNumerico then begin ClientDataSet1.DisableControls; ClientDataSet1.First; while not ClientDataSet1.Eof do begin if not ClientDataSet1.Fields[nPosCampo].IsNull then Total := Total + ClientDataSet1.Fields[nPosCampo].AsFloat; ClientDataSet1.Next; end; ClientDataSet1.First; ClientDataSet1.EnableControls; end; lbl_total.Caption := 'Total = '+FloatToStr(Total); end;
Gostei + 0
23/10/2018
Lucas Araujo
Gostei + 0
23/10/2018
Emerson Nascimento
Gostei + 0
23/10/2018
Lucas Araujo
no inicio esta dando que não foi declarado.. "Total: float;" , mais mudei ele para "real" para testar...
ai mandei debugar, e não deu erro, só não faz a somatória, fica zerado a soma.
Gostei + 0
24/10/2018
Lucas Araujo
Total := 0;
ClientDataSet1.DisableControls;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
Total := Total + StrToFloatDef(TrocaPtoPVirg(ClientDataSet1.FieldByName(Trim(lbl_campo.Caption)).AsString), 0); // Coloquei StrToFloatDef
ClientDataSet1.Next;
end;
ClientDataSet1.First;
ClientDataSet1.EnableControls;
lbl_total.Caption := 'Total = ' + FloatToStr(Total);hehe testei seu procedimento, e funcionou, Obrigado.. xD
Gostei + 0
24/10/2018
Natanael Ferreira
Total := 0;
ClientDataSet1.DisableControls;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
Total := Total + StrToFloatDef(TrocaPtoPVirg(ClientDataSet1.FieldByName(Trim(lbl_campo.Caption)).AsString), 0); // Coloquei StrToFloatDef
ClientDataSet1.Next;
end;
ClientDataSet1.First;
ClientDataSet1.EnableControls;
lbl_total.Caption := 'Total = ' + FloatToStr(Total);hehe testei seu procedimento, e funcionou, Obrigado.. xD
Blz, amigo. Que bom que funcionou.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)