pjunior's post in Boleto Santander - Mensagens was marked as the answer
7 Janeiro
Beleza, é que como foi no meio do código, achei melhor colar ela toda, já na posição certa e marcar com negrito o que foi alterado.
segue:
var:
LMensagem4, LMensagem5, LMensagem6 : String;
linha 927:
//2ª linha de mensagem
LMensagem4 := '';
LMensagem5 := '';
LMensagem6 := '';
if Mensagem.Count >= 4 then
LMensagem4 := TiraAcentos(Mensagem[3]);
if Mensagem.Count >= 5 then
LMensagem5 := TiraAcentos(Mensagem[4]);
if Mensagem.Count >= 6 then
LMensagem6 := TiraAcentos(Mensagem[5]);
wLinha:= '2' + // 001-001 "2" - Recibo Pagador
space(16) + // 002-017 Reservado Banco
PadLeft(Cedente.CodigoTransmissao,20,'0') + // 018-037 Agencia / Conta Movimento / Conta Cobranca
Space(10) + // 038-047 Reservado Banco
'01' + // 048-049 SubRegistro "01"
PadRight(LMensagem4, 50) + // 050-099 Mensagem Variavel
'02' + // 100-101 SubSequencia "02"
PadRight(LMensagem5, 50) + // 102-151 Mensagem Variavel
'02' + // 152-153 SubSequencia "02"
PadRight(LMensagem6, 50) + // 154-203 Mensagem Variavel
Space(179) + // 204-382 Reservado Banco
'I' + // 383-383 Identificação do Complemento
PadLeft(Copy( Cedente.Conta, length( Cedente.Conta ),1 ), 1, '0') +
PadLeft( Cedente.ContaDigito, 1, '0' ) + // 384-385 Complemento
Space(9) + // 386-394 Reservado Banco
IntToStrZero( aRemessa.Count + 1 , 6 ); // 395-400 Sequencial de Registro
if (LMensagem4 <> '') or (LMensagem5 <> '') or (LMensagem6 <> '') then
aRemessa.Add(UpperCase(wLinha));
aí termina antes de começar a parte do PIX.
segue o arquivo em anexo:
ACBrBancoSantander.pas