Ir para conteúdo
  • Cadastre-se

dev botao

Impressão incorreta de DANFe no Fortes Report quando necessária a quebra de página nas Informações Complementares


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

Recommended Posts

Detectei um problema na impressão do DANFe em "Fortes Report" quando o campo "Informações Complementares" possui mais de 10 linhas, o modelo Retrato estava imprimindo o campo normalmente no fim da página (com 10 linhas) e outro campo "Continuação das Informações Complementares" era impresso também na 1ª página logo abaixo dos produtos.

Eu abri o código fonte para verificar o problema, e percebi que este campo de continuação não quebrava a página antes da sua impressão.  Realizei a inclusão de um evento "BeforePrint" no referido campo testando se estava na primeira página e promovendo a quebra e o problema foi resolvido.

Abri os fontes do modelo Paisagem e vi que tinha o mesmo problema e fiz as correções.

Adicionalmente eu percebi que se a propriedade "ExibeCampoFatura" do DANFe estiver como "false" o campo fatura é impresso sem as informações da fatura, porém continua ocupando um espaço desnecessário no DANFe. Para resolver acrescentei uma linha configurando a propriedade "visible" da banda de Fatura o valor do "ExibeCampoFatura", para não imprimir esta banda caso a propriedade "ExibeCampoFatura" estiver como "false" .

Estou postando as classes alteradas e gostaria de solicitar a gentileza por parte dos mantenedores do código-fonte do ACBr que analisem minhas alterações e em caso de aprovação incorpore-as ao código oficial.

Abaixo eu indico onde fiz as alterações e descrevo o que foi alterado.

1) ACBrNFeDANFeRLRetrato.pas

  • Inclusão na linha nº 2031 do código  "rlbFaturaReal.Visible := fExibeCampoFatura;" dentro do método "TfrlDANFeRLRetrato.AddFaturaReal" a fim de suprimir a impressão do campo Fatura sem os dados quando a propriedade ExibeCampoFatura for "false";
  • Inclusão na linha nº 2374 do código de um método "rlbContinuacaoInformacoesComplementaresBeforePrint()" a fim de promover a quebra de página antes da impressão do campo "Continuação das Informações Complementares" devido ao excesso de linhas a serem impressas.

 

2) ACBrNFeDANFeRLPaisagem.pas

  • Inclusão na linha nº 2021 do código  "rlbFaturaReal.Visible := fExibeCampoFatura;" dentro do método "TfrlDANFeRLPaisagem.AddFaturaReal" a fim de suprimir a impressão do campo Fatura sem os dados quando a propriedade ExibeCampoFatura for "false";
  • Inclusão na linha nº 2378 do código de um método "rlbContinuacaoInformacoesComplementaresBeforePrint()" a fim de promover a quebra de página antes da impressão do campo "Continuação das Informações Complementares" devido ao excesso de linhas a serem impressas.

 

3) ACBrNFeDANFeRL.pas

  • Alteração na linha nº 772 do código "for i := 1 to (iTotalLinhas + 10) do" dentro do método "TfrlDANFeRL.InsereLinhas()" mudando o valor "+ 10" para "+ 20".  Este código limitava a quantidade de linhas incluídas no campo para 10 linhas.  Não sei os motivos deste limite de 10 linhas, mas o conteúdo do XML deste campo estava sendo cortado por este código, eu resolvi parcialmente este corte aumentando o limite para 20 linhas, mas se tiver mais de 20 linhas ainda ocorrerá o corte.  Por favor analisar se faz sentido ter esse limite de linhas neste campo e qual deveria ser este número.


Agradeço a atenção.
Att,
Mauro Gomes.

ACBrNFeDANFeRL.dfm

ACBrNFeDANFeRL.pas

ACBrNFeDANFeRLRetrato.pas

ACBrNFeDANFeRLRetrato.dfm

ACBrNFeDANFeRLPaisagem.dfm

ACBrNFeDANFeRLPaisagem.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@Mauro Gomes , os comentários a seguir :

  • Inclusão na linha nº 2031 do código  "rlbFaturaReal.Visible := fExibeCampoFatura;" dentro do método "TfrlDANFeRLRetrato.AddFaturaReal" a fim de suprimir a impressão do campo Fatura sem os dados quando a propriedade ExibeCampoFatura for "false";
  • Inclusão na linha nº 2021 do código  "rlbFaturaReal.Visible := fExibeCampoFatura;" dentro do método "TfrlDANFeRLPaisagem.AddFaturaReal" a fim de suprimir a impressão do campo Fatura sem os dados quando a propriedade ExibeCampoFatura for "false";

Não serão implementos no código SVN.

pois :
  // A propriedade ExibeCampoFatura só tem a função de controlar os dados de fatura.
  //  Por padrão, a Banda Fatura, dever ser exibida sempre, para impressão da Tag forma de pagamento.

verifique se o seu código esta de acordo com a ultima versão do SVN , post alguns pdf' s do resultado da(s) sua(s) sugestão(ões).

 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Caro Henrique Leonardo,

Minha versão do código SVN foi completamente baixada ontem (11/05/16 às 18:12h).  Fiz uma verificação agora para ver se houve alguma mudança nestas classes e vi que não houve.

Eu anexei um XML de testes com 20 linhas no campo de informações complementares, e gerei um PDF modelo retrato mostrando o defeito e outro mostrando a correção.  Repeti o mesmo para o modelo paisagem.

Com relação a sua explicação sobre a propriedade ExibeCampoFatura, vou retirar do código a alteração que fiz para suprimir a impressão da Banda.

Gostaria de saber se o motivo da impressão da Banda Fatura somente com a forma de pagamento é uma obrigação no layout do Danfe? Pois somente será impressa uma das expressões: 'PAGAMENTO À VISTA', 'PAGAMENTO À PRAZO', 'OUTROS';  O espaço reservado para a impressão dos itens acaba diminuindo pela impressão de uma informação não relevante uma vez que logo abaixo estamos imprimindo as duplicatas com os respectivos vencimentos e valores.

Estou apenas levantando uma questão a se pensar, talvez criar uma outra propriedade "ImprimirBandaFatura" para não se confundir com a propriedade atual que indica outra função.

Att,
Mauro Gomes

55 minutos atrás, hleorj disse:

@Mauro Gomes , os comentários a seguir :

35160578134845000167550010000039761000039763-nfe.xml

DANFe-Retrato-com-defeito.pdf

DANFe-Retrato-Corrigido.pdf

DANFe-Paisagem-com-defeito.pdf

DANFe-Paisagem-Corrigido.pdf

3 horas atrás, Juliomar Marchetti disse:

Está faltando os arquivos para o lazarus!!! por favor também altere pra ele e teste e anexe novamente!

Prezado Juliomar,

Seguem os fontes conforme solicitado.

Informo que removi do código a alteração que fiz para suprimir a impressão da Banda de Fatura, conforme comentários do Henrique Leonardo.

Att,
Mauro Gomes.

ACBrNFeDANFeRL.pas

ACBrNFeDANFeRL.dfm

ACBrNFeDANFeRLRetrato.dfm

ACBrNFeDANFeRLRetrato.lfm

ACBrNFeDANFeRLRetrato.pas

ACBrNFeDANFeRLPaisagem.dfm

ACBrNFeDANFeRLPaisagem.lfm

ACBrNFeDANFeRLPaisagem.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@Mauro Gomes, Por que colocou na Tag <indPag>2</indPag> ( outros ) , para uma nota de VENDA C/ SUBST. TRIBUT

e colocou  dados de Fatura   

-<fat>
<nFat>3976</nFat>
<vOrig>490.00</vOrig>
<vLiq>490.00</vLiq>
</fat>

-<dup>
<nDup>003976-1/1</nDup>
<dVenc>2016-05-10</dVenc>
<vDup>490.00</vDup>
</dup>

Existe uma regra simples que a maioria dos desenvolvedores seguem para forma de pagamento igual 2 ( <indPag>2</indPag>) :

  1. Notas de devolução,
  2. Notas de Simples remessa,
  3. Notas de entrada.
  4. E outros casos que não sejam de venda.

Sempre terão a forma de pagamento outros.

Notas fiscais de vendas no geral possuem a forma de pagamento (  PAGAMENTO À VISTA, PAGAMENTO À PRAZO )

E uma das razões para sempre imprimir a Aba Fatura , está no erro conceitual da implementação da forma de pagamento outros.

 

 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

2 horas atrás, hleorj disse:

@Mauro Gomes, Por que colocou na Tag <indPag>2</indPag> ( outros ) , para uma nota de VENDA C/ SUBST. TRIBUT

e colocou  dados de Fatura 

Isto foi apenas um teste, quando fiz a emissão meu sistema preencheu corretamente com "venda a prazo", não há erro conceitual. Eu configurei o ExibeCampoFatura como "false" e testei a impressão, depois eu troquei para "venda a vista" e depois para "outros" a fim de testar todas as situações possíveis na impressão. Pode ver que os PDF's que anexei nem imprimiram o campo Fatura, apenas o campo de duplicatas devido ao código que eu havia alterado.

Quando te mandei o XML esqueci de voltar o código para venda a prazo, peço que por favor considere como "venda a prazo" e troque no XML. Mas não fez diferença o tipo de pagamento, a banda sempre sai impressa em todos os casos.

O que eu queria era que a banda de fatura não fosse impressa, pois a informação relevante para mim são as duplicatas, vencimentos e valores, e isso sai na outra banda.

Eu tenho alguns casos de notas que imprimem 2 páginas do DANFe somente por causa de 1 item que sai na segunda página, ou seja, acabo imprimindo mais uma página somente por causa de 1 item. Se não tivesse esse campo de Fatura haveria espaço para imprimir todos em 1 só página.  Quem desenvolve sistemas sabe como os clientes são exigentes, reclamam que tem que imprimir uma folha a mais por causa de 1 item e que nós desperdiçamos o espaço do DANFe imprimindo a informação de Fatura que não serve para nada, pois o número é o mesmo da nota e o valor também.  Eu argumentei que este layout é padronizado pela Receita Federal e que precisa ser assim, mas ele me mostra o DANFe de outras empresas que não tem este campo fatura, somente as duplicatas.  Enfim, acho que todo desenvolvedor já recebeu algum pedido deste tipo dos seus clientes, onde precisaria que fazer uma configuração personalizada.

Quando eu vi essa propriedade "ExibeCampoFatura" imaginei que ela pudesse suprimir a impressão da banda e resolver o meu caso, mas percebi que ela apenas ignorava os dados preenchidos na Tag <fat> e prenchia apenas a descrição do tipo de pagamento, foi por isso que eu alterei o código-fonte imaginando que estava com defeito, mas depois você me explicou que a função desta propriedade era outra.

Eu não me incomodo de imprimir a banda Fatura, a maioria dos clientes nunca reclamaram disso, mas eu pensei em fazer uma configuração no meu sistema para indicar que o cliente não deseja imprimir esta banda, resolvendo a demanda de quem não quer a impressão.

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

  • Moderadores

@Mauro Gomes, entendi.

O Acbr está com muitas mudanças para conseguir um padrão entre as danfe's desenvolvidas ( fortes e Fast ). Onde teremos, o mesmo conjunto de propriedades e funcionalidades entre elas. Como desenvolvedor , pode ter a sua implementação de Danfe.

No futuro , pretendo (  depois de muita conversa com outros mantedores do ACBr ) , remover algumas propriedades (  a ExibeCampoFatura  está na lista :)  ).

Ps : Sua sugestão acima está em analise .

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Ok Henrique.

Aproveito para deixar um item para contribuir com esta padronização.

Eu fiz uma verificação nos manuais da NF-e onde constam os modelos de DANFe e tem apenas um campo chamado "Fatura/Duplicata" com uma banda toda em branco, ou seja, pela SEFAZ cada um pode imprimir como desejar esta informação (visto que são dados relevantes apenas para o emissor/destinatário, não interessam ao Fisco), portanto pelo que percebi não há a obrigação de imprimir os dados da Fatura e nem a forma de pagamento. A informação que seria realmente indispensável seria os desdobramentos das duplicatas.

Sendo assim gostaria de que colocassem na pauta desta conversa a sugestão de inclusão de uma propriedade que realmente suprimisse a impressão da Fatura, poderia deixar ligada por padrão e apenas quem não quiser imprimir desligaria.

Obrigado por sua atenção.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Moderadores

Explique o seu problema ou faça um novo post. @Marcelo Calvi Belanga

Para facilitar o entendimento anexe PDF.

O assunto do post ainda continua em estudos.

Grato 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Mais um detalhe....

Esse problema ocorre gerando o PDF usando ACBrNFe.NotasFiscais.ImprimirPDF;. A visualização e impressão saem diferente, mas com todos os produtos e se eu salva em PDF manualmente usando qualquer impressora que gere PDF também.

Segue anexo:

10713.pdf

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Para ajudar no momento : você esta adicionando varias linhas em branco.


*** VALORES PERCENTUAIS APROXIMADOS RELATIVOS A CARGA TRIBUTARIA 14,26% - LEI 12.741/2012 DEC. 8.264/2014. *** ;
;
;
"DOCUMENTO EMITIDO POR ME OU EPP OPTANTE PELO SIMPLES NACIONAL"; 
"NAO GERA DIREITO A CREDITO FISCAL DE IPI";
;
"SRS. CLIENTES, FAVOR CONFERIR A MERCADORIA AO RECEBER, NAO ACEITAREMOS RECLAMACOES APOS 2 DIAS. OBRIGADA".;
"PERMITE APROVEITAMENTO DO CREDITO DE ICMS NO VALOR DE R$ 21,19, CORRESPONDENTE A ALIQUOTA DE 3,41% NOS TERMOS DO ARTIGO 23 DA LC 173."

removendo alguns  ";'  , caberia o texto sem problemas;

*** VALORES PERCENTUAIS APROXIMADOS RELATIVOS A CARGA TRIBUTARIA 14,26% - LEI 12.741/2012 DEC. 8.264/2014. *** ;
"DOCUMENTO EMITIDO POR ME OU EPP OPTANTE PELO SIMPLES NACIONAL"; 
"NAO GERA DIREITO A CREDITO FISCAL DE IPI";
"SRS. CLIENTES, FAVOR CONFERIR A MERCADORIA AO RECEBER, NAO ACEITAREMOS RECLAMACOES APOS 2 DIAS. OBRIGADA".;
"PERMITE APROVEITAMENTO DO CREDITO DE ICMS NO VALOR DE R$ 21,19, CORRESPONDENTE A ALIQUOTA DE 3,41% NOS TERMOS DO ARTIGO 23 DA LC 173."

 

@Marcelo Calvi Belanga

Sempre abra um novo post , relatando o seu problema.

Grato

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

@hleorj, foi isso que eu disse para meu cliente. Enquanto não é resolvido o problema.

Sobre o post posso abrir sem problemas, mas lendo e relendo alguns post, vejo que não agrada muito os moderadores e polui mais ainda o fórum, com post's repetidos de mesmo assunto.

Mas sem problemas, vou abrir...

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Se você expor seu problema e mostrar que existem outro(s) post falando do assunto. Facilitaria o entendimento do seu problema.

O que ficamos chateado é reler todo o post para entender o seu problema.

 

 

  • Curtir 1
Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

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