Ir para conteúdo
  • Cadastre-se

dev botao

Como alterar o banco do boleto dinamicamente ?


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

Recommended Posts

Bom dia pessoal, estou desenvolvendo uma aplicação de boleto bancaria, onde eu gero diferentes boletos na mesma tela, de acordo com os dados da conta do cedente !

A dúvida é a seguinte como eu posso alterar o banco dinamicamente, sem ser definido no componente ?

Exemplo o cedente ta logado com a conta 001 banco do brasil, eu já peguei os dados do cedente e tudo, o problema é que ele não estar alterando,

segue o código:

  Case ACBrBoleto1.Banco.Numero of

          237 :  ACBrBoleto1.Banco.TipoCobranca := cobBradesco;

          001 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoDoBrasil;

          004 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoDoNordeste;

          021 :  ACBrBoleto1.Banco.TipoCobranca := cobBanestes;

          033 :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          053 :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          008 :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          041 :  ACBrBoleto1.Banco.TipoCobranca := cobBanrisul;

          070 :  ACBrBoleto1.Banco.TipoCobranca := cobBRB;

          104 :  ACBrBoleto1.Banco.TipoCobranca := cobCaixaEconomica;

          341 :  ACBrBoleto1.Banco.TipoCobranca := cobItau;

          389 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoMercantil;

          748 :  ACBrBoleto1.Banco.TipoCobranca := cobSicred;

          756 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoob;

          399 :  ACBrBoleto1.Banco.TipoCobranca := cobHSBC;

     end;

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

Outra dúvida ao seleciona um tipo de cobrança pelo o componente, ele automaticamente já define o tamanho máximo do nosso número,

o problema é que o meu número, é maior do que os definidos na propriedade, tem como alterar essas constantes?

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

Resolvi o primeiro porblema da seguinte forma.

Criei uma variavel do tipo inteira e pegeui pór parametro o código do banco

e joguei pra dentro da variavel, diferentemente de jogar pra o componente.


Titulo.UsoBanco                   := dm.Query1.fieldbyname('bnc_cd').AsString;

TempBanco := StrToInt(Titulo.UsoBanco);

Case TempBanco of

    //Case ACBrBoleto1.Banco.Numero of

          237 :  ACBrBoleto1.Banco.TipoCobranca := cobBradesco;

          1 :  begin

                    ACBrBoleto1.Banco.TipoCobranca := cobBancoDoBrasil;

                    LocalPagamento := LocalPagamento;

                 end;

          4   :  ACBrBoleto1.Banco.TipoCobranca := cobBancoDoNordeste;

          21  :  ACBrBoleto1.Banco.TipoCobranca := cobBanestes;

          33  :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          53  :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          8   :  ACBrBoleto1.Banco.TipoCobranca := cobSantander;

          41  :  ACBrBoleto1.Banco.TipoCobranca := cobBanrisul;

          70  :  ACBrBoleto1.Banco.TipoCobranca := cobBRB;

          104 :  ACBrBoleto1.Banco.TipoCobranca := cobCaixaEconomica;

          341 :  ACBrBoleto1.Banco.TipoCobranca := cobItau;

          389 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoMercantil;

          748 :  ACBrBoleto1.Banco.TipoCobranca := cobSicred;

          756 :  ACBrBoleto1.Banco.TipoCobranca := cobBancoob;

          399 :  ACBrBoleto1.Banco.TipoCobranca := cobHSBC;


     end;

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Normalmente a propriedade TamanhoMaxNossoNumero é definida de acordo com o tamanho máximo definido os manuais dos bancos, porém vc pode alterá-la diretamente nas propriedades do componente.

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

  • 3 anos depois...
  • 4 meses depois ...

A impressão até funciona, mas ao gerar o arquivo remessa a informação está vinculada ao tipo de cobrança definido em tempo de projeto.

O melhor que consegui foi em tempo de projeto colocar o TipoCobranca = cobNenhum, assim além da impressão, o arq. remessa também assume o novo tipo, mas isso não resolve todo o problema, pois se no mesmo formulário eu tiver mais de um banco, não consegui dar um "refresh" no componente, mesmo alterando todas as propriedades public.

Alguém conseguiu resolver isso?

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Não estou entendo o problema que você está tendo, basta alterar as propriedades do componente para o novo banco/conta a ser utilizado.

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

Boa tarde Juliana.

Para testar faça o seguinte:

Em tempo de projeto, no componente ACBrBoleto1 escolha um tipo de cobrança qualquer diferente de cobNenhum. 

Em tempo de execução troque essa propriedade e gere o arquivo remessa, você verá que os dados estão desposicionados.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

Você ajustar todas as propriedades relacionadas ao banco/conta.

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

Oi amigos,

Eu criei uma rotina chamada gravacedente sempre antes de gerar o boleto ou a remessa e funciona perfeitamente.

Segue exemplo do código:

 

procedure TDM1.GravaCedenteCobranca(CodCarteira: integer);
begin
  // Grava Configurações do Cedente e Cobrança
  ACBrBoleto1.ListadeBoletos.Clear;
  DM1.TB03600.Refresh;
  DM1.TB03600.Locate('CONTROLE', CodCarteira, []);
  with ACBrBoleto1 do
  begin
    case DM1.TB03600BANCO.Value of
      1: Banco.TipoCobranca := cobBancoDoBrasil;
      104: Banco.TipoCobranca := cobCaixaEconomica;
      237: Banco.TipoCobranca := cobBradesco;
      341: Banco.TipoCobranca := cobItau;
      756:
        begin
          Banco.TipoCobranca := cobBancoob;
          Cedente.Modalidade := '01';
        end;
    end;
    Cedente.Agencia := DM1.TB03600AGENCIA.Value;
    Cedente.AgenciaDigito := ' ';
    if DM1.TB03600DIGAGENCIA.Value <> '' then
      Cedente.AgenciaDigito := DM1.TB03600DIGAGENCIA.Value;
    Cedente.Conta := DM1.TB03600CONTA.Value;
    Cedente.ContaDigito := DM1.TB03600DIGCONTA.Value;
    Cedente.Nome := DM1.TB03600NOMECEDENTE.Value;
    Cedente.Logradouro := DM1.TB03600ENDCEDENTE.Value;
    Cedente.NumeroRes := DM1.TB03600ENDNUMCEDENTE.Value;
    Cedente.Cidade := DM1.TB03600CIDADECEDENTE.Value;
    Cedente.Bairro := DM1.TB03600BAIRROCEDENTE.Value;
    Cedente.UF := DM1.TB03600UFCEDENTE.Value;
    Cedente.CEP := DM1.TB03600CEPCEDENTE.Value;
    if Length(FRC_Funcoes.DesformataCNPJ_CPF(DM1.TB03600CPFCEDENTE.Value)) = 11 then
      Cedente.TipoInscricao := pFisica
    else if Length(FRC_Funcoes.DesformataCNPJ_CPF(DM1.TB03600CPFCEDENTE.Value)) = 14 then
      Cedente.TipoInscricao := pJuridica;
    Cedente.CNPJCPF := FRC_Funcoes.DesformataCNPJ_CPF(DM1.TB03600CPFCEDENTE.Value);
    Cedente.CodigoCedente := DM1.TB03600CODCEDENTE.Value;
    Cedente.Convenio := DM1.TB03600CONVENIO.AsString;
    //    Cedente.Modalidade := DM1.TB03600MODALIDADE.Value;
    ACBrBoletoFC.DirLogo := ExtractFilePath(Application.ExeName) + '\Boleto';
    Cedente.ResponEmissao := tbCliEmite;
    case DM1.TB03600TIPOIMPRESSAO.Value of
      1: ACBrBoletoFC.LayOut := lPadrao;
      2: ACBrBoletoFC.LayOut := lFatura;
      3: ACBrBoletoFC.LayOut := lCarne;
      99: Cedente.ResponEmissao := tbBancoEmite;
    end;
    Cedente.CaracTitulo := tcSimples;
    case DM1.TB03600TIPOMOD.Value of
      1: Cedente.CaracTitulo := tcSimples;
      2: Cedente.CaracTitulo := tcVinculada;
      3: Cedente.CaracTitulo := tcCaucionada;
      4: Cedente.CaracTitulo := tcDescontada;
      5: Cedente.CaracTitulo := tcVendor;
    end;
    if DM1.TB03600CNAB.Value = 240 then
      LayoutRemessa := c240
    else
      LayoutRemessa := c400;
  end;

end;

 

  • Curtir 1

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • Este tópico foi criado há 1777 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.

The popup will be closed in 10 segundos...