Estou estudando o CNAB240 V08.4 (Centro Nacional de Automação Bancária - FEBRABAN) para troca de arquivos de remessa e retorno para implementar no meu Gerador de Boleto ASP.Net, não é simples, principalmente por causa no numero de campos, e também por eu já estar fazendo em forma de componente, tenho que disponibilizar a gerencia de todos os campos.
Para isso criei uma classe por Template: Reg<T>(), onde T, pode ser qualquer enumerador.
Também criei uma classe para atributos: RegFormat(), para especificar os parâmetros do enumerado, o resultado final é elegante.
Para a NF-e estou usando a mesma classe, e de agora em diante qualquer tipo de troca de arquivos em formato texto sem delimitador, estarei usando esta classe que ajuda muito.
Veja o exemplo abaixo:
Reg<CNAB240ArquivoHeader> regArqHeader = newReg<CNAB240ArquivoHeader>();
regArqHeader[CNAB240ArquivoHeader.Controle_Banco] = 237;
regArqHeader[CNAB240ArquivoHeader.Empresa_Nome] = "IMPACTRO Informática";
string cOut = regArqHeader.Line + "\r\n";
O simples código acima gera uma linha de registro, com as 240 posições de acordo com a estrutura definida com os atributos de cada item do enumerados.
O CNAB240 possui várias estruturas de registro no mesmo arquivo.
Eu vou resumir e indicar as classes de cada estrutura a critério de exemplo apenas, para uma melhor compreensão baixe o arquivo completo.
O CNAB prevê várias operações de arquivos, assim de acordo com cada tipo de operação é exigido um “segmento” estruturado específico
Header e Trailer Arquivo CNAB240
2.2 - Header e Trailer do Arquivo
Header Arquivo
enum
CNAB240ArquivoHeader {}…

Trailer Arquivo
enum
CNAB240ArquivoTrailer {}…

Header e Trailer do Lote de Cobrança
3.1.3 - Pagamento de Títulos de Cobrança
Header Cobrança
enum
CNAB240CobrancaHeader{}…

Registro Detalhe - Segmento J (Obrigatório - Remessa / Retorno)
enum
CNAB240CobrancaDetalhe{}…

Trailer Cobrança
enum
CNAB240CobrancaTrailer{}…
