Ir para conteúdo
  • Cadastre-se

dev botao

Quebra De Linha Na Tag Discriminação


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

Recommended Posts

Boa Tarde amigos.

 

Os componentes de impressão de NFSe do ACBR usam por padrão o caractere ';'(ponto e vírgula) para quebra de linha no momento da impressão, por isso devemos passar os serviços da NFSe separados por esse caractere para que no momento da impressão eles saiam separados em linhas. Exemplo:
 

Servico.Discriminacao:= 'Teste de Serviço I' + ';' + 'Teste de Serviço II'

A impressão fica dessa forma:

 

kRRD6p.png

 

Mas quando a nota é impressa pelo site, ela fica dessa maneira:

 

lPPhyF.png

 

Em consulta ao manual da Abrasf e a empresa responsável pela NFSe aqui da minha cidade, verifiquei que o separador correto para esses casos é o conjunto de caracteres \s\n.

 

Usando esse conjunto a impressão no site da prefeitura acontece da maneira correta.

 

Pensando nisso adicionei a classe ACBrNFSeDANFSeClass a propriedade "CaractereQuebraLinha" que deixará a cargo do usuário do componente a escolha do caractere usado para quebra de linha.

 

Mantive o ';' como padrão para não ocorrerem problemas com os que já usam dessa forma.

 

Peço a algum dos moderadores que verifiquem a alteração que fiz e se essa é uma alteração interessante para ser incorporada ao componente.

 

Obs: a principio fiz apenas para FortesReport, pois só tenho ele instalado na minha máquina.

 

Obrigado.

 

 

 

 

ACBrNFSeDANFSe.rar

Editado por brsamn
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia

Interessante sua implementação !

estive conversando com o nosso amigo Italo  e ele fez uma sugestão diferente mas que tratará de forma igual essa questão!

nos próximos dias estará disponível no svn!

 

desde já agradecemos a contribuição e ideia!

Forte abraço

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde a todos,

 

A ideia é incluir uma parametrização nas Units referentes aos provedores.

 

A principio esse parâmetro que pode se chamar QuebradeLinha terá o valor ";".

 

Quando você for alimentar o componente deve-se sempre utilizar o carácter ";" para identificar que naquele ponto deve ocorrer uma quebra de linha.

 

Vamos supor que o provedor XYZ se utiliza do carácter "|", o que vai ocorrer?

 

Ao gerar o XML para ser enviado para o Web Services o componente vai substituir o ";" pelo "|".

 

Por outro lado ao imprimir o DANFSE, o componente vai saber qual é o carácter ou sequencia de caracteres que ele deve utilizar para realizar a quebra de linha em função do provedor.

  • Curtir 2
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

  • Consultores

Boa tarde brsamn,

 

Qual é o provedor que se utiliza da sequencia \s\n para forçar a quebra de linha?

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

  • Membros Pro

Estou com um problema referente a descrição

 

quando uso um tamanho de caracter muito grande ele corta e não aumenta de tamanho.

somente ate o item 7 que e impresso

 

1,00 REVISAO KM 45.000 VL/UN: 0,00 VL/TOTAL: 0,00;
1,00 TROCAR OLEO DE MOTOR E FILTROS VL/UN: 0,00 VL/TOTAL: 0,00;
1,00 TROCAR DISCO E PASTILHA DE FREIO VL/UN: 0,00 VL/TOTAL: 0,00;
2,00 TROCAR AMORTECEDORES TRAS VL/UN: 0,00 VL/TOTAL: 0,00;
2,00 TROCAR KIT AMORT DIANTEIRO VL/UN: 0,00 VL/TOTAL: 0,00;
1,00 HIGIENIZAR E REG LUBRIFICAR FREIO TRAS VL/UN: 0,00 VL/TOTAL: 0,00;
1,00 CORRIGIR ATERRAMENTO CHICOTE TRAS VL/UN: 0,00 VL/TOTAL: 0,00;

1,00 TOTAL SERVICO MECANICO VL/UN: 350,00 VL/TOTAL: 350,00;
1,00 ALINHAMENTO VL/UN: 50,00 VL/TOTAL: 50,00;
4,00 BALANCEAMENTO VL/UN: 8,75 VL/TOTAL: 35,00

 

Dangelo Porto

Link para o comentário
Compartilhar em outros sites

Bom dia Italo, desculpe a demora na resposta.

 

O provedor que uso é o Fiorilli em Avaré-SP, mas pelo que eles me informaram o \s\n é o recomendado pelo padrão Abrasf.

 

Página 7 do manual: http://www.abrasf.org.br/arquivos/files/NFS_e_alteracoes_da_vr_2_0.pdf

 

Obrigado.

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

  • Consultores

Bom dia brsamn,

 

Por favor atualize os fontes e teste novamente.

 

Ao alimentar o componente continue utilizando o ";" para informar a quebra de linha no campo Discriminação.

 

Verifique se ao gerar o XML do RPS o mesmo foi trocado por "\s\n".

Envie o lote contendo esse RPS e verifique o conteúdo da TAG Discriminação do XML na NFS-e.

Visualize tanto pelo componente quanto pelo site essa NFS-e e veja como fica essa informaçã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

  • Moderadores

Bom dia

insisto em que use o ACBrInstall para o processo!

ele vai evitar diversas dores de cabeça!

utilizo hoje ele em todas as versões do delphi instaladas e não tenho problemas!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom Dia.

 

Os testes que fiz aqui apresentaram o seguinte comportamenteo. Assim que emito a nota, na primeira impressão, os itens são apresentados com quebra.

 

Se saio do sistema e volto a tentar imprimir depois, os serviços saem todos juntos, dessa forma:

 

Md4JAL.png

 

Acredito que na primeira impressão sai correta porque ele imprime o que esta no componente.

 

Depois que você fecha o DANFE e vai imprimir novamente, ele passa a imprimir lendo o xml.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Qual DANFSE você esta utilizando, Quick Report?

 

Se não for, o problema pode ser esse.

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

  • Moderadores

Se quiserem posso fazer a adaptação do Fortes Report e disponibilizar aqui, usando a mesma lógica do Quick.

Fique a vontade para contribuir!

Lembre-se de atualizar seus fontes antes de começar a alterar!

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution

Boa Tarde.

Seguem em anexo os arquivos alterados do Fortes Report.

Bom dia brsamn

 

Obrigado pela contribuição!

 

já está disponível no SVN a mesma!

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

olá, estou utilizando o provedor fiorilli e fiz a mudança acima indicada de trocar o ";" pelo "\s\n", só que no danfe do fastreports, ele imprime esses caracteres, pois continua verificando a quebra por ";".

 

Então fiz o seguinte, onde

//procedure TdmACBrNFSeFR.CarregaServicos;  Unit ACBrNFSeDANFSeFRDM
FieldByName('Discriminacao').AsString := StringReplace(Discriminacao,';', #13, [rfReplaceAll]);

troquei por

//procedure TdmACBrNFSeFR.CarregaServicos; Unit ACBrNFSeDANFSeFRDM
FieldByName('Discriminacao').AsString := StringReplace(StringReplace(Discriminacao, '\s\n', ';', [rfReplaceAll]), ';', #13, [rfReplaceAll]);

Isso resolveu meu problema.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Guto,

 

Aconselho a você estudar a solução usada no DANFSE - Quick Report, foi criado uma propriedade que nos permitir a ter um carácter de quebra de linha configurado para cada provedor.

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

Bom dia, agora que achei a referida propriedade, estava procurando no componente danfse.

FieldByName('Discriminacao').AsString := StringReplace(Discriminacao, TACBrNFSe(DANFSeClassOwner.ACBrNFSe).Configuracoes.WebServices.QuebradeLinha, #13, [rfReplaceAll, rfIgnoreCase]);
Editado por jGuto
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Guto,

 

Essa alteração que você postou, resolve o problema?

 

Se sim, por favor post como anexo a unit com a respectiva alteração para que possamos realizar o merge.

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

  • Consultores

Boa tarde Guto,

 

Muito obrigado pela colaboração, já esta disponível.

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

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