Ir para conteúdo
  • Cadastre-se

dev botao

Salvar DACTE CTeOS em PDF Fortes


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

Recommended Posts

  • Membros Pro

Boa tarde amigos,

 

Atualizei os fontes hoje e estou tentando salvar o pdf. Antes eu fazia da seguinte forma. Dentro da pasta do anomes (201710) eu criava uma pasta PDF e lá salvava o arquivo normalmente.

A propriedade pastapdf do dacte ficava por exemplo: C:\Sistema\ArqCte\201710\PDF

Isso já bastava para salvar automaticamente nessa pasta

Porém depois de atualizar eu continuo alimentando o componente com o mesmo path mas agora salva na seguinte pasta: C:\Sistema\ArqCTE\201710\PDF\CTeOS.

Uma alternativa que eu percebi alterar a propriedade AdicionarLiteral para False porém isso vai atrapalhar o local para salvar o xml.

Alguém sabe me dizer porque foi mudado isso no componente e como voltar como era antes?

 

Grato

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • 2 semanas depois ...
  • Membros Pro

Segue como resolvi: (Faça as adaptações ao seu projeto)

Eu tenho um procedure onde habilito ou não as propriedades do componente:

procedure TFRC_CTE.LerConfiguracao;
var
  Ok: Boolean;
  StreamMemo: TMemoryStream;
begin

  DM1.ACBrCTe1.Configuracoes.Certificados.NumeroSerie := DM1.TB99840NUMSERIE.Value;
  DM1.ACBrCTe1.Configuracoes.Certificados.Senha := DM1.TB99840SENHA_CERTIFICADO.Value;

  case DM1.TB99840FORMAEMISSAOCTE.Value of
    1: DM1.ACBrCTe1.Configuracoes.Geral.FormaEmissao := teNormal;
    8: DM1.ACBrCTe1.Configuracoes.Geral.FormaEmissao := teSVCSP;
  end;

  case DM1.TB99840SALVAR.Value of
    0: DM1.ACBrCTe1.Configuracoes.Geral.Salvar := False;
    1: DM1.ACBrCTe1.Configuracoes.Geral.Salvar := True;
  end;

  // rotina adicionada para salvar pasta mensal
  DM1.ACBrCTe1.Configuracoes.Arquivos.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.Geral.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.WebServices.Salvar := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.EmissaoPathCTe := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.SepararPorMes := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.AdicionarLiteral := True;
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathSalvar := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathCTe := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathInu := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathEvento := IncludeTrailingPathDelimiter(DM1.TB99840PATHCTE.Value);
  DM1.ACBrCTe1.Configuracoes.Arquivos.PathSchemas := ExtractFilePath(Application.ExeName) + '\SchemasCte';
  DM1.ACBrCTe1.DACTe.PathPDF := PastaMensalCTe(DtInicial, 'PDF');

  DM1.ACBrCTe1.Configuracoes.WebServices.UF := DMG.TB99100UF.Value;
  DM1.ACBrCTe1.Configuracoes.WebServices.Ambiente := StrToTpAmb(Ok, DM1.TB99840AMBIENTECTE.AsString);

  if DM1.ACBrCTe1.DACTe <> nil then
  begin
    DM1.ACBrCTe1.DACTe.Logo := DM1.TB99840LOGO.Value;
    DM1.ACBrCTeDACTeRL1.Logo := DM1.TB99840LOGO.Value;
    case DM1.TB99840DACTE.Value of
      1: DM1.ACBrCTe1.DACTe.TipoDACTe := tiRetrato;
      2: DM1.ACBrCTe1.DACTe.TipoDACTe := tiPaisagem;
    end;
    case DM1.TB99840VISUALIZADACTE.Value of
      0: DM1.ACBrCTe1.DACTe.MostrarPreview := False;
      1: DM1.ACBrCTe1.DACTe.MostrarPreview := True;
    end;
  end;

  case DM1.TB99840EMAILAUTO.Value of
    0: EmailAuto := False;
    1: EmailAuto := True;
  end;

end;

 

Daí criei uma procedure para ativar ou desativar os campos que "atrapalham" o local de salvar o pdf

 

procedure TFRC_CTE.ConfigPDF(Liga: Boolean);
begin
  with DM1.ACBrCTe1 do
  begin
    Configuracoes.Arquivos.OrdenacaoPath.Clear;
    Configuracoes.Arquivos.AdicionarLiteral := Liga;
    Configuracoes.Arquivos.Salvar := Liga;
    Configuracoes.Arquivos.SepararPorAno := False;
    Configuracoes.Arquivos.SepararPorCNPJ := False;
    Configuracoes.Arquivos.SepararPorDia := False;
    Configuracoes.Arquivos.SepararPorMes := Liga;
    Configuracoes.Arquivos.SepararPorModelo := False;
  end;
end;

 

Agora ficou fácil. Toda vez que vou gerar o pdf antes eu chamo a procedure

ConfigPDF(False);

Depois de gerar o pdf eu chamo a procedure novamente :

ConfigPDF(True) ;

Lembrando que pra geração de e-mail deve ser feito a mesma coisa.

Espero ter ajudado. 

Rodrigo Cardilo

Card System Info

[email protected]

Link para o comentário
Compartilhar em outros sites

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