Ir para conteúdo
  • Cadastre-se

dev botao

Quebra de linha no provedor Simpliss


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

Recommended Posts

  • Membros Pro

Boa tarde, ao enviar uma nota fiscal para o provedor Simpliss, utilizado por Blumenau -SC , a visualização no site da prefeitura fica tudo em uma linha só , não respeitando o #13#10 , ou o ;, entrando em contato com a Simpliss eles informaram que o codigo a utilizar para a quebra de linha seria o \\s\n

entendi pelo post abaixo que ao usar o ; o componente iria providenciar o codigo correto, mas não consegui o resultado esperado... fiz algo errado ? onde esta gravado este codigo no acbr ?

que  

Link para o comentário
Compartilhar em outros sites

  • Consultores
2 minutos atrás, Fabio Fredianelli disse:

Desculpe Juliomar, mas qual o link para esse post no sac ? 

 

Boa tarde!

A mensagem indica que o tópico foi movido para a área PRO.

image.png

Mas o tópico permanece o mesmo.

Sobre a questão da quebra de linha.

Por favor, você usa componente nativo para Delphi/Lazarus, Monitor ou Lib?

 

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
11 minutos atrás, Fabio Fredianelli disse:

Mas independentemente de nao ter mudado a visualização no site, estava pensando e  acho que  o correto seria apenas adicionar ; após o #13#10 , pois caso contrário o pdf gerado pelo componente é que vai ficar sem salto de linha correto ?

Por favor, substitua a unit em anexo no caminho C:\ACBr\trunk2\Fontes\ACBrDFe\ACBrNFSeX\Provedores, reinstale o ACBr e faça um novo teste.

SimplISS.Provider.pas

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

  • Membros Pro

troquei e recompilei, no pdf o salto foi duplo, e na pagina da prefeitura bugou o site... passou a mostrar a mensagem abaixo, ( pergunto , nao devia ser \\n\s ? , no arquivo enviado esta apenas \n\s , uma barra apenas.

  • An error occurred during local report processing.
    • An unexpected error occurred in Report Processing.
      • Parameter is not valid.
Link para o comentário
Compartilhar em outros sites

  • Consultores
5 minutos atrás, Fabio Fredianelli disse:

troquei e recompilei, no pdf o salto foi duplo, e na pagina da prefeitura bugou o site... passou a mostrar a mensagem abaixo, ( pergunto , nao devia ser \\n\s ? , no arquivo enviado esta apenas \n\s , uma barra apenas.

  • An error occurred during local report processing.
    • An unexpected error occurred in Report Processing.
      • Parameter is not valid.

Por favor, edite para o valor correto, reinstale o ACBr e faça novo teste.

Na mensagem inicial você tinha colocado \\s\n, coloquei \s\n pois geralmente não tem esta barra a mais.

 

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

  • Membros Pro
Postado (editado)

Bom dia Diego, sim você estava certo é com uma barra apenas, o erro que dava no site era bug do site mesmo, agora na visualização da prefeitura esta quebrando linha, entretanto o pdf gerado pelo componente continua tudo em uma linha, tem alguma propriedade para ativar que faça com que o ; vire #13#10 apenas para o pdf/impressão ?

Pois o usuário não vai lembrar que não adianta dar o enter do dbmemo deve dar um ; então estou substituindo o #13#10 por ; , mas como reverter isso apenas para a impressão do componente ? ja tentei deixar os dois #13#10; , mas sem resultado... o que gostaria é que o pdf gerado pelo componente fosse igual ou semelhante a visualização da prefeitura. Na cidade de Caçador não preciso usar nada disso, bato o enter no memo e tudo certo sai tudo igual o pdf e a visualização,  acho que eu que estou bugado agora...

Agradeço antecipadamente pela ajuda.

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

  • Consultores
57 minutos atrás, Fabio Fredianelli disse:

Bom dia Diego, sim você estava certo é com uma barra apenas, o erro que dava no site era bug do site mesmo, agora na visualização da prefeitura esta quebrando linha, entretanto o pdf gerado pelo componente continua tudo em uma linha, tem alguma propriedade para ativar que faça com que o ; vire #13#10 apenas para o pdf/impressão ?

Pois o usuário não vai lembrar que não adianta dar o enter do dbmemo deve dar um ; então estou substituindo o #13#10 por ; , mas como reverter isso apenas para a impressão do componente ? ja tentei deixar os dois #13#10; , mas sem resultado... o que gostaria é que o pdf gerado pelo componente fosse igual ou semelhante a visualização da prefeitura. Na cidade de Caçador não preciso usar nada disso, bato o enter no memo e tudo certo sai tudo igual o pdf e a visualização,  acho que eu que estou bugado agora...

Agradeço antecipadamente pela ajuda.

Bom dia!

Pelo que pude apurar, o componente já faz esse processo de substituição do que você definiu como quebra de linha pela quebra padrão.

Por favor, pode disponibilizar o XML que está apresentando o problema para que possa realizar um teste em meu ambiente?

Se julgar que o mesmo tenha dados sensíveis e não possa ser disponibilizado direto aqui, envie para [email protected] com o link do tópico do fórum no corpo do e-mail para posterior identificação.

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

XML recebido, vou fazer alguns testes em meu ambiente e retorno assim que descobrir algo.

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

O seu XML contém uma "string pura" sem os caracteres de quebra de linha.

Por isso o componente não está fazendo a quebra de linha.

Veja o qual é o comportamento do componente para quebra linha.

image.png

Com o seu XML quando ele passa por este trecho, ele não encontra os caracteres de quebra de linha e por isso não faz a substituição.

Tente fazer um teste substituindo a discriminação pelo texto:

<Discriminacao>ELABORACAO DE PROJETOS DE ENGENHARIA. \s\n\s\n\s\n ISS RECOLHIDO PELO PRESTADOR DE SERVICO CONFORME LEI COMPLEMENTAR 116/2003 ART.3 DO CTN.\s\n\s\n\s\nDADOS PARA DEPOSITO: BANCO DO XXXXXXXXXXXX:(XXX) AGENCIA XXXX CONTA XXXXX-X \s\n\s\n FAVORECIDO: ORACIDES ADRIANO ENGENHARIA ESPECIAL LTDA.</Discriminacao>

Veja que nele consta os caracteres de quebra de linha.

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

  • Membros Pro
Postado (editado)

Revirei o codigo e nao encontrei nada que possa estar removendo o #13#10, apenas passo o texto do memo para o componente

Servico.Discriminacao := edservico.Lines.text;  //edServico.Text;

tentei assim também ,  Servico.Discriminacao := edservico.text;  , mas sem efeito algum.

Existe alguma propriedade Quebralinhaemdetalhamento, como existe no acbr.nfe ?

Outra coisa , a impressao estou fazendo depois de enviar a nota , poderia o acbr estar usando o xml de retorno da prefeitura ? e o simpliss estar removento o #13#10 ?

  ACBrNFSeX1.Emitir(vNumLote, meUnitario, false);
  ChecarResposta(tmGerar);
  ACBrNFSeX1.NotasFiscais.ImprimirPDF;
 

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

  • Consultores

Boa tarde @Fabio Fredianelli,

A regra é muito simples.

1. Ao alimentar o campo discriminação você sempre vai usar o caractere ";" (ponto e virgula) no texto como quebra de linha, conforme consta no programa exemplo.

2. O componente ao gerar o XML do RPS faz a substituição do ponto e virgula pelo caractere ou sequencia de caracteres que esta configurado para o provedor em questão na unit Provider do mesmo. caso não conste nenhuma configuração referente a quebra de linha é utilizado o ponto e virgula mesmo.

3. O componente ao ler o XML da NFS-e faz a substituição do caractere ou sequencia de caracteres que esta na configuração pelo ponto e virgula.

4. O componente ao imprimir o DANFSE faz a substituição do ponto e virgula pela sequencia #10#13.

Observação: Só podemos usar a sequencia #10#13 no XML do RPS se o mesmo não for assinado e nem o lote, caso contrario na devemos usar e caso seja incluído o componente os remove antes de assinar o XML, isso é feito por questões de normas.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Postado (editado)

Boa tarde Italo, entao, o arquivo do provedor Simpliss nao estava configurado para conter o \n\s, após o Diego enviar o novo , passou a saltar a linha na visualização da prefeitura (Perfeito) , isso sem colocar nenhum ' ; ', acho que o componente esta trocando o #13#10 poir ';' , o que no meu ponto de vista é o ideal mesmo... visto que o usuário não vai lembrar nunca de digitar o ; para saltar de linha... 

O meu problema agora é que o pdf gerado pelo componente não esta saltando de linha , por isso achei que podia ser alguma configuração que deixei de fazer,  o código do programa é basicamente o programa de exemplo mesmo... 

Vou tentar debugar o acbr, mas conheço muito pouco do funcionamento interno do componente.

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

  • Membros Pro

Sim claro, mas essa parte ja esta superada com a correção do arquivo de provedor, a visualizacao no site esta saltando correto , com ; ou somente com o #13#10 pula,  o bode agora é fazer o comando imprimirpdf , obedecer .... nao esta saltando nada , fica uma linha só continua.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde!

Conforme indicado no print disponibilizado acima, a rotina que lê o XML busca os caracteres correspondentes a quebra de linha no campo <discriminacao> no XML para fazer a substituição deles pela referida quebra.

Então no caso do SimplISS, por exemplo, ele busca por \n\s dentro da string para fazer a troca.

No XML que você disponibilizou, a string não tem esses caracteres no campo, por isso ele não encontrou e não fez a substituição.

Experimente adicionar \s\n\s\n na <discriminacao> e veja se ele não pula a linha.

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

  • Membros Pro
Postado (editado)

Isso mesmo Diego, some tudo , o ; e o \s\n 

Enviei assim com ; e com o \s\n\s\n digitado entre as linhas na discriminação, no xml some tudo fica somente o texto, agora não sei dizer se isso é a simpliss que faz ou o acbr ?

 

image.thumb.png.7568c1783157863f282d0857de31d88b.png

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

  • Consultores
17 horas atrás, Fabio Fredianelli disse:

Isso mesmo Diego, some tudo , o ; e o \s\n 

Enviei assim com ; e com o \s\n\s\n digitado entre as linhas na discriminação, no xml some tudo fica somente o texto, agora não sei dizer se isso é a simpliss que faz ou o acbr ?

 

image.thumb.png.7568c1783157863f282d0857de31d88b.png

Bom dia!

Eu não tenho dados válidos para emissão, no entanto, fiz um teste com o programa exemplo, onde na rotina que alimenta a discriminação, atribuí o seguinte valor:

Citar

      Servico.Discriminacao := 'discriminacao I; discriminacao II;' +
                               'discriminacao III; discriminacao IV';

O XML do RPS que foi gerado ficou dessa forma:

<Discriminacao>discriminacao I\s\n discriminacao II\s\ndiscriminacao III\s\n discriminacao IV</Discriminacao>

Se no seu caso também está acontecendo assim, ele chega a gerar o XML do RPS com os caracteres de quebra de linha, mas quando recebe o XML da NFSe correspondente a <Discriminacao> não tem mais eles.

Defina a configuração para salvar os envelopes da requisição.

Elas são:

ACBrNFSeX.Configuracoes.Arquivos.PathSalvar := 'Caminho onde vai salvar os envelopes';
ACBrNFSeX.Configuracoes.WebServices.Salvar := True;

Com essas configurações definidas, faça um novo teste.

O componente vai gerar agora para você os arquivos de envelope. Eles vão ter -soap no nome. Um deles será o envelope de envio e outro de retorno.

Confira no -soap de retorno se não tem o \s\n no campo discriminação. Se não tiver, pode questionar o provedor, pois eles estão removendo o \s\n no momento de montar o XML da NFSe.

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

  • Este tópico foi criado há 129 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.