Bom dia,
Tive um problema com o grande total com uma ECF Bematech MP-4200 TH FI, onde o Acbr me retornava o Grande Total com o valor zerado, analisando o código do ACBrECFEscECF.pas vi que a função GetGrandeTotal estava convertendo a string de retorno da ECF para inteiro e no caso a ECF do meu cliente já tinha atingido o valor de R$ 21.478.320,17 no grande total, assim ultrapassou o valor máximo que o tipo Integer suporta no delphi, segue a baixo a solução que encontrei para o problema.
Código com o erro:
function TACBrECFEscECF.GetGrandeTotal: Double;
var
StrValue: String;
begin
RetornaInfoECF( '4|1' ) ;
StrValue := EscECFResposta.Params[1] ;
Result := StrToIntDef( StrValue, 0 ) / 100;
end;
Solução:
function TACBrECFEscECF.GetGrandeTotal: Double;
var
StrValue: String;
begin
RetornaInfoECF( '4|1' ) ;
StrValue := EscECFResposta.Params[1] ;
Result := StrToCurrDef( StrValue, 0 ) / 100;
end;