Ir para conteúdo
  • Cadastre-se

dev botao

Integração Sicoob - Correspondente Bradesco


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

Recommended Posts

  • Moderadores
6 minutos atrás, Joel disse:

não não ... nfe2 não está lá também.. são os que mais utilizo. 

Como faço para compilar os componentes agora? terá que ser individualmente ne? Porque agora tenho 2 pastas acbr acbr e acbr2.

 

 

Humm já vi, mudou o diretório dos documentos fiscais. Entendi.

Como assim não está lá???

Use o instalador, não fique sofrendo e perdendo tempo a toa!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Conforme conversado com a Juliana , segue correções nas units no trunck2 : 

ACBrBoleto :

constructor TACBrTitulo.Create(ACBrBoleto:TACBrBoleto);

fLocalPagamento    := 'Pagar preferencialmente nas agencias do '+ ACBrBoleto.Banco.Nome + ' até o vencimento'; // joel 15/10/2015

 

ACBrBancoBradescoSICOOB :

function TACBrBancoBradescoSICOOB.CalcularDigitoVerificador(const ACBrTitulo: TACBrTitulo ): String;

Procedure TACBrBancoBradescoSICOOB.LerRetorno400 ( ARetorno: TStringList );

function TACBrBancoBradescoSICOOB.CalcularTamMaximoNossoNumero(

 

Em anexo as units com as alterações.

Por gentileza atualizar o svn.

Obrigado

 

ACBrBoleto.pas

ACBrBancoBradescoSICOOB.pas

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

Ao analisar o código enviado e os manuais não consegui identificar a orientação do banco para tratar de forma diferente o Nosso Numero para a carteira 9.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

bom dia Juliana, obrigado por retornar.

Fiz um tratamento para a carteira a qual estava fazendo a homologação.

      if MatchText( Carteira , ['09']) then    // alterado por joel takei 15/10/2015
      begin
        Modulo.MultiplicadorInicial := 2;
        Modulo.MultiplicadorFinal   := 7;
        Modulo.Documento := '9' + FormataNossoNumero( ACBrTitulo );
      end
      else
      begin
        Modulo.MultiplicadorInicial := 2;
        Modulo.MultiplicadorFinal   := 9;
        Modulo.Documento := FormatDateTime('yy',ACBrTitulo.DataDocumento)+
                            padR( ACBrTitulo.ACBrBoleto.Cedente.Convenio, 3, '0')+
                            FormataNossoNumero( ACBrTitulo );
      end;

 

Com relação a este código: 

Modulo.Documento := FormatDateTime('yy',ACBrTitulo.DataDocumento)+
                            padR( ACBrTitulo.ACBrBoleto.Cedente.Convenio, 3, '0')+
                           
FormataNossoNumero( ACBrTitulo );

Se você entrar na função formataNossoNumero, verá que está repetindo o código que está sendo repassado para o Modulo.Documento. Ficando o nosso numero com um valor incorreto. ex: 15770157701234. repetindo o prefixo 15770, vai que esteja funciona assim em alguma carteira ne. 

 

com relação a mudança:   Modulo.MultiplicadorFinal   := 7;

O dígito verificador tem como base 7 e não 9. Caso contrario o dígito verificador não bate, tive que alterar.

 

Modulo.Documento := '9' + FormataNossoNumero( ACBrTitulo );

Na geração do dígito verificador  CalcularDigitoVerificador (segue documento em anexo) é necessário passar a carteira.


 

Com relação a outra mudança :   Result := ACBrBanco.TamanhoMaximoNossoNum;// + 5 JOel takei 21/09/2015;

Quando o componente vai gerar o nosso número, essa quantidade 5 afeta aumentando a mais a quantidade de casas necessárias. O padrão já é  6.  fpTamanhoMaximoNossoNum := 6;

ex: 15770 000001

ex: 15770 00000000001

 

Na verdade não precisava ter tratado a carteira 9 diferente, mas para não afetar os demais, achei melhor manter o código original, por isso o tratamento.

A carteira 9 com o código modificado está homologada e já emitindo boletos e gerando remessa e retornos.

Caso você tenha uma outra forma de tratar o código, não afetando o layout homologado será de grande ajuda.


 

Dígito+Verificador+NN+Bradesco 13-10.doc

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Será necessário analisar com calma todas alterações  e entender se é algo particular de algumas carteiras e neste caso implementar para todas. Seria possível anexar todos os manuais fornecidos pelo banco?

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Juliana,

Concordo que precisa ser implementado para todas as carteiras.  Porém penso que isso não impede de ser tratada nesse primeiro momento esta carteira homologada, assim  deixaríamos até que apareça uma outra carteira homologada por outro companheiro, assim podemos ter um parâmetro para saber se as alterações devem ser direcionadas a todos, ao invés de tentar analisar todas as carteiras hoje. Da forma que está a unit, será que já foi homologada por alguém? Caso sim, deve se manter o tratamento que implementei para não afetar outros companheiros. 

Eu acredito que as alterações nestes pontos não são específicos da carteira e sim do convênio sicoob bradesco, Como a unit já é específica, na verdade não vejo problemas em utilizar como genérico, caso claro, não tenha uma outra carteira homologada da forma que está hoje. 

Dígito+Verificador+NN+Bradesco 13-10.doc

Manual_Layout_Sicoob_-_Correspondente_BRADESCO_-_Impressão_Local.pdf

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

Boa noite.

Maioria das alterações disponíveis no svn, somente a mudança referente ao tamanho máximo do nosso número me pareceu que deveria ficar de fora, uma vez que de acordo com os manuais anexos ao tópico este campo tem 12 posições.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Juliana, tudo bem? 

Eu precisava "falar" com você, pois estou em uma encruzilhada que não tem saída aqui na unit ACBrBancoBradescoSICOOB e talvez você possa clarear e resolvermos juntos a situação.

 wats 4499603399

skype [email protected]

Por favor entrar em contato o mais breve possível.

Desde já agradeço a vossa atenção!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia Joel.

Para esclarecer suas dúvidas peço que poste nos tópicos do fórum.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia, 

É bem sobre isso que eu queria falar melhor com você, pois cansei de tentar explicar por aqui e achei muito mais prático explicar por telefone. Mas se não quer, tudo bem.

Não tive tempo para poder analisar com mais detalhes essa questão do tamanho do nosso número. 

Concordo com você que o nosso número tem 12 caracteres conforme o layout isso está claro para todos. Porém essa variável se você define com tamanho 11 como estamos fazendo, o nosso numero fica com o dobro do tamanho, pois ele que define quantos zeros serão colocados na frente do meu número.  Aliás, você testou gerar o boleto e a remessa do jeito que estã ?

Deixei a variavel da forma que você definiu

 Result := ACBrBanco.TamanhoMaximoNossoNum + 5 ; ( ela já vem definida com tamanho 6 que é a quantidade necessária para a função desta variavel) 

e gerei um boleto e uma remessa. segue em anexo.

Já que você não quer fazer a modificação, por favor analise os documentos e nos dê uma posição.  

Você fez a geração do boleto e do arquivo de remessa e fez a leitura do retorno do banco para ver o que acontece se mantiver estas configurações ? Deu certo a leitura do retorno? Vai perceber que ele não lê os dados corretos também devido a este problema de posição das casas.

Perceba na remessa que o nosso número que deveria aparecer só aparece o inicio dele pois tem muitos zeros na frente.

numero gerado: 15770000000040351 deveria ser 157700040351

Não posso atualizar ainda meu acbr devido a esta situação. 

Apenas gostaria de salientar que não vou mais explicar as modificações, pois é a 3 ou 4 vez que estou enviando e explicando que está HOMOLOGADA a unit porém  você insiste em questionar as alterações mas não me confirmou se foi homologado ou não da forma que está mantendo. Caso ainda tenha dúvidas desta questão sugiro que faça a homologação perante o banco. Não irei mais enviar correções deste arquivo se for para ser questionado tantas vezes assim sem se basear em uma afirmação concreta de sua posição.

 

unionsystem.exe_ ACBRBoletoFCFortesFr.LayoutBoleto_.pdf

cb221201.rem

Link para o comentário
Compartilhar em outros sites

  • Administradores
22 horas atrás, Joel disse:

Bom dia, 

É bem sobre isso que eu queria falar melhor com você, pois cansei de tentar explicar por aqui e achei muito mais prático explicar por telefone. Mas se não quer, tudo bem.

Não tive tempo para poder analisar com mais detalhes essa questão do tamanho do nosso número. 

É exatamente esta análise um ponto muito importante para as alterações neste componente.

Concordo com você que o nosso número tem 12 caracteres conforme o layout isso está claro para todos. Porém essa variável se você define com tamanho 11 como estamos fazendo, o nosso numero fica com o dobro do tamanho, pois ele que define quantos zeros serão colocados na frente do meu número.  Aliás, você testou gerar o boleto e a remessa do jeito que estã ?

Assim como provavelmente você não tem condições de testar todos os bancos e todas as carteiras, o mesmo ocorre comigo, como não possuimos clientes para este banco, naturalmente não foi possível testar remessa/retorno, por este motivo se quiser auxiliar a análise profunda que precisa ser feita, nos disponibilize um arquivo utilizado por você nos seus testes.

Deixei a variavel da forma que você definiu

 Result := ACBrBanco.TamanhoMaximoNossoNum + 5 ; ( ela já vem definida com tamanho 6 que é a quantidade necessária para a função desta variavel) 

e gerei um boleto e uma remessa. segue em anexo.

Já que você não quer fazer a modificação, por favor analise os documentos e nos dê uma posição.  

Gostaria de lembrar que este é um fórum aberto e o mesmo ocorre com o componente, sendo assim não é elegante da sua pate essa forma de "cobrança"

Você fez a geração do boleto e do arquivo de remessa e fez a leitura do retorno do banco para ver o que acontece se mantiver estas configurações ? Deu certo a leitura do retorno? Vai perceber que ele não lê os dados corretos também devido a este problema de posição das casas.

Perceba na remessa que o nosso número que deveria aparecer só aparece o inicio dele pois tem muitos zeros na frente.

numero gerado: 15770000000040351 deveria ser 157700040351

Não posso atualizar ainda meu acbr devido a esta situação. 

Apenas gostaria de salientar que não vou mais explicar as modificações, pois é a 3 ou 4 vez que estou enviando e explicando que está HOMOLOGADA a unit porém  você insiste em questionar as alterações mas não me confirmou se foi homologado ou não da forma que está mantendo. Caso ainda tenha dúvidas desta questão sugiro que faça a homologação perante o banco. Não irei mais enviar correções deste arquivo se for para ser questionado tantas vezes assim sem se basear em uma afirmação concreta de sua posição.

As colaborações são voluntárias, ou seja, você pode ficar a vontade para enviá-las ou  não, porém se enviar deve entender que é somente após sanadas todas as dúvidas as mesmas poderão ser adicionadas ao svn. Condorme citei antes não tenho como analisar além dos manuais e arquivos de remessa gerados pelo componente, o retorno será possível somente se um arquivo for disponibilizado.

 

unionsystem.exe_ ACBRBoletoFCFortesFr.LayoutBoleto_.pdf

cb221201.rem

 

 

 

 

 

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Boa Tarde, Joel  também estou homologando para este mesmo banco na mesma situação, com correspondente Bradesco, estou fazendo o procedimento de remessa, e estao me retornando erros, um dos erros, que se refere ao código da cooperativa eu tive que alterar a unit ACBrBancoBradescoSICOOB.pas nas funcoes GerarRegistroHeader400 e GerarRegistroTransacao400 ele concatenava  -> PadLeft( Cedente.Agencia + Cedente.AgenciaDigito, 10, '0') + // Código da Cooperativa fincando assim PadLeft( Cedente.Agencia, 10, '0') --  nas duas funções o mesmo detalhe, agora o erro no digito verificado que pede a letra 'P' isso ainda não consegui arrumar. vocêis teriam alguma dica? Obrigado a todos

erro_remessa.png

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa noite.

Faça um teste alterando  a linha  108 de "Modulo.ModuloFinal = 11" por "Modulo.DigitoFinal = 1".

Att,

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde Elvis.

Se você fez alguma outra alteração além da que sugeri, seria interessante você anexar seu fonte alterado aqui.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Membros Pro

 

Boa tarde , favor atualizar o trunck2 com as modificações comentadas a cima:

CalcularDigitoVerificador

   if Modulo.ModuloFinal = 1 then   // antes 11 
      Result:= 'P'
   else
      Result:= IntToStr(Modulo.DigitoFinal);

 

 

Elviz, você homologou o boleto e remessa com essa função  configurada assim? 

CalcularTamMaximoNossoNumero(

   ACBrBanco.TamanhoMaximoNossoNum + 5;

Seu nossonumero está saindo corretamente com 12 digitos assim 167700033710  ?  

Porque o meu se eu deixar essa configuração de + 5 ele está gerando assim:  16770000000033710 

Agora não entendi como se meu fonte está atualizadissimo até os minutos rs. Alguém poderia explicar esse empasse? 

Eu já estou gerando boletos para minha empresa são mais de 100 boletos gerados com essa configuração a baixo que terei que manter pois estou atualizado no trunck2.

CalcularTamMaximoNossoNumero(

  Result := ACBrBanco.TamanhoMaximoNossoNum;    //+ 5;

 

Outra modificação : 

Com certeza tem a ver com a linha acima, mas resolveu fazendo isto.

Procedure TACBrBancoBradescoSICOOB.LerRetorno400 ( ARetorno: TStringList );

NossoNumero          := Copy(Linha,76,6); // Copy(Linha,71, 12); alterado por joel takei 08/01/2016

 

Quando alimentamos o componente com os dados do titulo seja para gerar boleto ou para remessa, o campo nosso número é alimentando apenas pelo número do documento, código interno do sistema, no meu caso o código do meu contas a receber. O componente faz a implementação do restante do nosso número concatenando o ano + convênio  ao gerar o titulo, perfeito! Baseado nisso, tem lógica passarmos na leitura do retorno somente o código interno que no caso é o numero do documento  que é justamente os últimos 6 dígitos do nosso numero. Copy(Linha,76,6) e não os Copy(Linha,71, 12) nosso número completo.

 

 

 

ACBrBancoBradescoSICOOB.pas

 

Editado por Joel
Link para o comentário
Compartilhar em outros sites

Bom Dia, realmente se for colocar o tamanho do nosso numero conforme pede o manual, ele fica do jeito que vc falou, e como estava com pressa para homologar e para não alterar os fontes do acbr eu setei o tamanho máximo  do nosso número para 1, assim deu certo.

outro detalhe ao gerar a remessa tem duas funçoes que tive que alterar no ACBrBancoBradescoSICOOB

na function GerarRegistroHeader400 deixei assim ->

with ACBrBanco.ACBrBoleto.Cedente do
   begin
      wLinha:= '0'                                             + // ID do Registro
               '1'                                             + // ID do Arquivo( 1 - Remessa)
               'REMESSA'                                       + // Literal de Remessa
               '01'                                            + // Código do Tipo de Serviço
               PadRight( 'COBRANCA', 15 )                          + // Descrição do tipo de serviço
               PadLeft( Agencia, 13, '0')                          + // Código da Cooperativa  estava assim -> PadLeft( Agencia + AgenciaDigito, 13, '0')       
               PadLeft( CodigoCedente, 7, '0')                     + // Código de Cobrança
               PadRight( Nome, 30)                                 + // Nome da Empresa
               IntToStr( 756 ) + PadRight('BANCOOB', 15)           + // Código e Nome do Banco(756 - Sicoob)
               FormatDateTime('ddmmyy',Now)  + Space(08)       + // Data de geração do arquivo + brancos
               'SX'                                            + // Identificação do Sistema
               IntToStrZero(NumeroRemessa,7) + Space(277)      + // Nr. Sequencial de Remessa + brancos
               IntToStrZero(1,6);                                // Nr. Sequencial de Remessa + brancos + Contador

      ARemessa.Text:= ARemessa.Text + UpperCase(wLinha);
   end;

outra function GerarRegistroTransacao400 linha 1347

 

 with ACBrBoleto do
      begin
         if Mensagem.Text <> '' then
            aMensagemCedente:= Mensagem[0];

         wLinha:= '1'                                                     + // ID Registro
                  StringOfChar( '0', 19)                                  + // Dados p/ Débito Automático
                  PadLeft( Cedente.Agencia, 10, '0')                      + // Código da Cooperativa  Estava assim ->PadLeft( Cedente.Agencia + Cedente.AgenciaDigito, 10, '0') + 
                  PadLeft( Cedente.CodigoCedente, 7, '0')                    + // Código de Cobrança
                  PadRight( SeuNumero, 25, ' ')                               + // Número de Controle de Participantes
                  StringOfChar( '0', 8)                                   + // ZEROS
                  PadRight(aNossoNumero , 11, '0')                            + // Nosso Número
                  aDigitoNossoNumero                                      + // Digito Verificador do Nosso Número
                  IntToStrZero( round( ValorDescontoAntDia * 100), 10)    + // Desconto bonificação por dia
                  TipoBoleto + 'N' + Space(14)                            + // Tipo Boleto(Quem emite) + 'N'= Nao registrar p/ Débito automático
                  aOcorrencia                                             + // Identificação da Instrução
                  PadRight( NumeroDocumento,  10)                             + // Número do Documento
                  FormatDateTime( 'ddmmyy', Vencimento)                   + // Data do Vencimento do Título
                  IntToStrZero( Round( ValorDocumento * 100 ), 13)        + // Valor do Título
                  StringOfChar('0',8) + PadRight(aEspecie,2) + 'N'            + // Zeros + Especie do documento + Idntificação(valor fixo N)
                  FormatDateTime( 'ddmmyy', DataDocumento )               + // Data de Emissão
                  aProtesto                                               + // 1ª Instrução + 2ª Instrução
                  IntToStrZero( round(ValorMoraJuros * 100 ), 13)         + // Valor a ser cobrado por dia de Atraso
                  IfThen(DataDesconto < EncodeDate(2000,01,01),'000000',
                         FormatDateTime( 'ddmmyy', DataDesconto))         + // Data Limite para Concessão de Desconto
                  IntToStrZero( round( ValorDesconto * 100 ), 13)         + // Valor do Desconto
                  StringOfChar('0',13)                                    + // Zeros
                  IntToStrZero( round( ValorAbatimento * 100 ), 13)       + // Valor do Abatimento a ser concedido ou cancelado
                  aTipoSacado + PadLeft(OnlyNumber(Sacado.CNPJCPF),14,'0')   + // Tipo de inscrição do sacado + Número de inscrição do sacado
                  PadRight( Sacado.NomeSacado, 40, ' ')                       + // Nome do Sacado
                  PadRight( Sacado.Logradouro + ' ' + Sacado.Numero + ' '     +
                        Sacado.Bairro + ' ' + Sacado.Cidade + ' '         +
                        Sacado.UF, 40)                                    + // Endereço Completo
                  space(12) + PadRight( Sacado.CEP, 8 )                       + // 1ª Mensagem + CEP
                  space(1)                                                + // Branco
                  PadLeft(OnlyNumber(Sacado.SacadoAvalista.CNPJCPF),14,'0')  + // Inscrição do Sacador / Avalista
                  aTipoSacador                                            + // Tipo do Documento do Sacador / Avalista
                  PadRight( Sacado.SacadoAvalista.NomeAvalista , 43, ' ')     ; // Sacador / Avalista


         wLinha := wLinha + IntToStrZero(aRemessa.Count + 1, 6); // Nº SEQÜENCIAL DO REGISTRO NO ARQUIVO
         wLinha := wLinha + DoMontaInstrucoes1;

         aRemessa.Text:= aRemessa.Text + UpperCase(wLinha);
      end;
   end;

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia Elvis, entendi. é foi o que imaginei hehe, pois não tinha como passar daquela forma. 

Essas duas funções que você modificou, se não me engano eu já havia enviado esta correção, mas está joia, conferi o fonte aqui e está da foma que você passou ai. 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

alteração unit  ACBrBancoBradescoSICOOB na função GerarRegistroTransacao400

As instruções não estavam indo corretamente para a remessa. 

      

      // alteração joel takei 12/01/2016

        Result := sLineBreak +
                  '2'+                                                        // IDENTIFICAÇÃO DO LAYOUT PARA O REGISTRO
                  Copy(PadRight(Mensagem[0], 80, ' '), 1, 80);               // CONTEÚDO DA 1ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO

        if Mensagem.Count > 1 then
           Result := Result +
                     Copy(PadRight(Mensagem[1], 80, ' '), 1, 80)              // CONTEÚDO DA 2ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO
        else
           Result := Result + PadRight('', 80, ' ');                          // CONTEÚDO DO RESTANTE DAS LINHAS

        if Mensagem.Count > 2 then
           Result := Result +
                     Copy(PadRight(Mensagem[2], 80, ' '), 1, 80)              // CONTEÚDO DA 3ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO
        else
           Result := Result + PadRight('', 80, ' ');                          // CONTEÚDO DO RESTANTE DAS LINHAS

        if Mensagem.Count > 3 then
           Result := Result +
                     Copy(PadRight(Mensagem[3], 80, ' '), 1, 80)              // CONTEÚDO DA 4ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO
        else
           Result := Result + PadRight('', 80, ' ');                          // CONTEÚDO DO RESTANTE DAS LINHAS
 

ACBrBancoBradescoSICOOB.pas

Editado por Joel
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Administradores

Boa noite.

Alteração no svn com pequeno ajuste.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde, o trunck2 ainda não está com as alterações realizadas acima, poderia me passar o motivo? Se foi ajustado em outro local ou como foi corrigido ? 

Estou utilizando em tempo de produção e não posso atualizar pois o trunck2 não foi corrigido, por gentileza corrigir o mesmo. 

 

 

 

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.