Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

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

 

 

Postado

Esta revisão do fonte já foi feita?  Caso não tenha sido, há uma previsão?

Isto é para o caso de eu atualizar com o repositório ACBr e o problema voltar.

Atenciosamente

Sérgio

 

Postado

Í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

 

Postado

Bom dia Ítalo,

muito obrigado, um feliz 2019 para você, grupo ACBR e familiares, com muita saúde e felicidades.

Contem com minha ajuda.

 

Abraços

Sérgio

 

Postado

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;

  • Administradores
Postado

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

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