Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3830 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Boa tarde.

Um cliente meu fechou um contrato de cobrança com o Banco Santander , que vai envolver o CNAB240. O mesmo não está implementado.

Estou efetuando a implementação, mas me deparei com um problema.

Existem blocos no Header, Transação e Trailler do arquivo que deve ser informado mais de 1. Estou informando os registros com Quebra de Linha "sLineBreak", mas a funcão Add do stringlist da remessa "não entende" a quebra de linha

Tivemos esse problema com o Itaú CNAB400 quando eu implementei a geração desse. Nessa época, a Juliana fez uma alteração que, quando for CNAB400 passa-se a stringlist do retorno como parâmetro, transformado as functions em procedures.

Minha pergunta: Já estou com a mão na massa e com a geração do cnab240 do santander "pronta" (falta testar e fazer a leitura do mesmo), posso efetuar essas mudanças (Em todas as unit's)?

Teriamos que efetuar a mudança em todas as unit's dos bancos (E sim, estou com meu ACBr Atualizado).

Aguardo retorno para ver como devo fazer. Pois caso os moderadores não concordarem com essa mudança, precisarei "arrumar" uma forma de contornar esse problema.

 

Obs: Os métodos virtuais seriam (TACBrBancoClass):

procedure GerarRegistroHeader400(NumeroRemessa : Integer; ARemessa:TStringList); Virtual;
procedure GerarRegistroHeader240(NumeroRemessa : Integer; aRemessa: TStringList); Virtual;
procedure GerarRegistroTransacao400(ACBrTitulo : TACBrTitulo; aRemessa: TStringList); Virtual;
procedure GerarRegistroTransacao240(ACBrTitulo : TACBrTitulo; aRemessa: TStringList); Virtual;
procedure GerarRegistroTrailler400(ARemessa:TStringList); Virtual;
procedure GerarRegistroTrailler240(ARemessa:TStringList); Virtual;

Atenciosamente.

Editado por jeter.rabelo

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado

Rafael.

 

Na realidade, ele funciona no sentido de "quebrar" a linha, mas sim a função count para se totaizar a quantidade de registros no total é que não retorna corretamente.

 

No trailler do arquivo é necessário informar a quantidade de linhas do arquivo. E essas linhas com CRLF não são contadas.

 

Foi por esse motivo que foi modificado o cnab400.

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado

Simples amigo tenho 10 linhas no Stringlist 2 delas são o header e o trailer valor 2, o resto são titulos, cada titulo vale por 3 linhas(estou usando o BB como exemplo), que dificuldade vc vê nisso.

 

(2 * 2) + (8 * 3)  = 28 linhas.

 

é so olhar a unit do BancodoBrasil q la tem o codigo.

 

Postado

Vou "desenhar" a situação:

Header: 2 blocos
- Header arquivo
- header Lote

Transação: 4 blocos
- P
- Q
- R
- S

Trailler: 2 Blocos
- trailler Lote
- Trailler Arquivo

Ou seja, "Posso" ter 2 + 4 + 2 linhas para apenas um boleto, ou 2 + (Boletos X 4) + 2. Ou seja, simples a conta não?

Agora, vamos combinar: Ter que fazer conta de quantas linhas foram inseridas, somar, multiplicar, dividir achar a raiz quadrada, apenas para informar a quantidade total de registros, quando o StringList, que já é passado como parâmatero no último método me dá essa informação, é uma "POG" né não?

Mas, a pergunta foi apenas uma estou disposto a ajudar a modificar as unit's, modificando todas as unit's, como eu disse no primeiro post: "Pois caso os moderadores não concordarem com essa mudança, precisarei "arrumar" uma forma de contornar esse problema."

Pelo jeito a resposta será não correto?

 

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

Postado

Não é "POG" é a solução correta, não precisa raiz quadrada precisa de cérebro e no seu caso falta isso pelo visto, afinal para que usar uma linha de código se posso modificar todo o componente.

Eu não comento, mas nada. espere a juliana pois a mesma é a responsável pelo componente.

 

Postado (editado)

Não é "POG" é a solução correta, não precisa raiz quadrada precisa de cérebro e no seu caso falta isso pelo visto, afinal para que usar uma linha de código se posso modificar todo o componente.

Eu não comento, mas nada. espere a juliana pois a mesma é a responsável pelo componente.

"Amigo", deixa eu te dizer uma coisa. Apelou perdeu.

 

Realmente, meu cérebro é muito ruim mesmo. Pois se ele fosse bom, eu não perderia tempo em "discutir" com alguém que não tem um pingo de educação, como você acaba de demonstrar.

 

Eu fiz apenas uma pergunta, bastava responder SIM ou NÃO.

 

Outra coisa, eu propus uma solução que, não sei se você leu o primeiro tópico inteiro, a Juliana havia feito, e não foi preciso "modificar todo o componente" para isso, e sim algumas linhas de código, nada mais do que isso.,

 

Outra coisa, posso não ter estudado na faculdade que você estudou, posso não ter tido as oportunidades que você teve, mas uma coisa eu aprendi e você não. TER EDUCAÇÃO.

 

Falei em faculdade né? Pois é, nem isso eu tenho. 

 

Agora, pensando cá com meus botões, acho que você tem razão. Sou um burro mesmo.

 

Mas, na medida do possível, mesmo com a minha burrice, vou continuar ajudando o ACBr como fiz algumas vezes.

 

Pessoas como você existem para nos ensinar que nesse mundo, devemos ter paciência.

 

Mas beleza, sem mais delongas nem nhém nhém nhém, finalizo essa pedindo desculpas pela ironia (quando escrevi: '"POG" né não?'), cuja a qual você não soube interpretar. Quem é "burro" mesmo?

 

Aos demais usuários/moderadores/administradores, meus mais sinceros pedidos de desculpas..Se depender de mim, isso nunca mais ocorrerá.

 

Atenciosamente.

Editado por jeter.rabelo

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

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