Pesquisar na Comunidade
Showing results for tags 'segmentos'.
Encontrado 1 registro
-
Segmento S - Santander e Banco do Brasil - Mensagem C 200
um tópico no fórum postou rodrigod6 ACBrBoleto
Boa tarde, Estou precisando enviar a mensagem do Segmento S, onde possui 200 colunas, para envio no Santander e no Banco do Brasil. Fiz uma análise do fonte da Caixa. Temos no Segmento R - de 40 colunas o campo mensagem 3 (Coluna 100 a 139 - Mensagem 3) - é enviado em branco. {SEGMENTO R} Result:= Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) ... PadRight('', 40, ' ') + // 100 a 139 - Mensagem 3 No segmento S é enviado Mensagem 5, 6, 7, 8 e 9, totalizando 200 colunas de mensagem {SEGMENTO S} if (Mensagem.Count > 0) then begin Result := Result + #13#10 + ... MontarInstrucoes2 + // 019 - 058 / Mensagem 5 // 059 - 098 / Mensagem 6 // 099 - 138 / Mensagem 7 // 139 - 178 / Mensagem 8 // 179 - 218 / Mensagem 9 No Banco do Brasil e no Santander, não temos a programação das mensagens no segmento S. No Santander, no segmento S temos a rotina MontarInstrucoes2, mas gera as 200 colunas em branco. Seguindo o exemplo da Caixa, talvez mudando de: function MontarInstrucoes2: string; begin with ACBrTitulo do begin if Mensagem.Count <= 2 then begin // Somente duas linhas, foi montado o MonarInstrucoes1 Result := PadRight('', 200, ' '); // 5 registros Exit; end; Para: function MontarInstrucoes2: string; begin with ACBrTitulo do begin if (Mensagem.Count <= 2) then begin if (Mensagem.Count = 2) then Result := Copy(PadRight(Mensagem[0] +' / '+ Mensagem[1], 200, ' '), 1, 200) else Result := Copy(PadRight(Mensagem[0], 200, ' '), 1, 200); Exit; end; Já no Banco do Brasil, não é gerado nem a Mensagem 3 e nem a mensagem 5, 6, 7, 8 e 9, vejamos o Segmento R: {SEGMENTO R} Result:= Result + #13#10 + ... PadRight('',110,' ') + // 90 - 199 Obs.: Segmento S não tem. Então a sugestão de alteração seria mudar os 110 em branco para 10, 40 e 60: No segmento S: {SEGMENTO R} Result:= Result + #13#10 + ... PadRight('',10,' ') + // 90 - 99 - Informação ao Sacado PadRight(AMensagem,40,' ') + // 100 - 139 - Mensagem 3 PadRight('',60,' ') + // 140 - 199 - Não tratado Se no segmento S a nova programação: {SEGMENTO S} if (Mensagem.Count > 0) then begin Result := Result + #13#10 + IntToStrZero(ACBrBanco.Numero, 3) + // 001 a 003 - Código do banco '0001' + // 004 - 007 - Numero do lote remessa '3' + // 008 - 008 - Tipo de registro IntToStrZero((3 * ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo))+ 4 ,5) + // 009 - 013 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) 'S' + // 014 - 014 - Cód. Segmento do registro detalhe Space(1) + // 015 - 015 - Reservado (uso Banco) ATipoOcorrencia + // 016 - 017 - Código de movimento remessa ifthen( (Mensagem.Count <= 2), '0', '8' ) + // 018 - 018 - Identificação da impressão ifthen( (Mensagem.Count <= 2), '00', '' ) + // 019 - 020 - Reservado (uso Banco) para tipo de impressão 1 e 2 MontarInstrucoes2 + // 019 - 058 - Mensagem 5 // 059 - 098 - Mensagem 6 // 099 - 138 - Mensagem 7 // 139 - 178 - Mensagem 8 // 179 - 218 - Mensagem 9 ifthen( (Mensagem.Count <= 2), '00' + Space(78) ,Space(22)); // 219 - 240 - Reservado (uso Banco) para tipo de impressão 3 end; // 161 - 240 - Reservado (uso Banco) para tipo de impressão 1 e 2 {SEGMENTO S - FIM} Segue os arquivos modificados, para verificar a possibilidade de alteração para o envio das Obs no Segmento S do Banco Santander e Banco do Brasil. Obrigado, Rodrigo ACBrBancoSantanderCorrecao.pas ACBrBancoBrasilCorrecao.pas- 1 reply
-
- 1
-
- acbrboleto
- acbrbancobrasil
- (e 3 mais)