Ir para conteúdo
  • Cadastre-se

dev botao

Erro de objeto não instanciado - Boleto


Jeffe.info
Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1341 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Ola amigos boa tarde, estou implementando a rotina para geração do boleto em meu sistema de retaguarda,

mas quando eu vou popular o Título esta dando erro de variável não instanciada,

no uses coloquei: 

uses  ACBrBoleto, ACBrBoletoConversao, uDMForte

antes de popular ListadeBoletos estou tentando limpar para ter certeza que não terá nenhum teste já incluido,

e nesta linha esta dando erro:

  try
      dmBoleto.ACBrBoleto.ListadeBoletos.Clear;
  except on E : Exception do
      ShowMessage('Erro ! '+ E.ClassName + ' Mensagem: '+E.Message);
  end;
 

Fiz um teste com dados fictícios só para ver se estava gerando, mas nem chega nesta linha,

abaixo segue a rotina completa, para gerar um boleto com dados fictícios, e envio para impressora para teste:

procedure TfrmConfig.btnTesteBoletoClick(Sender: TObject);
var
  Titulo : TACBrTitulo;
  VQtdeCarcA, VQtdeCarcB, VQtdeCarcC :Integer;
  VLinha, logo : string;
  i: Integer;
begin

  if cbbLayOut.ItemIndex = -1 then
  begin
     cbbLayOut.ItemIndex := 0;
  end;

  try
      dmBoleto.ACBrBoleto.ListadeBoletos.Clear;
  except on E : Exception do
      ShowMessage('Erro ! '+ E.ClassName + ' Mensagem: '+E.Message);
  end;


    dmBoleto.ACBrBoleto.Cedente.FantasiaCedente := 'Nome Fantasia';
    dmBoleto.ACBrBoleto.Cedente.Nome            := 'Nome do cedente';
    dmBoleto.ACBrBoleto.Cedente.Logradouro      := 'Logradouro do cedente';
    dmBoleto.ACBrBoleto.Cedente.Bairro          := 'Bairro do cedente';
    dmBoleto.ACBrBoleto.Cedente.Cidade          := 'Cidade do cedente';
    dmBoleto.ACBrBoleto.Cedente.CEP             := 'CEP do cedente';
    dmBoleto.ACBrBoleto.Cedente.Telefone        := '(xx) 99999-9999';

    Titulo := dmBoleto.ACBrBoleto.CriarTituloNaLista;


  with Titulo do
  begin
    Vencimento        := Now;
    DataDocumento     := StrToDate('12345678');
    NumeroDocumento   := '01';
    EspecieDoc        := 'DM';

    Aceite := atSim ;

    DataProcessamento := Now;
    Carteira          := '09';
    NossoNumero       := '11122233';
    ValorDocumento    := StrToCurr('1.00');
    Sacado.NomeSacado := 'Nome do Sacado';
    Sacado.CNPJCPF    := OnlyNumber('87.854.233-78');
    Sacado.Logradouro := 'Endereço';
    Sacado.Numero     := '0';
    Sacado.Bairro     := 'Bairro';
    Sacado.Cidade     := 'Cidade';
    Sacado.UF         := 'UF';
    Sacado.CEP        := OnlyNumber('12.100-000');
    ValorAbatimento   := StrToCurrDef('0',0);
    LocalPagamento    := 'Local Pagto';
    ValorMoraJuros    := StrToCurrDef('0.00',0);
    ValorDesconto     := StrToCurrDef('0.00',0);
    ValorAbatimento   := StrToCurrDef('0.00',0);
    DataMoraJuros     := StrToDateDef('0.00', 0);
    DataDesconto      := StrToDateDef('', 0);
    DataAbatimento    := StrToDateDef('', 0);
    DataProtesto      := StrToDateDef('', 0);
    PercentualMulta   := StrToCurrDef('0',0);

    Mensagem.text     := dbedtMensagem.Text;

    OcorrenciaOriginal.Tipo := toRemessaBaixar;

    Instrucao1        := PadRight(trim(dbedtInstrucao1.Text),2,'0');
    Instrucao2        := PadRight(trim(dbedtInstrucao2.Text),2,'0');
    Instrucao3        := '';

    QtdePagamentoParcial   := 1;
    TipoPagamento          := tpNao_Aceita_Valor_Divergente;
    PercentualMinPagamento := 0;
    PercentualMaxPagamento := 0;
    ValorMinPagamento      := 0;
    ValorMaxPagamento      := 0;

    dmBoleto.ACBrBoleto.AdicionarMensagensPadroes(Titulo, Mensagem);

    if cbbLayOut.ItemIndex = 6 then
    begin
      for i:=0 to 3 do
      begin
        VLinha := '.';

        VQtdeCarcA := length('Descrição Produto/Serviço ' + IntToStr(I));
        VQtdeCarcB := Length('Valor:');
        VQtdeCarcC := 85 - (VQtdeCarcA + VQtdeCarcB);

        VLinha := PadLeft(VLinha,VQtdeCarcC,'.');

        Detalhamento.Add('Descrição Produto/Serviço ' + IntToStr(I) + ' '+ VLinha + ' Valor:   '+  PadRight(FormatCurr('R$ ###,##0.00', StrToCurr('1') * 0.25),18,' ') );
      end;

      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('');
      Detalhamento.Add('Desconto ........................................................................... Valor: R$ 0,00' );
    end;

    logo:= ExtractFileDir(ParamStr(0)) + '\acbr_logo.jpg';

    ArquivoLogoEmp := logo;  // logo da empresa
    //ShowMessage(logo);

    Verso := False; //((cbxImprimirVersoFatura.Checked) and ( cbxImprimirVersoFatura.Enabled = true ));

  end;

  dmBoleto.ACBrBoleto.GerarRemessa(1);

  dmBoleto.ACBrBoleto.Imprimir;

end;
 

 

 

 

 

 

Editado por Jeffe.info
Faltou colocar a rotina de exemplo em delphi
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Este é o exemplo do boleto?

coloque um ponto de parada nessa linha

dmBoleto.ACBrBoleto.ListadeBoletos.Clear;

e depois quando parar passe o mouse sobre e veja o valor de cada um, do datamodule do acbrboleto do listadeboletos

veja se algum está nil

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

Estou fazendo um teste para poder implementar dentro de meu sistema de retaguarda.

Eu queria colocar um combo para escolher o banco que irá gerar o boleto, em uma tela de configurações para boletos bancários, 

Vi que o projeto Acbr tem rotina para vários bancos. Achei incrível, muito bom mesmo, amo trabalhar com Acbr.

 

O erro que esta dando é que este boleto esta vindo na tela sem logo, sem banco definido, estou apanhando um pouco, é minha primeira implementação com boletos usando Acbr.

mas estou gostando muito. Pretendo estudar bastante esta ferramenta, gostei muito.

 

Sobre o Break Point, eu não sei porque não esta funcionando para este sistema, acho que é porque eu uso encapsulamento de código para colocar tudo dentro do mesmo form.

A IDE não esta reconhecendo isto, e não funciona breakpont, eu tenho que ficar dando showmessage para debugar.

Será que tem um outro jeito de consertar isto?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
1 hora atrás, Jeffe.info disse:

Eu queria colocar um combo para escolher o banco que irá gerar o boleto, em uma tela de configurações para boletos bancários, 

basta popular o combobox com o enumerador dos bancos e assim gravar

1 hora atrás, Jeffe.info disse:

O erro que esta dando é que este boleto esta vindo na tela sem logo, sem banco definido, estou apanhando um pouco, é minha primeira implementação com boletos usando Acbr.

Isso tudo tu olhando o exemplo vai conseguir entender bem fácil

 

1 hora atrás, Jeffe.info disse:

Sobre o Break Point, eu não sei porque não esta funcionando para este sistema, acho que é porque eu uso encapsulamento de código para colocar tudo dentro do mesmo form.

ou seus arquivo trocaram a codificação de ansi para unicode ou tem algum erro na quebra de linha onde ao invés de ter CRLF só tem LF do unix e assim quebra os breakpoints

1 hora atrás, Jeffe.info disse:

A IDE não esta reconhecendo isto, e não funciona breakpont, eu tenho que ficar dando showmessage para debugar.

Não precisa basta corrigir os erros que citei.

 

1 hora atrás, Jeffe.info disse:

Será que tem um outro jeito de consertar isto?

Consertar oque ? os breakpoints tem acima como resolver.

Isso está ocorrendo em sua aplicação correto? não fez igual a muitos que pegam o exemplo e colocam ele dentro do sistema achando que vai funcionar.

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

Ola boa noite, obrigado pelas dicas,

sobre o breakpoint eu não consegui entender como eu posso resolver, só acontece neste programa. Já até pensei em refazer este sistema, do zero, e ir copiando aos poucos  as rotinas para o novo. Talvez eu faça assim se eu não conseguir resolver este problema dos breakpoints.

 

Juliomar você teria um exemplo populando a combobox ?

para eu ver as variáveis do ACBr certinho.

no meu Demo de boletos não tem esta rotina para escolher o banco e imprimir o boleto de acordo com o banco selecionado.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
13 horas atrás, Jeffe.info disse:

sobre o breakpoint eu não consegui entender como eu posso resolver, só acontece neste programa. Já até pensei em refazer este sistema, do zero, e ir copiando aos poucos  as rotinas para o novo. Talvez eu faça assim se eu não conseguir resolver este problema dos breakpoints.

é certeza que tem a ver com os arquivos que falei acima que mudaram ou a  codificação ou a quebra de linha e não é preciso refazer o projeto, basta corrigir isso e ele vai funcionar

13 horas atrás, Jeffe.info disse:

Juliomar você teria um exemplo populando a combobox ?

aqui um exemplo didático usando generics http://www.linhadecodigo.com.br/artigo/3465/classe-generica-para-transformar-tipos-enum-para-tstrings-em-delphi.aspx

13 horas atrás, Jeffe.info disse:

no meu Demo de boletos não tem esta rotina para escolher o banco e imprimir o boleto de acordo com o banco selecionado.

Tem ele está configurado diretamente no componente, é só ir nele e mudar manualmente, a parte da função de popular isso no componente tu consegue fazer né ;-)

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

  • 3 semanas depois ...
  • Este tópico foi criado há 1341 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.