Bom Dia!
Um de nossos clientes reclamou do seguinte erro ao ler o Retorno gerado pelo Banco Bradesco:
"Could not convert variant of type (UnicodeString) into type (Double)"
Analisando o erro, percebemos que no arquivo de retorno, na posição 321, referente ao segundo motivo, continha uma letra (P4)
"00P4000000"
Se a letra estiver na primeira posição do Motivo (coluna 319) o erro não ocorre, mas da segunda para frente temos esse problema.
Olhando o código fonte, o sistema tenta verificar se o Motivo é diferente de 0, mas como contém uma letra, o erro ocorre nesse momento:
---------------------------------------------------------------------------------------------------------------------------------------------
unit ACBrBoleto;
//Apos o 1º motivo os 00 significam que não existe mais motivo
if(CodMotivo <> 0)then
begin
MotivoRejeicaoComando.Add(IfThen(copy(Linha,MotivoLinha,2) = ' ','00',copy(Linha,MotivoLinha,2)));
if VarIsNumeric(CodMotivo) then
DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo,Integer(CodMotivo)))
else
DescricaoMotivoRejeicaoComando.Add(CodMotivoRejeicaoToDescricao(OcorrenciaOriginal.Tipo,VarToStr(CodMotivo)));
end;
---------------------------------------------------------------------------------------------------------------------------------------------