Ir para conteúdo
  • Cadastre-se

dev botao

Problema Na Impressão De Boletos


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

Recommended Posts

Postado

Bem galera meu erro é o seguinte, na minha maquina com ACBr , Delphi , BD ta tudo certinho o proplema é quando resolvo trocar de maquina eu levo EXE, DCU, as fontes , e BD e os arquivos do boleto... mais quando eu cliem em imprimir não mostra nada .. mais com outros geradores como Rave,Report Builder , funcionan ... obs: to usando os arquivos do FastReport pra fazer isso .. alguém poderia me ajudar?

Postado (editado)

uso o fastreport que vem instalado com o delphi xe 2, sera se não falta alguma  dll. ou outro tipo de arquivo, meu caminha para pegar os arquivos estão assim, '\\servidor\c\programa\etc....  uso BD Firebird ...

 

 

obs: sempre instalo o firebird na maquina que vou usar o exe, e o delphi não esta instalado na maquina, levo apenas a pasta do programa com exe e BD ..

Editado por Flávio Machado
  • 2 semanas depois ...
Postado (editado)

sempre que executo com o delphi na hora de gerar os boletos aparece essa mensagem  'Could not convert variant of type (String) into type (Double)'. Process ..._XE2.exe (1208) , mas quando executo o exe na minha maquina ele gera os boletos normalmente ... isso afetaria algo no exe em outra maquina ?

Editado por Flávio Machado
  • Moderadores
Postado

O erro é do componente? pelo que vejo da mensagem está parecendo mais um problema de dados, na hora em que busca ou preenche dados está ocasionando o erro!

esse problema ocorre também com o Demo do Boleto? consegue repassar um passo a passo como fazer?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado

esse erro o corre quando uso os arquivos Boleto.fr3BoletoCarne.fr3  mas quando o corre o erro eu clico em continuar e os boletos aparecem certinho, esse erro não o corre com BoletoFR.fr3 , mas o que eu ainda não entendi é por que os boletos não são gerados no meu exe, quando mudo meu projeto de maquina..!! 

  • 1 ano depois...
Postado

pessoal estou com esse mesmo problema aqui 

esse erro o corre quando uso os arquivos Boleto.fr3 e BoletoCarne.fr3  mas quando o corre o erro eu clico em continuar e os boletos aparecem certinho, eu não queria mudaer para Fort Report alguém sabe como resolver?

  • Administradores
Postado

Boa noite.

Esse tópico é bem antigo..vc está tendo o mesmo problema mesmo com os fontes atualizados na versão atual?

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

Postado

sim está atualizado, ja compilei comentarizei linhas mais nada da solução veja meu código

 

var
  Titulo    : TACBrTitulo;
  I         : Integer;
  NrTitulos : Integer;
  NrTitulosStr :String;
  Convertido: Boolean;
  sLocalPgto:string;

begin

   if DMRelatorio1.dtBoleto.RecordCount = 0 then
   begin
       ShowMessage('Não existe boletos a ser mostrados!!!');
       exit;
   end;
    DMRelatorio1.dtBoleto.Last;
    NrTitulos    := DMRelatorio1.dtBoleto.RecordCount;
    NrTitulosStr := IntToStr(NrTitulos);
    Convertido   := true;

    if dm.dtConfigBoletoLOYOUT_BOLETO.AsString='Padrao' then
       ACBrBoleto1.ACBrBoletoFC.LayOut := lPadrao
    else if dm.dtConfigBoletoLOYOUT_BOLETO.AsString='Carne' then
       ACBrBoleto1.ACBrBoletoFC.LayOut := lCarne
    else if dm.dtConfigBoletoLOYOUT_BOLETO.AsString='Fatura' then
       ACBrBoleto1.ACBrBoletoFC.LayOut := lFatura
    else if dm.dtConfigBoletoLOYOUT_BOLETO.AsString='PadraoEntrega' then
       ACBrBoleto1.ACBrBoletoFC.LayOut := lPadraoEntrega;


    if dm.dtConfigBoletoBANCO.AsString='Banco do Brasil' then
       ACBrBoleto1.Banco.TipoCobranca:= cobBancoDoBrasil
    else if dm.dtConfigBoletoBANCO.AsString='Bradesco' then
       ACBrBoleto1.Banco.TipoCobranca:= cobBradesco
    else if dm.dtConfigBoletoBANCO.AsString='Caixa' then
       ACBrBoleto1.Banco.TipoCobranca:= cobCaixaEconomica
    else if dm.dtConfigBoletoBANCO.AsString='Banco do Nodeste' then
       ACBrBoleto1.Banco.TipoCobranca:= cobBancoDoNordeste
    else if dm.dtConfigBoletoBANCO.AsString='Banco HSBC' then
       ACBrBoleto1.Banco.TipoCobranca:= cobHSBC
    else if dm.dtConfigBoletoBANCO.AsString='Banco Itaú' then
       ACBrBoleto1.Banco.TipoCobranca:= cobItau
    else if dm.dtConfigBoletoBANCO.AsString='Banco Santander' then
       ACBrBoleto1.Banco.TipoCobranca:= cobSantander;

    sLocalPgto := dm.dtConfigBoletoBANCO.AsString;


    if dm.dtConfigBoletoEMPRESA_CARAC_TITULO.AsString='Caucionada' then
      ACBrBoleto1.Cedente.CaracTitulo:= tcCaucionada
    else if dm.dtConfigBoletoEMPRESA_CARAC_TITULO.AsString='Descontada' then
      ACBrBoleto1.Cedente.CaracTitulo:= tcDescontada
    else if dm.dtConfigBoletoEMPRESA_CARAC_TITULO.AsString='Simples' then
      ACBrBoleto1.Cedente.CaracTitulo:= tcSimples
    else if dm.dtConfigBoletoEMPRESA_CARAC_TITULO.AsString='Vendor' then
      ACBrBoleto1.Cedente.CaracTitulo:= tcVendor

    else if dm.dtConfigBoletoEMPRESA_CARAC_TITULO.AsString='Vinculada' then
      ACBrBoleto1.Cedente.CaracTitulo:= tcVinculada;


    if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco Emite' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbBancoEmite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco não Reemite' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbBancoNaoReemite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco Reemite' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbBancoReemite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Cliente' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbCliEmite;

    ACBrBoleto1.Cedente.Nome:= dm.dtConfigBoletoNOME_EMPRESA.AsString;
    ACBrBoleto1.Cedente.Agencia:= dm.dtConfigBoletoEMPRESA_AGENCIA.AsString;
    ACBrBoleto1.Cedente.AgenciaDigito:= dm.dtConfigBoletoEMPRESA_AGENCIA_DIGITO.AsString;
    ACBrBoleto1.Cedente.Bairro:= dm.dtConfigBoletoAGENCIA_BAIRRO.AsString;
    ACBrBoleto1.Cedente.CEP:=dm.dtConfigBoletoEMPRESA_CEP.AsString;
    ACBrBoleto1.Cedente.Cidade:=dm.dtConfigBoletoEMPRESA_CIDADE.AsString;
    ACBrBoleto1.Cedente.CNPJCPF:=dm.dtConfigBoletoEMPRESA_CNPJ.AsString;
    ACBrBoleto1.Cedente.CodigoCedente:=dm.dtConfigBoletoEMPRESA_CODIGO_SEDENTE.AsString;
    ACBrBoleto1.Cedente.CodigoTransmissao:=dm.dtConfigBoletoEMPRESA_CODIGO_TRANSMISSAO.AsString;
    ACBrBoleto1.Cedente.Complemento:=dm.dtConfigBoletoEMPRESA_COMPLEMENTO.AsString;
    ACBrBoleto1.Cedente.Conta:=dm.dtConfigBoletoEMPRESA_CONTA.AsString;
    ACBrBoleto1.Cedente.ContaDigito:=dm.dtConfigBoletoEMPRESA_CONTA_DIGITO.AsString;
    ACBrBoleto1.Cedente.Convenio:=dm.dtConfigBoletoEMPRESA_CONVENIO.AsString;
    ACBrBoleto1.Cedente.Logradouro:=dm.dtConfigBoletoEMPRESA_LOGRADORO.AsString;
    ACBrBoleto1.Cedente.Modalidade:='';

    //tipo carteira
    if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco Emite' then
      ACBrBoleto1.Cedente.ResponEmissao:=tbBancoEmite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco não Reemite' then
      ACBrBoleto1.Cedente.ResponEmissao:=tbBancoNaoReemite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Banco Reemite' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbBancoReemite
    else if dm.dtConfigBoletoEMPRESA_RESPONS_EMISSAO.AsString='Cliente' then
      ACBrBoleto1.Cedente.ResponEmissao:= tbCliEmite ;

    //Tipo inscricao
    if dm.dtConfigBoletoEMPRESA_TIPO_INSCRICAO.AsString='Jurídica' then
      ACBrBoleto1.Cedente.TipoInscricao:= pJuridica
    else if dm.dtConfigBoletoEMPRESA_TIPO_INSCRICAO.AsString='Física' then
      ACBrBoleto1.Cedente.TipoInscricao:= pFisica  ;

     ACBrBoleto1.Cedente.UF:= dm.dtConfigBoletoEMPRESA_UF.AsString ;

   DMRelatorio1.dtBoleto.First;
   for I := 1 to NrTitulos do
   begin

           Titulo:= ACBrBoleto1.CriarTituloNaLista;

           with Titulo do
           begin
              LocalPagamento    := 'Pagar preferêncialmente nas agências do ' + sLocalPgto; //MEnsagem exigida pelo bradesco
             if DMRelatorio1.dtBoletoNEGOCIADA.AsString = 'S' then
                Vencimento        := DMRelatorio1.dtBoletoNOVA_DT_VENCIMENTO.AsDateTime
              else
                Vencimento        := DMRelatorio1.dtBoletoDT_VENCIMENTO.AsDateTime;

              DataDocumento     := date;
              NumeroDocumento   := IntToStr(DMRelatorio1.dtBoletoCODIGO.AsInteger);
              EspecieDoc        := dm.dtConfigBoletoESPECIE_DOCTO.AsString;

              if dm.dtConfigBoletoACEITE.AsString='Sim' then
                 Aceite            := atSim
              else
                 Aceite            := atNao;

              DataProcessamento := Now;

              if ACBrBoleto1.Banco.TipoCobranca= cobCaixaEconomica then
                 Carteira          :='SR'  //se for carteira sem registro
              else
                 Carteira          := dm.dtConfigBoletoCARTEIRA.AsString;


              // Nosso numero é composto pelo numero do convênio e o resto pode ser qualquer numero
             //  para preencher de zero é só colocar no display formate do cliente dataset

              NossoNumero       := IntToStr(DMRelatorio1.dtBoletoCODIGO.AsInteger) ;
              ValorDocumento    := DMRelatorio1.dtBoletoVALOR_DEBITO.AsFloat;
              ValorRecebido     := DMRelatorio1.dtBoletoVALOR_DEBITO.AsFloat;

              TotalParcelas     :=  DMRelatorio1.dtBoletoQUANTPARCELA.AsInteger;
              Parcela           :=  DMRelatorio1.dtBoletoN_PARCELA.AsInteger;

              Sacado.NomeSacado := DMRelatorio1.dtBoletoNOME_CLIENTE.AsString;
              Sacado.CNPJCPF    := DMRelatorio1.dtBoletoCPF_CLIENTE_FORMATADO.AsString;
              Sacado.Logradouro := DMRelatorio1.dtBoletoNOME_ENDERECO_CLIENTE.AsString;
              Sacado.Numero     := DMRelatorio1.dtBoletoN_RESIDENCIA.AsString;
              Sacado.Bairro     := DMRelatorio1.dtBoletoNOME_BAIRRO_CLIENTE.AsString;
              Sacado.Cidade     := DMRelatorio1.dtBoletoNOME_CIDADE_CLIENTE.AsString;
              Sacado.UF         := DMRelatorio1.dtBoletoNOME_UFS_CLIENTE.AsString;
              Sacado.CEP        := DMRelatorio1.dtBoletoCEP_CLIENTE.AsString;
              ValorMoraJuros    := DMRelatorio1.dtBoletoJUROSDIA.AsFloat;
              ValorDesconto     := dm.dtConfigBoletoVALOR_DESCONTO.AsFloat;
              ValorAbatimento   := dm.dtConfigBoletoVALOR_ABATIMENTO.AsFloat;
              DataMoraJuros     := dm.dtConfigBoletoDATA_MULTA_MORA_JUROS.AsDateTime;
              DataDesconto      := dm.dtConfigBoletoDATA_DESCONTO.AsDateTime;
              DataAbatimento    := dm.dtConfigBoletoDATA_ABATIMENTO.AsDateTime;
              DataProtesto      := dm.dtConfigBoletoDATA_PROTESTO.AsDateTime;

              // o campo de mensagem da multa deve ser alterar no fonte para ficar assim
              //    if PercentualMulta <> 0 then
              //   AStringList.Add(ACBrStr('Cobrar Multa de ' +
              //                   FormatCurr('R$ #,##0.00', PercentualMulta) +
              //           ' após o vencimento.'));


              PercentualMulta   := dm.dtConfigBoletoMULTA_SIOSFTWARE.AsFloat;

              Mensagem.Text     := 'LOCALIZAÇÃO: '+DMRelatorio1.dtBoletoNOME_LOTEAMENTO.AsString+' - '+DMRelatorio1.dtBoletoNOME_QUADRA.AsString+' - '+DMRelatorio1.dtBoletoNOME_LOTE.AsString +#13
              + '' + #13 + 'Data de Vencimento base: ' + DateToStr(DMRelatorio1.dtBoletoDT_VENCIMENTO.AsDateTime) ;


              Instrucao1        := padL(trim(dm.dtConfigBoletoINSTRUCAO_1.AsString),2,'0');
              Instrucao2        := padL(trim(dm.dtConfigBoletoINSTRUCAO_2.AsString),2,'0');

              OcorrenciaOriginal.Tipo := toRemessaBaixar;
              ACBrBoleto1.AdicionarMensagensPadroes(Titulo,Mensagem);
           end;


      DMRelatorio1.dtBoleto.Next;
   end;

  • Administradores
Postado

Boa noite.

Qual é  a mensagem de erro ao imprimir os boletos?

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

Postado

Could not convert variant of type (String) into type (Double)

eu sei que é algum problema de formato double para string mais eu não to passando nenhum valor do tipo errado

  • Administradores
Postado

Boa noite.

Você teve o mesmo problema com o demo?

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

  • 2 semanas depois ...
Postado

pessoal eu peguei um boleto formatado de uma amigo e não deu erro na debugação na minha máquina ai fui levar ao cliente e deu erro de violação de memória e descobrir que foi nessas classes aqui do acbr ACBrNFeDANFEClass ou ACBrBoletoFCFR, porque fui removendo para teste e passou, agora aonde mora o problema porque e como resolver

  • 9 meses depois ...
Postado

Alguem conseguiu resolver esse problema?

Esse problema é muito antigo, ja aconteceu comigo outras vezes e eu peguei o  Boleto.fr3 de uma outra pessoa aqui do fórum que postou e disse que a versão do layout dele não dava esse problema, agora atualizei o Acbr e substituiu o relatório  Boleto.fr3 e voltou o problema.

Erro ao gerar boleto: could not convert variant of type (string) into type (double)

Veja na imagem que ao tentar gerar o boleto tem uma function TfrxCustomMemoView.CalcAndFormat(const Expr: WideString; Format: TfrxFormat): WideString; essa function verifica se o tipo é String, se for diferente ele chama a function FormatData e tenta formatar uma String, os campos Loca Pagamento, Banco e Nome que ele esta tentando formatar.

ERRO1.PNG

ERRO2.PNG

  • Moderadores
Postado

Tu está debugando as classes do Fast report!! por que?

seu problema é que o boleto ou arquivo que tem ai está incompleto  ou não está compatível o tipo do fr3 com os dados que é informado do dataset pra imprimir o boleto simples!

basta descobrir qual do campos que não está indo a informação e alterar no fr3 ou ver onde alimente ele!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado (editado)

Achei o erro, alguém do ACBr pode ajustar o Boleto.fr3 e o BoletoCarne.fr3 e subir a correção no SVN ou sobe o que eu alterei.

Boleto.fr3

BoletoCarne.fr3

É só abrir os dois relatórios e nos campo Titulo.LocalPagamento e Cedente.Nome e colocar o Format como Text, eles estão como Date/Time por isso ocorre o erro, é só mudar em todos os campos Titulo.LocalPagamento e Cedente.Nome

ERRO3.PNG

 

 

Editado por Carlos Alberto Fitl
  • Curtir 1
  • Este tópico foi criado há 1997 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.