Ir para conteúdo
  • Cadastre-se

dev botao

Problema Gerar Danfe Com Rave No Windows Xp


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

Recommended Posts

Ocorre somente no Windows XP:

 

Nas units ACBrDANFeCBRaveRetrato.pas e ACBrDANFeCBRavePaisagem.pas

 

nas respectivas funções:

 

procedure ImprimirRetrato(aRaveSystem:TDANFeRave); //Linha 1316

 

e

 

procedure ImprimirPaisagem(aRaveSystem:TDANFeRave); //Linha 1350

 

Entra em um loop infinito ao imprimir os itens:

 

while not ((IsPrintAllProd) and (IsPrintAllInfCpl)) do begin //Paisagem linha 1443, Retrato linha 1409
      if not bInicio then
         NewPage;
      ImprimirItens(MontarPagina);
      bInicio:=False;
    end;

 

Pelo que eu percebi é alguma coisa haver com a fonte onde ele calcula o tamanho e acha que mesmo com um item, tem mais itens do que cabe na página.

 

Alguém pode ajudar a resolver esse problema?

 

 

Link para o comentário
Compartilhar em outros sites

Bom dia,

 

Detectei qual o problema que ocorre nesta situação, segue:

Em maquinas onde não há nenhuma impressora instalada (mesmo que não funcional), o Rave seta o tamanho do papel para 11x8,5, sendo assim, o tamanho da linha nunca é suficiente pra imprimir os itens, neste caso uma nova pagina é adicionada, é refeita a validação pra ver se consegue imprimir o item mas novamente não é suficiente, send assim, entra em loop tentantando adicionar nova pagina. Este erro é mais comum no windows XP pois o mesmo não possui uma impressora padrão tal como Win7+.  Então, se alguem entender de impressão pelo Rave CB e quiser procurar uma solução seria de grande ajuda.

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • Moderadores

A solução que vc diz é detectar se tem uma impressora instalada antes de imprimir?

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Link para o comentário
Compartilhar em outros sites

não juaumkiko, no caso ocorrido nem esta sendo impresso a danfe, apenas esta sendo gerado o preview em tela.

 

Pelo que entendi o rave procura a impressora padrão do windows e "coleta" o tamanho da pagina, neste caso o preview sai correto, no entanto, como mencionado acima, se não houver nenhuma impressora instalada no windows ele pega um tamanho de pagina padrão e quando vai gerar o danfe ele entra em loop adicionando pagina após entrar no metodo ImprimirItens();

 

nos testes que executei aqui acontece isso mesmo tendo apenas 1 item pois quando entra no metodo, mais especificamente no codigo abaixo(ver codigo 1), o (YPos+(aFontHeigth*QtdeMin)) é sempre mair FLastItens.

 

CÒDIGO 1:


//Testa se a quantidade de linhas a ser impressa
//ultrapassará o final do quadro dos itens,
//e caso aconteça, cria uma nova página
  if (YPos+(aFontHeigth*QtdeMin))>FLastItens then
  begin
    Break;
  end else
  if FDetIndex>0 then
  begin
   MoveTo(PosX,YPos+0.1-aFontHeigth);
   LineTo(FLastX,YPos+0.1-aFontHeigth);
  end;

assim, mesmo imprimindo apenas 1 linha ele excede o tamanho do quadro de itens e não imprime o item, cria uma nova pagina (ver codigo 2)  e o processo se repete gerando milhares de paginas até exceder a memória e dar pau de vez.

 

CODIGO 2

while not ((IsPrintAllProd) and (IsPrintAllInfCpl)) do begin //Paisagem linha 1443, Retrato linha 1409
  if not bInicio then
    NewPage;
  ImprimirItens(MontarPagina);
  bInicio:=False;
end;
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Quando disse Imprimir me referi ao inicio do processo de emissao da danfe.

 

O preview já é o processo de impressão pois ele usa o preview do gerenciador de relatorio usado, no seu caso o Rave.

 

Aconselho ao seu sistema identificar se tem impressora instalada ou não e avisar ao usuario.

 

[]´s

  • Curtir 1

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3740 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.