Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFSeX - DANFSe (Sugestões)


Ver Solução Respondido por Victor H. Gonzales - Panda,

Recommended Posts

Boa tarde,

Sempre que atualizo os fontes do ACBr, tenho que realizar algumas customizações no fonte da impressão de Danfse do ACBrNFSex para fastreports. Fica se sugestão se puderem realizar estas melhorias. 

Antes de mais nada vamos ao que levaram agente ter que customizar os Danfse.

1 - A quebra de pagina não funciona de uma forma bem certa, pode ser nós que talvez nunca soubermos a forma correta de utilizar como pode ser defeito.

2 - Cliente desejam ver as parcelas ali impressas, mesmo que o provedor não tenha a parte financeira no XML o cliente quer que apareça isto na impressão.

3 - Tem dois campos de datas que tive que criar a parte para atender algumas prefeituras, que diziam que tinha que ter.

Ficaria muito grato se pudessem estudar as questões apresentadas, já tem ao menos uns 2 anos que tenho tido sempre que customizar isto.

 

Item 1:

Com relação a quebra, nós customizamos os arquivos de impressão, para que cada bloco siga o seu antecessor, nos originais disponibilizados isto não esta bem correto ao nosso entendimento, e tem bloco quebrando de forma manual via codificação, e acreditamos que da forma como ajustamos resolvemos o problema da quebra de pagina, uma vez que principalmente no corpo dos itens os demais campos abaixo seguem a quebra.  Segue anexo os modelos de impressão, inclusive estes 3 modelos estamos usando em diversos municipios já a uns 2 anos e não tem necessitado mais adequações.

DANFSEX_ATUAL modelo1 - Padrao.fr3 (Este é o modelo simples com chave da prefeitura pequena)

DANFSEX_ATUAL modelo2 - Chave Grande (Este é o modelo simples com chave da prefeitura grande)

DANFSEX_ATUAL modelo3 - QrCode (Este é o modelo com QrCode)

 

Item 2:

Com relação as parcelas os clientes querem ver no corpo, e também sempre querem os itens tabulados (não só descrição do serviço), isto é uma coisa que sempre gerou reclamação ao menos nos meus clientes e uma solução foi comentar a seguinte linha no procedimento TACBrNFSeXDANFSeFR.frxReportBeforePrint(Sender: TfrxReportComponent).

frxReport.FindObject('Memo13').Visible := (not ((cdsItensServico.RecordCount > 0) and (frxReport.FindObject('Page2') <> nil)) or (frxReport.FindObject('Page2') = nil));

 

Se pudessem criar uma propriedade que pudesse setar sempre visivel este memo eu agradeceria, pois ocorre que pela implementação do ACBr este bloco fica invisivel se você colocar os itens da nota em formato de grade. O mesmo só fica visivel se só informado os itens de forma descritiva. Como nós utilizamos aqui???

Sempre a impressão dos itens é alimentado em forma de grade, mesmo que no XML da prefeitura seja só a descrição dos serviços, então sempre sai tabulado em grade. E porque precisamos ainda do "Memo13", é para ali mostrar outras informações que não constam muitas vezes na prefeitura, como por exemplo as parcelas, este é um caso muito utilizado. Em anexo estou colocando 3 modelos impressos para vocês entenderem o que estou falando.

Ver os modelos de DANFSe anexados.

 

Item 3:

Tive necessidade para um provedor especifico criar duas propriedades novas para mostrar correto no DANFe.

No procedimento TACBrNFSeXDANFSeFR.CriarDataSetsFrx adicionado;

cdsIdentificacao.FieldDefs.Add('DataServico', ftString, 20); // para distinguir a data do servico da data da nfe para provedor que tenha isto
cdsIdentificacao.FieldDefs.Add('DataEmissaoRps', ftString, 19);   // para distinguir a data do RPS da data da nfe

frxIdentificacao.FieldAliases.Add('DataServico=DataServico');   // Relação dos campos com o report
frxIdentificacao.FieldAliases.Add('DataEmissaoRps=DataEmissaoRps'); // Relação dos campos com o report

 

No procedimento TACBrNFSeXDANFSeFR.CarregaIdentificacao(ANFSe: TNFSe) adicionado

LCDS.FieldByName('DataServico').AsString := FormatDateTime('dd/mm/yyyy', ANFSe.Competencia);  // Alimentado o campo DataServico

if (Provedor in [ proSigCorp ]) then
    LCDS.FieldByName('DataEmissaoRps').AsString := FormatDateBr(ANFSe.DataEmissaoRps);  // Alimentado o campo DataEmissaoRps

 

Segue anexo os fontes.

 

 

 

DANFSEX_ATUAL modelo1 - Padrao.fr3 DANFSEX_ATUAL modelo2 - Chave Grande.fr3 DANFSEX_ATUAL modelo3 - QrCode.fr3 ACBrNFSeXDANFSeFR.pas DANFSEX_ATUAL_chavesimples2.pdf DANFSEX_ATUAL_chavegande2.pdf NFS-E teste PRODUCAO 2.pdf

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

  • Consultores

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-4963

  • Curtir 2
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia @Kaikson,

Primeiramente você tem que adquirir o Fast Report e instalar no Delphi.

Depois ao instalar o ACBr marcar as opções de Relatórios referente ao Fast.

Por fim na aplicação trocar o componente do Fortes pelo do Fast.

Vai ser necessário também mudar algumas linhas na rotina de configuração do componente na sua aplicação.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde @Kaikson

Lembrando que o ACBr possui as impressões e Fortes Report, EscPos e fPDF que não requerem nenhum gerador de relatórios pago, e o fPDF em especial é bastante ágil.

At.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
Em 09/01/2024 at 17:06, Diogo Loff disse:

Boa tarde,

Sempre que atualizo os fontes do ACBr, tenho que realizar algumas customizações no fonte da impressão de Danfse do ACBrNFSex para fastreports. Fica se sugestão se puderem realizar estas melhorias. 

Antes de mais nada vamos ao que levaram agente ter que customizar os Danfse.

1 - A quebra de pagina não funciona de uma forma bem certa, pode ser nós que talvez nunca soubermos a forma correta de utilizar como pode ser defeito.

2 - Cliente desejam ver as parcelas ali impressas, mesmo que o provedor não tenha a parte financeira no XML o cliente quer que apareça isto na impressão.

3 - Tem dois campos de datas que tive que criar a parte para atender algumas prefeituras, que diziam que tinha que ter.

Ficaria muito grato se pudessem estudar as questões apresentadas, já tem ao menos uns 2 anos que tenho tido sempre que customizar isto.

 

Item 1:

Com relação a quebra, nós customizamos os arquivos de impressão, para que cada bloco siga o seu antecessor, nos originais disponibilizados isto não esta bem correto ao nosso entendimento, e tem bloco quebrando de forma manual via codificação, e acreditamos que da forma como ajustamos resolvemos o problema da quebra de pagina, uma vez que principalmente no corpo dos itens os demais campos abaixo seguem a quebra.  Segue anexo os modelos de impressão, inclusive estes 3 modelos estamos usando em diversos municipios já a uns 2 anos e não tem necessitado mais adequações.

DANFSEX_ATUAL modelo1 - Padrao.fr3 (Este é o modelo simples com chave da prefeitura pequena)

DANFSEX_ATUAL modelo2 - Chave Grande (Este é o modelo simples com chave da prefeitura grande)

DANFSEX_ATUAL modelo3 - QrCode (Este é o modelo com QrCode)

 

Item 2:

Com relação as parcelas os clientes querem ver no corpo, e também sempre querem os itens tabulados (não só descrição do serviço), isto é uma coisa que sempre gerou reclamação ao menos nos meus clientes e uma solução foi comentar a seguinte linha no procedimento TACBrNFSeXDANFSeFR.frxReportBeforePrint(Sender: TfrxReportComponent).

frxReport.FindObject('Memo13').Visible := (not ((cdsItensServico.RecordCount > 0) and (frxReport.FindObject('Page2') <> nil)) or (frxReport.FindObject('Page2') = nil));

 

Se pudessem criar uma propriedade que pudesse setar sempre visivel este memo eu agradeceria, pois ocorre que pela implementação do ACBr este bloco fica invisivel se você colocar os itens da nota em formato de grade. O mesmo só fica visivel se só informado os itens de forma descritiva. Como nós utilizamos aqui???

Sempre a impressão dos itens é alimentado em forma de grade, mesmo que no XML da prefeitura seja só a descrição dos serviços, então sempre sai tabulado em grade. E porque precisamos ainda do "Memo13", é para ali mostrar outras informações que não constam muitas vezes na prefeitura, como por exemplo as parcelas, este é um caso muito utilizado. Em anexo estou colocando 3 modelos impressos para vocês entenderem o que estou falando.

Ver os modelos de DANFSe anexados.

 

Item 3:

Tive necessidade para um provedor especifico criar duas propriedades novas para mostrar correto no DANFe.

No procedimento TACBrNFSeXDANFSeFR.CriarDataSetsFrx adicionado;

cdsIdentificacao.FieldDefs.Add('DataServico', ftString, 20); // para distinguir a data do servico da data da nfe para provedor que tenha isto
cdsIdentificacao.FieldDefs.Add('DataEmissaoRps', ftString, 19);   // para distinguir a data do RPS da data da nfe

frxIdentificacao.FieldAliases.Add('DataServico=DataServico');   // Relação dos campos com o report
frxIdentificacao.FieldAliases.Add('DataEmissaoRps=DataEmissaoRps'); // Relação dos campos com o report

 

No procedimento TACBrNFSeXDANFSeFR.CarregaIdentificacao(ANFSe: TNFSe) adicionado

LCDS.FieldByName('DataServico').AsString := FormatDateTime('dd/mm/yyyy', ANFSe.Competencia);  // Alimentado o campo DataServico

if (Provedor in [ proSigCorp ]) then
    LCDS.FieldByName('DataEmissaoRps').AsString := FormatDateBr(ANFSe.DataEmissaoRps);  // Alimentado o campo DataEmissaoRps

 

Segue anexo os fontes.

 

 

 

DANFSEX_ATUAL modelo1 - Padrao.fr3 52.52 kB · 0 downloads DANFSEX_ATUAL modelo2 - Chave Grande.fr3 52.5 kB · 0 downloads DANFSEX_ATUAL modelo3 - QrCode.fr3 53.21 kB · 0 downloads ACBrNFSeXDANFSeFR.pas 63.44 kB · 0 downloads DANFSEX_ATUAL_chavesimples2.pdf 113.88 kB · 4 downloads DANFSEX_ATUAL_chavegande2.pdf 155.34 kB · 4 downloads NFS-E teste PRODUCAO 2.pdf 461.5 kB · 4 downloads

Boa tarde,

Obrigado pela contribuição

Item 1

Quebra de Página, pode ser que não está funcionando por conta das personalizações do lado de vocês, não entendi direito o problema, não saberia dizer como recriar o problema, pois não tenho incidentes.

Item 2

Você está personalizando o comportamento do componente, o componente ele trabalha de 2 formas, provedores que suportam itens em lista ou discriminação, se você está alterando o comportamento do componente assim, sugiro você fazer um fork ou controlar suas mudanças, pois isso tem impacto nas regras do componente. o mesmo exibe de acordo com o provedor, ou você personaliza os fr3 para não entrar nas regras do componente, mas ai fica a cargo de vocês a manutenção.

Item 3

esses 2 campos criados já existem no dataset com outros nomes.

 

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

Certo, bom como disse são sugestões.

Sim o item 1 da quebra pode ser em virtude do item 2 onde nós utilizamos os dois blocos. Como sitei pelo menos meus clientes querem as informações mais padronizadas, tabuladas, mais semelhante a uma NFe, mas tudo bem, vou manter ainda minhas adequações aqui em separado como sempre fiz.

 

Sobre o item 3 quais são os campos equivalentes? pois não localizei, aqui resolvendo já evito algumas linhas de customização.

Link para o comentário
Compartilhar em outros sites

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.