Ir para conteúdo
  • Cadastre-se

dev botao

Impressão Do Danfe Com Vários Xmls E Diferentes Tpimp


clever-x
Ver Solução Respondido por clever-x,
  • Este tópico foi criado há 3921 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde pessoal! Me deparei com o seguinte:
Quando carrego várias NF-e no componente e desejo imprimir ou gerar o PDF de todas elas em um único arquivo, o layout de página não é alterado de acordo com a tag tpImp do XML e sempre usa a configuração passada ao componente de impressão do DANFE do ACBrNFe.

Sei que tem como fazer separadamente para cada XML.
Creio que a impressão do DANFE deve sempre ser configurada de acordo com a tag tpImp, estou errado? Logo, o componente não poderia automatizar isso?
Uso o ACBrDANFeCBRave. Cheguei a modificar esta unit para verificar a tag e mudar a orientação antes de dar um NewPage. Só que a impressão sai bagunçada a partir desta troca.
Alguém sabe como proceder? E se tem como fazer o que eu quero.

Uso:

ACBrNFe1.NotasFiscais.Clear;

// carrego dois XML, com valor para a tag tpImp diferentes
ACBrNFe1.NotasFiscais.LoadFromFile('...-nfe.xml');
ACBrNFe1.NotasFiscais.LoadFromFile('...-nfe.xml');

// inicio o componente com o tipo de impressão do primeiro XML carregado (essa parte não tentei melhorar via componente)
ACBrNFe1.DANFE.TipoDANFE := ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpImp;
ACBrNFe1.NotasFiscais.Imprimir;

Modificação (linha 712 na unit ACBrDANFeCBRave):

if (FNFIndex>0) and (FNumNFe=-1) then
begin
   // antes de criar nova página, trocar a orientação de acordo com tpImp do XML
   case FACBrNFe.NotasFiscais.Items[FNFIndex].NFe.Ide.tpImp of
      tiPaisagem:
        Orientation:=poLandScape;
      tiRetrato:
        Orientation:=poPortrait;
   end;

   NewPage;
end;

if Orientation=poLandScape then
   ImprimirPaisagem(Self)
else
   ImprimirRetrato(Self);
Editado por clever-x
Link para o comentário
Compartilhar em outros sites

  • Solution

Consegui o que eu queria fazendo o seguinte:

if (FNFIndex>0) and (FNumNFe=-1) then
begin
   // antes de criar nova página, trocar a orientação de acordo com tpImp do XML
   case FACBrNFe.NotasFiscais.Items[FNFIndex].NFe.Ide.tpImp of
      tiPaisagem:
        Orientation:=poLandScape;
     tiRetrato:
        Orientation:=poPortrait;
   end;

   NewPage;

   // solução
   FLastX:=BaseReport.PageWidth-SystemPrinter.MarginRight;
   FLastY:=BaseReport.PageHeight-SystemPrinter.MarginBottom;
end;

if Orientation=poLandScape then
   ImprimirPaisagem(Self)
else
   ImprimirRetrato(Self);

Ainda deixo em aberto a minha dúvida sobre a possibilidade de o componente fazer essa troca de orientação da página automaticamente, conforme a tag tpImp.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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