Jump to content

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

EMBarbosa

Vem aí: Refactoring das impressões DF-e

Recommended Posts

Olá pessoal.

   Temos novidades na área das impressões dos DF-e.

   Com o objetivo de facilitar o trabalho e reduzir a duplicação de código, estamos promovendo um refactoring nas classes de impressões de DF-e. Essas alterações ainda não foram enviadas ao SVN, mas queremos avisar com antecedência para que todos possam se preparar.

   Fizemos um vídeo para explicar os objetivos e as principais alterações. Você pode acessar aqui:

   Mas... se você não é muito fã de vídeos, vou resumir os principais pontos nesse tópico.

   Os objetivos desse refactoring são:

  • Diminuir código duplicado;
  • Padronizar os componentes de impressão;
    • Isso vai simplificar o trabalho com componentes diferentes;
    • Minimiza a necessidade de aprender vários detalhes diferentes;
  • Melhor organização de código;
    • Mais fácil pra você ler, entender e debugar o código;
  • Lançar base para melhorias futuras;

   Podemos resumir a principal diferença como: Agora há classes para padronizar o comportamento mesmo em componentes de impressão diferentes.

   Na nova estrutura os componentes de impressão herdam da classe base TACBrDFeReport (unit ACBrDFeReport.pas) que se encontra no pacote ACBrDFeComum. Esta classe visa englobar todas as propriedades e/ou métodos que são usados por todas as impressões DFe. Por exemplo: PathPDF, CasasDecimais, etc..

   Se assemelha a esse organograma:

image.png

   Veja algumas propriedades que foram alteradas, removidas ou mudaram de nome:

image.png

image.png

Essas são as modificações principais. Podem haver outras, mas acreditamos que são menores e darão menos dor de cabeça.

A previsão é enviar ao SVN antes do Dia do ACBr. Assim que enviarmos ao SVN vou postar uma nova mensagem aqui.

  • Like 7

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

A ideia é ótima mesmo, as melhorias serão bem vindas.
A preocupação mesmo é saber o que vai afetar o código de quem está já usando, no nosso caso por exemplo, usamos Delphi, gerando DLL Fiscais, com todos os recursos, e inclusive com Impressão, então no momento do código, criamos o objeto, e vou alimentando as propriedades, um deles, e apontar para o obj "principal,  NFE, MDFe, etc"  qual é o objeto "impressor", isso vai mudar ?  Se sim, poderia soltar um beta antes, para quem usa usa os objetos instanciando em run time por código, poder ajustar.


 

  • Like 1

Share this post


Link to post
Share on other sites
1 hora atrás, [email protected] disse:

A preocupação mesmo é saber o que vai afetar o código de quem está já usando

Bom, essa é a ideia do post e do vídeo: mostrar com antecedência quais propriedades críticas que foram alteradas (seja os nomes ou quaisquer outras mudanças).

1 hora atrás, [email protected] disse:

usamos Delphi, gerando DLL Fiscais

Acho que não entendi o que quer dizer DLL Fiscais.

1 hora atrás, [email protected] disse:

então no momento do código, criamos o objeto, e vou alimentando as propriedades, um deles, e apontar para o obj "principal,  NFE, MDFe, etc"  qual é o objeto "impressor", isso vai mudar ?

Essa frase também está confusa. Talvez queira dizer:

Citar

Então, no momento do código, criamos o objeto e vou alimentando as propriedades de cada um deles. Também aponto para o objeto "principal,  NFE, MDFe, etc" qual é o objeto "impressor".

Isso vai mudar?

Se for isso, a resposta é: Não, não vai mudar. Conforme mostrado no vídeo e no diagrama de exemplo apresentado a maior parte das alterações são classes intermediárias para agrupar o comportamento e, assim, as propriedades comuns.

1 hora atrás, [email protected] disse:

, poderia soltar um beta antes, para quem usa usa os objetos instanciando em run time por código, poder ajustar.

Na verdade, sempre que um código é enviado ao SVN, você não precisa atualizar automaticamente código do seu aplicativo sem testar. Você pode fazer seus testes primeiro e depois atualizar seu código. Nosso desenvolvimento é "trunk based". Por isso não preocupamos tanto com um lançamento beta.


[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites
26 minutos atrás, EMBarbosa disse:

Bom, essa é a ideia do post e do vídeo: mostrar com antecedência quais propriedades críticas que foram alteradas (seja os nomes ou quaisquer outras mudanças).

Acho que não entendi o que quer dizer DLL Fiscais.

Essa frase também está confusa. Talvez queira dizer:

Se for isso, a resposta é: Não, não vai mudar. Conforme mostrado no vídeo e no diagrama de exemplo apresentado a maior parte das alterações são classes intermediárias para agrupar o comportamento e, assim, as propriedades comuns.

Na verdade, sempre que um código é enviado ao SVN, você não precisa atualizar automaticamente código do seu aplicativo sem testar. Você pode fazer seus testes primeiro e depois atualizar seu código. Nosso desenvolvimento é "trunk based". Por isso não preocupamos tanto com um lançamento beta.

OBS: Os produtos criados não são revendidas, foram criadas apenas para consumo interno do software legado, e quem sabe num futuro próximo se tiver oportunidade, tempo , custo e viabilidade, reescrever o sistema legado em Delphi ou Lazarus, os fontes DLL Fiscais criados, serão todos aproveitados.

Entendi, . só explicando a sua pergunta. 
"Acho que não entendi o que quer dizer DLL Fiscais"
Somos uma empresa que tem um software legado, com muitos clientes brasil à fora, e com uma linguagem que não é delphi, pascal, e só poderia ser consumido os recursos ACBr pelo Monitor, porém optamos por fazer DLL ,  específicas para cada ambiente fiscal. O aplicativo chamava uma DLL que antes era paga, a ideia foi construir a nossa própria ferramenta, feita em Delphi consumido os recursos ACBr, retirando um custo desnecessário.
Motivo Esse foi que mostrei que seria necessário e até justo, o investimento no SAC do projeto. 

  • Like 1

Share this post


Link to post
Share on other sites
2 minutos atrás, [email protected] disse:

Entendi, . só explicando a sua pergunta. 
"Acho que não entendi o que quer dizer DLL Fiscais"
Somos uma empresa que tem um software legado, com muitos clientes brasil à fora, e com uma linguagem que não é delphi, pascal, e só poderia ser consumido os recursos ACBr pelo Monitor, porém optamos por fazer DLL ,  específicas para cada ambiente fiscal. O aplicativo chamava uma DLL que antes era paga, a ideia foi construir a nossa própria ferramenta, feita em Delphi consumido os recursos ACBr, retirando um custo desnecessário.
Motivo Esse foi que mostrei que seria necessário e até justo, o investimento no SAC do projeto

Joia. Agora ficou mais claro. Obrigado por explicar.

Como comentário pessoal, acho que vocês vão gostar quando a ACBrLib estiver mais completa. Graças ao apoio de pessoas como vocês que resolveram adotar o SAC, estamos desenvolvendo a ACBrLib que terá tanto DLLs como classes acessíveis em várias linguagens.

  • Like 3

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

Parabéns pela iniciativa e principalmente por postar com antecedência as modificações, pois na correria do dia, 

nem sempre atentamos para modificações.

Duas coisas, sempre achei que podia melhorar:

1 -Quadro Dados do Emitente:

Além da posição da Logo e o tamanho que foram alterados, acho que a justificação do texto poderia ser parametrizável(direita, centralizado, esquerdo)

Se não usarmos logo, tudo poderia ser centralizado, informado no componente. E no caso do telefone ir tudo para um campo junto com os outros dados do endereço do emitente.

Além da tamanho da fonte da Razão Social, seria importante a mesma configuração para o nome de Fantasia.

Então, os dados do emitente teriam quatro eixos: 

1- LOGO

2 - NOME DE FANTASIA

3 - RAZÃO SOCIAL

4 - ENDEREÇO.

Todos teriam parâmetros que auxiliariam o visual da nota. 

2 - Um botão no Preview para salvar em PDF, que é uma coisa que sempre me pedem, e se não fosse viável o novo botão,

pelo menos a opção default no Salvar do Preview do Fortes Report  fosse PDF. 

Share this post


Link to post
Share on other sites
38 minutos atrás, marcio-carneiro disse:

1 -Quadro Dados do Emitente:

Além da posição da Logo e o tamanho que foram alterados, acho que a justificação do texto poderia ser parametrizável(direita, centralizado, esquerdo)

Se não usarmos logo, tudo poderia ser centralizado, informado no componente. E no caso do telefone ir tudo para um campo junto com os outros dados do endereço do emitente.

Além da tamanho da fonte da Razão Social, seria importante a mesma configuração para o nome de Fantasia.

Então, os dados do emitente teriam quatro eixos

1- LOGO

2 - NOME DE FANTASIA

3 - RAZÃO SOCIAL 

4 - ENDEREÇO.

Todos teriam parâmetros que auxiliariam o visual da nota.  

Me parece interessante.

 

39 minutos atrás, marcio-carneiro disse:

2 - Um botão no Preview para salvar em PDF, que é uma coisa que sempre me pedem, e se não fosse viável o novo botão,

pelo menos a opção default no Salvar do Preview do Fortes Report  fosse PDF. 

Infelizmente, acho que esse botão só seria possível alterando o Fortes.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites
Citar

pelo menos a opção default no Salvar do Preview do Fortes Report  fosse PDF. 

Essa questão citada é bem simples de resolver.

Basta atribuir ao SelectedFilter o filtro RLPDFFilter1;

      if FMostrarPreview then
       SelectedFilter := RLPDFFilter1;

 

  • Like 2

Share this post


Link to post
Share on other sites

O segundo vídeo mostrando um exemplo de como atualizar já está on-line.

Vejam:

A previsão é que até a tardinha já esteja no SVN os componentes já alterados.

 

  • Like 3

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites

O Refactoring já está no ar. Vejam o seguinte tópico:

 

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites
Em 30/10/2018 at 15:09, Waldir Paim disse:

Essa questão citada é bem simples de resolver.

Basta atribuir ao SelectedFilter o filtro RLPDFFilter1;

      if FMostrarPreview then
       SelectedFilter := RLPDFFilter1;

 

@EMBarbosa

Vou verificar como ficou essa situação do filtro para PDF e anexo a unit com a correção aqui. 

  • Like 1

Share this post


Link to post
Share on other sites
Em 25/01/2019 at 16:25, Waldir Paim disse:

@EMBarbosa

Vou verificar como ficou essa situação do filtro para PDF e anexo a unit com a correção aqui. 

Segue unit em anexo.

Na unit ACBrNFeDANFeRL.pas quando criar o form ja atribui o Filtro para PDF.

Nas outras duas uma remoção de hint.

 

ACBrNFeDANFeRLSimplificado.pas

ACBrNFeDANFeRLPaisagem.pas

Share this post


Link to post
Share on other sites
1 hora atrás, Waldir Paim disse:

Segue unit em anexo.

Na unit ACBrNFeDANFeRL.pas quando criar o form ja atribui o Filtro para PDF.

Nas outras duas uma remoção de hint.

 

ACBrNFeDANFeRLSimplificado.pas

ACBrNFeDANFeRLPaisagem.pas

Essas Alterações foram enviadas ao SVN com algumas modificações na parte de remoção de hints.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...