Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3452 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá pessoal!

 

Me deparei com "Rage Error" ao fazer testes de emissão de DANFE NFCe utilizando ACBrNFeDANFeESCPOS com impressora Daruma DR700.

Debugando, encontrei um problema na function QuebraLinhas do ACBrUtil.pas que pode afetar mais pessoas.

Segue abaixo o código da function QuebraLinhas, onde adicionei apenas um IF para evitar o problema.

Não anexei o ACBrUtil.pas alterado pois é apenas um IF adicionado na function.

function QuebraLinhas(const Texto: String; const Colunas: Integer;
   const CaracterQuebrar : Char = ' '): String;
Var
  PosIni, PosFim, Tamanho : Integer ;
begin
  Result  := '';
  Tamanho := Length(Texto) ;
  PosIni  := 1 ;
  repeat
     if PosIni > 1 then
        Result := Result + sLineBreak;

     PosFim := PosIni + Colunas - 1 ;

     if Tamanho > PosFim then                  // Ainda tem proxima linha ?
        if Texto[PosFim+1] <> CaracterQuebrar then   // Proximo já é uma Quebra ?
           while (Texto[PosFim] <> CaracterQuebrar) and (PosFim > PosIni) do // Ache uma Quebra
              Dec(PosFim) ;

     if PosFim = PosIni then  // Não foi capaz de encontrar uma quebra
        PosFim := PosIni + Colunas - 1 ;

     Result := Result + Copy( Texto, PosIni, (PosFim-PosIni)+1 );
     PosIni := PosFim + 1 ;

     // Marciano Lizzoni adicionou o IF abaixo pois estava mostrando Range Erro quando o PosIni já vem maior que Tamanho
     if (PosIni <= Tamanho) then
         // Pula CaracterQuebrar no Inicio da String
         while (Texto[PosIni] = CaracterQuebrar) and (PosIni <= Tamanho) do
            Inc(PosIni) ;

  until (PosIni > Tamanho);
end;

Marciano Lizzoni

Priori Sistemas

http://www.priori.com.br

  • Consultores
Postado

Obrigado pela correção Marciano..

 

 

Já subi a modificação para o "trunk2"... alguém poderia aplicá-la no "trunk" ?

 

Enviado na revisão 9245. Favor testar. :)

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 3452 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...