Jump to content

dev botao

Carregar em Tempo de Execução informações de Outro Banco


Mauricio Elias
Go to solution Solved by Victor H. Gonzales - Panda,
  • Este tópico foi criado há 1205 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Olá Tudo Bem!

Estou tentando gerar Boleto de dois Bancos diferentes, então pra isso preciso mudar em tempo de execução qual o Banco que vai ser gerado o boleto.

O problema é que escolho o banco e seto a propriedade TipoCobranca, mas quando gera o boleto o campo Local de Pagamento sai como ''Não Definido"(segue a imagem em anexo).

Isso ocorre na primeira vez que é carregado o form onde é Gerado o Boleto! Se eu gerar novamente o boleto com aquele mesmo Banco ae sim sai corretamente escrito o nome do Banco. Mas se sair do executável e entrar de novo e entrar no form na primeira vez sai como Não Definido, mas se gerar novamente sem sair do executável ou trocar de Banco sai correto o nome.

Parece que ele carrega ACBrBoleto na primeira vez.

Estou setando o banco da seguinte forma:

               Vcodbanco:=IBQCnab.FieldByName('BANCOD').AsInteger;
                 case Vcodbanco of
                   1: begin //001
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoDoBrasil;
                      end;
                   4: begin //004
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoDoNordeste;
                      end;
                  21: begin //021
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBanestes;
                      end;
                  8,33,353: begin //033,353,008
                               dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobSantander;
                            end;
                  41: begin //041
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBanrisul;
                      end;
                  70: begin //070
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBRB;
                      end;
                  85: begin //085
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoCECRED;
                      end;
                  104:begin //104
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobCaixaEconomica;
                      end;
                  237:begin //237
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBradesco;
                      end;
                  341:begin //341
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobItau;
                      end;
                  389:begin //389
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoMercantil;
                      end;
                  748:begin //748
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobSicred;
                      end;
                  756:begin //756
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoob;
                      end;
                  399:begin //399
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobHSBC;
                      end;
                  422:begin //422
                           dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobBancoSafra;
                      end;
                 end;

O resto do boleto sai corretamente com as informações do banco escolhido, só o campo Local de Pagamento que notei essa diferença.

Tentei colocar o nome na propriedade nome do banco no ACBrBoleto assim:

 ACBrBoleto.Banco.Nome:=nomedobanco;

Mas não deu certo.

Como faço pra quando escolher o banco em tempo execução não precise executar duas vezes pra gerar corretamente o boleto?

Preciso setar alguma outro propriedade do ACBrBoleto?

Desde já Muito Obrigado pela Atenção e Ajuda!

Local_Pagamento_nao_definido.jpg

Link to comment
Share on other sites

  • Consultores
  • Solution

Bom dia,

você pode matar todos esses seus IF simplificando assim <ACBrBol>.Banco.TipoCobranca := <ACBrBol>.GetTipoCobranca(Vcodbanco); e no Titulo.LocalPagamento você pode forçar o literal desejado.

Abraços.

obs : eu faria múltiplos bancos em fluxos distintos de processamento.

  • Like 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link to comment
Share on other sites

  • Membros Pro

Boa Tarde 

Em 22/06/2021 at 11:36, Daniel Simoes disse:

Não sei se compreendi direito.. mas você quer adicionar na Lista de Boletos, Títulos de dois Bancos diferentes, ao mesmo tempo ?

Obrigado pela Ajuda Daniel! Não o cliente possuí conta em dois bancos e ele emite boleto pelos dois, quando vai gerar boleto de um banco, o cliente seleciona a conta do banco e gera todos os boletos daquele banco. Quando for gerar do outro seleciona a conta do outro banco e gera todos desse outro banco.

O componente ACBrBoleto na propriedade Banco tipocobranca fica como default cobNenhum, então quando vai gerar o boleto pela conta escolho qual o banco e seto a opção pelo case. 

Ao gerar os boletos sai com com a logo e formatação do banco da conta mas o campo Local de Pagamento sai como ''Não Definido" isso entro no form a 1ª vez. Se saio deste form entro de novo e gero boletos para o mesmo banco que acabei de gerar, ae o campo Local de Pagamento sai correto com o nome do banco. Se eu escolher outro banco sai com o logo formatação, mas o campo Local de Pagamento sai como Não definido. Mas se eu sair do form e entrar de novo e gerar boleto por esse último banco ae sai corretamente.

A minha dúvida e se tem setar mais algum propriedade ou estou  esquecendo de algum detalhe.

  Vitor Obrigado por me ajudar.

Em 22/06/2021 at 11:43, Victor H. Gonzales - Panda disse:

Bom dia,

você pode matar todos esses seus IF simplificando assim <ACBrBol>.Banco.TipoCobranca := <ACBrBol>.GetTipoCobranca(Vcodbanco); e no Titulo.LocalPagamento você pode forçar o literal desejado.

Abraços.

obs : eu faria múltiplos bancos em fluxos distintos de processamento.

Vou simplificar fazendo como você disse Obrigado.

Então estou tentando forçar o nome na seguinte propriedade: dmSISTEMA.ACBrBoleto.Banco.Nome:='NOME DO BANCO'; depois de ter escolhido o TipoCobranca, mas não da certo, não sei se essa propriedade Banco.Nome seria essa? Não achei essa propriedade Titulo.LocalPagamento. Ela é propriedade do Banco?

Mesmo se deixar um dos bancos default e gerar boletos por ele quando entra a 1ª vez no form ele gerar correto com o Local Pagamento tudo certo, mas se usar outra conta que não a do default então sai Não definido ae tenho que entrar de novo no form ae sim na segunda vez gera correto.

Mais uma vez Obrigado ambos por me ajudarem. 

Link to comment
Share on other sites

  • Moderadores

Por acaso está criando o Titulo antes de definir o Banco.TipoCobranca?

O que vale é o que está no Titulo:

constructor TACBrTitulo.Create(ACBrBoleto:TACBrBoleto);
begin
   inherited Create;

   fACBrBoleto        := ACBrBoleto;
   fLocalPagamento    := ACBrBoleto.Banco.LocalPagamento;

Então se estiver criando o título antes não vai atualizar a propriedade do título.

56 minutos atrás, Mauricio Elias disse:

Não achei essa propriedade Titulo.LocalPagamento. Ela é propriedade do Banco?

 

var
  Titulo: TACBrTitulo;
begin
  Titulo := ACBrBoleto1.CriarTituloNaLista;
  Titulo.LocalPagamento := 'Pagável em qualquer banco ou casa lotérica';

 

  • Like 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

  • Membros Pro

Olá BigWings Obrigado por me Ajudar!

1 hora atrás, BigWings disse:

Por acaso está criando o Titulo antes de definir o Banco.TipoCobranca?

O que vale é o que está no Titulo:


constructor TACBrTitulo.Create(ACBrBoleto:TACBrBoleto);
begin
   inherited Create;

   fACBrBoleto        := ACBrBoleto;
   fLocalPagamento    := ACBrBoleto.Banco.LocalPagamento;

Então se estiver criando o título antes não vai atualizar a propriedade do título.

 


var
  Titulo: TACBrTitulo;
begin
  Titulo := ACBrBoleto1.CriarTituloNaLista;
  Titulo.LocalPagamento := 'Pagável em qualquer banco ou casa lotérica';

 

Bom vamos lá antes de eu entrar no laço em que gero os boletos eu executo esse comando:

o ACBrBoleto fica no data module.

dmSISTEMA.ACBrBoleto.ListadeBoletos.Clear;

já dentro do loop do laço primeiro executo o comando:

Titulo := dmSISTEMA.ACBrBoleto.CriarTituloNaLista;

depois dele que seleciono o layout exemplo:

dmSISTEMA.ACBrBoleto.ACBrBoletoFC.DirLogo  := vDirLogo;

dmSISTEMA.ACBrBoleto.ACBrBoletoFC.LayOut:=lReciboTopo

depois vem o tipocobranca exemplo

dmSISTEMA.ACBrBoleto.Banco.TipoCobranca:=cobSicred;

no fim dmSISTEMA.ACBrBoleto.GerarPDF;

depois do fim do laço

 dmSISTEMA.ACBrBoleto.Imprimir;

Eu tenho que definir o layout, tipocobranca antes de executar a linha: Titulo := dmSISTEMA.ACBrBoleto.CriarTituloNaLista ?

Tenho que chamar esse constructor ?

Desde já Muito Obrigado pela Atenção e Ajuda!

 

Link to comment
Share on other sites

  • Moderadores
40 minutos atrás, Mauricio Elias disse:

Eu tenho que definir o layout, tipocobranca antes de executar a linha: Titulo := dmSISTEMA.ACBrBoleto.CriarTituloNaLista ?

Sim.

Ou preencher a propriedade Titulo.LocalPagamento manualmente.

  • Like 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

  • Membros Pro
17 horas atrás, BigWings disse:

Sim.

Ou preencher a propriedade Titulo.LocalPagamento manualmente.

Olá BigWings Obrigado por responder.

Deu certo problema resolvido! Mudei ae linha de comando Titulo := dmSISTEMA.ACBrBoleto.CriarTituloNaLista; pra depois de definir o layout e tipoCobranca ae gerou corretamente agora. Seja qual banco eu escolher agora gera corretamente com a propriedade Titulo.LocalPagamento preenchida sem eu precisar preencher manualmente.

Muito Obrigado a todos que me ajudaram!

Problema resolvido!

Obrigado!  

  • Thanks 1
Link to comment
Share on other sites

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link to comment
Share on other sites

  • Este tópico foi criado há 1205 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.