Postagem em destaque
- Gerar link
- X
- Outros aplicativos
BalckTDN :: Customizando a Interface da DANFE e NFeSefaz
DANFE e NFeSefaz, dois “desprazeres” que faria questão de não conhecer. Mas, infelizmente, um mal necessário.
Ajusta “Layout” aqui, um “pixel” para direita, outro para esquerda. As vezes a “fonte” que não agrada ou uma regra específica, não tratada no sistema padrão, que deve ser customizada e tudo “de acordo” com a legislação.
Um parto sem sim. Um Filho que nasce várias vezes. Um verdadeiro “Frankenstein” (desses que não tem um pai só).
Recentemente a TOTVS lançou uma nova versão do trio: DANFEII, DANFEIII e NFESEFAZ e, vamos lá fazer a comparação e os devidos ajustes e “compatibilização”. Afinal, o “Pai da Criança” nos forneceu um novo “template” e temos que seguir as especificações. E como ficam as nossas alterações?
BlackTDN, usando “diretivas do Pre-Processador” vai sugerir uma ideia de como customizar o “famigerado Trio” de forma a manter a compatibilidade com as alterações legais ou “bugais” fornecidas pela TOTVS de forma a manter as suas versões compatíveis e personalizadas.
Nos exemplos que se seguem duas diretivas foram definidas: TOTVS_DANFE e CUSTOM_DANFE. Elas servirão para separar e “unificar” ambas as versões: A PADRÃO e a CUSTOMIZADA.
Com elas será possível ter uma versão “IGUALZINHA” a da TOTVS e com todas as modificações advindas das particularidades de seus “clientes.
Aos exemplos:
Considerando o DANFEII. Primeiro declaramos as diretivas que serão utilizadas no corpo do programa para diferenciar a versão TOTVS e a versão CUSTOM. Na realidade a única e real Diretiva é a CUSTOM_DANFE uma vez que a TOTVS_DANFE será usada única e somente para a comparação (A não ser que queira validar a versão TOTVS):
A partir da declaração, tudo o que for modificado no arquivo deverá estrar entre:
#IFDEF TOTVS_DANFE
//…. para o código padrão
#ELSE //CUSTOM_DANFE
//… para o código modificado
#ENDIF
ou
#IFDEF CUSTOM_DANFE
//… para o código que só existirá na versão customizada.
#ENDIF
Fazendo isso poderemos usar uma ferramenta de comparação de arquivos fontes (winmerge, ap7diff, etc.) para comparar e ajustar apenas o necessário mantendo o nosso código 100% compatível com a versão disponibilizada pelo fornecedor, no caso a TOTVS, e 100% customizável e de fácil gerenciamento e manutenção.
etc…
Dessa forma, manteremos no mesmo arquivo fonte a versão “ORIGINAL” e a versão customizada de forma a:
1) Poder comparar e “compatibilizar” com novas versões;
2) Saber EXATAMENTE o que foi “customizado”.
Um exemplo do código “padrão” versus “customizado” poderá ser obtido ao clicar em: TOTVS exemplo customização DANFE e NFeSefaz. (utilize a ferramenta de comparação de código fonte de sua preferência para comparar os códigos de exemplo para um melhor entendimento da técnica utilizada).
Vale lembrar que o código disponibilizado para “download” tem a finalidade apenas didática e para demonstrar a “técnica” de customização e a “boa” prática. O código “OFICIAL” deverá ser “baixado” a partir do portal da fornecedora da solução.
[]s
иαldσ dj
- Gerar link
- X
- Outros aplicativos
Comentários
Postagens mais visitadas
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- X
- Outros aplicativos
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- X
- Outros aplicativos
Naldo, na realidade essa técnica é interessante não apenas para DANFE e NFeSped mas para qualquer programa fonte fornecido pela TOTVS que possa ser modificado pelo usuário. Basta apenas definir a Diretiva para o Pré-Processador e Pronto.
ResponderExcluirBoa Sacada.
Interessante mesmo. Usei essa técnica para customizar o Recibo de Pagamento da Folha. Levando em consideração que ele tem bastantes alterações por porte do pessoal do RH, fiz o seguinte:
Excluir#IFNDEF TOTVS_RECIBO
#DEFINE CUSTOM_RECIBO
#ENDIF
e o que é padrão fica entre a diretiva TOTVS_RECIBO, caso contrário, CUSTOM_RECIBO...
Naldo, de fato uma bela sacada. Simples mas eficiente.
tks por #compartilhar#.
Na verdade perdi meu código fonte do DANFE e queria saber se este aqui está bom e bonitinho. E como colocar padrão CUSTOM ?? ao invés do da totvs
ResponderExcluirPrimeiramente, obrigado pelo belo post! Uma dúvida para usar essas diretivas, eu preciso fazer alguma configuração no meu ide?
ResponderExcluirObrigado!