Ir para conteúdo
  • Cadastre-se

dev botao

Erro imprimir PDF Fortes TACBrCTeDACTeRL.ImprimirDACTePDF


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

Recommended Posts

Boa tarde, após a mudança de Salvar para Salva, etc... ao gerar PDF de vários CTE começou a dar erro nas minhas rotinas.

Fui verificar e no DACTERL (Fortes), as linhas em comentário é que causaram o erro.

FPArquivoPDF := FPArquivoPDF + PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
                               OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe.infCTe.ID) + '-cte.pdf';

 if i < TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 then
       FPArquivoPDF := FPArquivoPDF + sLinebreak;

Havendo mais de um CTe, a variável FPArquivoPDF vai ficando com todos os arquivos separados por um LINE BREAK (#13+#10).

Com isso, o primeiro PDF gera corretamente, os demais não.

A    linha em vermelho corrige.

 

procedure TACBrCTeDACTeRL.ImprimirDACTePDF(CTe: TCTe = nil);
var
  i: integer;
begin

  FPArquivoPDF := '';
  if CTe = nil then
  begin
    for i := 0 to TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 do
    begin
//      FPArquivoPDF := FPArquivoPDF + PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
//          OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe.infCTe.ID) + '-cte.pdf';

//      if i < TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 then
//        FPArquivoPDF := FPArquivoPDF + sLinebreak;
//      Linha inserida
      FPArquivoPDF := PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
          OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe.infCTe.ID) + '-cte.pdf';

      case TamanhoPapel of
        tpA5: TfrmDACTeRLRetratoA5.SalvarPDF(Self, TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe, FPArquivoPDF);
        else TfrmDACTeRLRetrato.SalvarPDF(Self, TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe, FPArquivoPDF);
      end;
    end;
  end
  else
  begin
    FPArquivoPDF := PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) + OnlyNumber(CTe.infCTe.ID) + '-cte.pdf';

    case TamanhoPapel of
        tpA5: TfrmDACTeRLRetratoA5.SalvarPDF(Self, CTe, FPArquivoPDF);
        else TfrmDACTeRLRetrato.SalvarPDF(Self, CTe, FPArquivoPDF);
    end;
  end;
end;
 

Atenciosamente

Sérgio

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Sergio,

Acredito que essa alteração foi feita pois alguém reclamou que só conseguia ter acesso ao nome do primeiro PDF caso fosse gerado mais de um.

Mas ao meu ver essa implementação esta errado, deveríamos ter os nomes dos PDF em uma lista e não concatenados em uma string.

  • Curtir 2
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia Ítalo,

realmente a alteração causou um problema na impressão.

Alías estas últimas alterações trouxeram um trabalho extra.  Não vi necessidade de tirar o R do verbo.

Mas é péssimo fazerem uma alteração desta sem testar, pois atualizamos e mandamos o executável e ai começa a chover problemas.

Percebi que na parte de CTe, MDFe não há muita gente acompanhando e envolvida.  

Se houver interesse gostaria de participar mais ativamente.

Abraços

Sérgio

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Sérgio,

Toda ajuda é bem vinda.

O Refactoring  realizado nos componentes de impressão, tinha que ser feito, pois a coisa estava saindo do controle.

  • Curtir 2
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Sérgio,

Favor anexar a unit que você fez a correção, fica mais fácil de fazermos a analise.

Desde já muito obrigado pela colaboração.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Sergio,

Fiz algo mais interessante para poder obter o nome do arquivo PDF gerado, principalmente quando se tem "N" PDFs.

Favor atualizar os fontes e realizar os testes.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Ítalo

continua errado

      FPArquivoPDF := FPArquivoPDF + PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
          OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe.infCTe.ID) + '-cte.pdf';

      TACBrCTe(ACBrCTE).Conhecimentos.Items.NomeArqPDF := FPArquivoPDF;
 

No segundo PDF ele gera assim.  Bem óbvio.  Vai acumulando.

D:\xml\201812\CTe\35234513190756000273570010000904671027466519-cte.pdfD:\xml\201812\CTe\35234513190756000273570010000904681027466524-cte.pdf

 

Correto  (Favor substituir)

      FPArquivoPDF := PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
          OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items.CTe.infCTe.ID) + '-cte.pdf';

      TACBrCTe(ACBrCTE).Conhecimentos.Items.NomeArqPDF := FPArquivoPDF;
 

Eu passei correto, que fez este remendo?  

Atenciosamente

Sérgio

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Sérgio,

Eita passou batido, muito obrigado pela observação, vou fazer a correção e enviar para o repositório ainda hoje.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Sergio,

Ontem tive problemas com o envio da correção, acabei enviando hoje de manhã.

Favor atualizar os fontes e fazer novos testes.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia,

a rotina de impressão do DACTE, pelo Forte Reports não tem mais a configuração do número de cópias?

A do Fast Report tem.

Atenciosamente

Sérgio

unction TACBrCTeDACTEFR.PrepareReport(ACTE: TCTe): Boolean;
var
  i: Integer;
  Stream: TStringStream;
begin
  Result := False;

  if Trim(FastFile) <> '' then
  begin
    if not (UpperCase(Copy(FastFile, Length(FastFile)-3, 4)) = '.FR3') then
    begin
      Stream := TStringStream.Create(FastFile);
      frxReport.FileName := '';
      frxReport.LoadFromStream(Stream);
      Stream.Free;
    end
    else
    if FileExists(FastFile) then
      frxReport.LoadFromFile(FastFile)
    else
      raise EACBrCTeDACTEFR.CreateFmt('Caminho do arquivo de impressão do DACTE "%s" inválido.', [FastFile]);
  end
  else
    raise EACBrCTeDACTEFR.Create('Caminho do arquivo de impressão do DACTE não assinalado.');

  frxReport.PrintOptions.Copies := NumCopias;
  frxReport.PrintOptions.ShowDialog := MostraSetup;
  frxReport.ShowProgress := MostraStatus;
  frxReport.PreviewOptions.AllowEdit := False;

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde Segio

Para este novo item queira por favor criar um novo tópico.

Att.

  • Curtir 1
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

  • Este tópico foi criado há 1910 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.