Fórum Somar dados do DB grid e apresentar num label #527619

03/08/2015

0

Bom tenho um DB grid que me apresenta o resultado da soma do estoque* custo liquido

e coloquei um label para somar toda a coluna do resultado (Total_Liquido)

esse é o meu codigo

procedure TPesestocarr.LabelTotalLiquidoClick(Sender: TObject);
begin
Var
Somar:Integer;
begin
inherited;
SOMAR:=0;
Withe dm.ADOQuery2 do
begin
dm.ADOQuery2.DisableControls;
dm.ADOQuery2.First;
while not dm.ADOQuery2.Eof do
Begin
Somar:= (Somar + dm.ADOQuery2.fieldByName('total_Liquido').AsInteger);
dm.ADOQuery2.next;
end;
dm.ADOQuery2.EnableControls;
LableTotalLiquido.Caption:= FloatToStr (SOMAR); //Format('%00.0n',);
end;

end.


porem na hora de compilar apresenta esses erros

[dcc32 Error] UPesestocarr.pas(114): E2004 Identifier redeclared: 'Somar'
[dcc32 Error] UPesestocarr.pas(116): E2075 This form of method call only allowed in methods of derived types
[dcc32 Error] UPesestocarr.pas(118): E2003 Undeclared identifier: 'Withe'
[dcc32 Error] UPesestocarr.pas(118): E2014 Statement expected, but expression of type 'TADOQuery' found
[dcc32 Error] UPesestocarr.pas(119): E2029 '.' expected but 'BEGIN' found
[dcc32 Error] UPesestocarr.pas(128): E2003 Undeclared identifier: 'LableTotalLiquido'
[dcc32 Error] UPesestocarr.pas(128): E2066 Missing operator or semicolon
[dcc32 Warning] UPesestocarr.pas(129): W1011 Text after final 'END.' - ignored by compiler
[dcc32 Fatal Error] F2063 Could not compile used unit 'UPesestocarr.pas'
Failed
Tiago Santos

Tiago Santos

Responder

Posts

03/08/2015

Romario Kilian

Ola.

Um erro está bem visivel "White dm.ADOQuery2 do"

Deve ser While dm.AdoQuery2 do.

Consertando este já elimina um monte de erros.

Os outros devem ser Begin.. End. (Todo Begin deve tger um End).

Abraços
Responder

Gostei + 0

03/08/2015

Mateus Ribeiro

Cara na moral, esse seu código fez eu chorar sangue rs...

Tem muito erro, eu refiz de uma maneira objetiva e funcional pra vc... Cuidado quando for "copiar e colar" códigos prontos, por mais simples que seja, querer o mínimo de atenção.

var Soma: Double;
begin

  inherited;
  Soma:= 0;

  DM.ADOQuery2.DisableControls;
  DM.ADOQuery2.First;

  While not DM.ADOQuery2.Eof do
  begin
    Soma:= Soma + DM.ADOQuery2.FieldByName('Total_Liquido').AsFloat;
    DM.ADOQuery2.Next;
  end;

  DM.ADOQuery2.EnableControls;
  LableTotalLiquido.Caption:= FloatToStr(Soma);



Boa tarde!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar