Ir para conteúdo
  • Cadastre-se

igor8831

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Posts postados por igor8831

  1. 23 minutos atrás, Italo Jurisato Junior disse:

    Boa tarde Igor,

    Analisando o código abaixo que se encontra na unit ACBrCTeDACTeRLClass, o componente deveria salvar em disco os PDF de cada CT-e carregado no componente.

    O local onde será salvo é definido na propriedade de configuração PathPDF e os nomes dos PDF seguem o seguinte formato: <chave>-cte.pdf

    
        for i := 0 to TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 do
        begin
          FPArquivoPDF := PathWithDelim(TACBrCTe(ACBrCTe).DACTE.PathPDF) +
              OnlyNumber(TACBrCTe(ACBrCTe).Conhecimentos.Items[i].CTe.infCTe.ID) + '-cte.pdf';
    
          TACBrCTe(ACBrCTE).Conhecimentos.Items[i].NomeArqPDF := FPArquivoPDF;
    //      if i < TACBrCTe(ACBrCTe).Conhecimentos.Count - 1 then
    //        FPArquivoPDF := FPArquivoPDF + sLinebreak;
    
          case TamanhoPapel of
            tpA5: TfrmDACTeRLRetratoA5.SalvarPDF(Self, TACBrCTe(ACBrCTe).Conhecimentos.Items[i].CTe, FPArquivoPDF);
            else TfrmDACTeRLRetrato.SalvarPDF(Self, TACBrCTe(ACBrCTe).Conhecimentos.Items[i].CTe, FPArquivoPDF);
          end;
        end;

     

    Oi Italo, boa tarde.

    Então, entendi, mas pelo que vejo ele está fazendo um laço.... então ele não estaria (no meu caso) respeitando que eu carreguei varias vezes o ACBrCTe com varios xmls, pegando, acho eu, sempre o último e só gera do último, mas isso somente quando eu carrego varios xmls sem usar o clear e ao usar o ImprimirPDF.

    Já com o Imprimir com a propriedade MostrarPreview como True é que eu consigo na tela, ver que estão todos ali e aí é que está, sou obrigado a salvar como pdf manualmente...

    Veja quando carrego varias vezes o xml na ferramenta e mando imprimir com o mostrarpreview como true aparece como na imagem, porém, manualmente clico em salvar e etc.... escolho local e nome... ai sim da certo, mas a ideia é eu passar um nome por uma variavel e gerar o pdf...

    dacte.png

    20 minutos atrás, everson.turossi disse:

    Já tive a mesma necessidade para NF-e onde precisava que várias DANFEs fossem anexadas a um único PDF. Acabei utilizando a dll gsdll32.dll do GhostScript que é capaz de manipular PDFs e inclusive mesclar vários arquivos em um único arquivo. Se não conseguir de outra forma, da um toque que anexo aqui as units.

    Oi Everson, obrigado pela pronta resposta.

    Vamos ver o que consigo, mas se der BIGODE aí a gente parte pra DLL.

  2. Boa tarde galera.

    é a primeira vez que crio um tópico, e, toda ajuda e puxão de orelha será bem-vindo.

    Estou precisando fazer o seguinte...

    Tenho um cliente potencial que está com o operacional em uma cidade e o galpão em outra e o operacional emite os ctes (média de 125/dia) e envia o PDF para o galpão por e-mail para imprimir.

    Para facilitar, na minha aplicação, eu carrego o ACBrCTe varias vezes usando o LoadFromFile sem limpar, aponto MostraPreview para True e dou o comando imprimir.

    Feito isso, ele exibe no FortesReport uma única vez todos os DACTes, um por página.... é aí que o cliente clica em salvar, escolhe PDF e ele gera um único PDF com todos os CTes, óbvio, facilitando o envio de arquivo único para impressão.

    O que gostaria de fazer, é manipular este salvamento, indicando: local e nome_específico deste PDF único para que minha aplicação facilite mais ainda abrindo o outlook já com o arquivo em anexo...

    Mas não estou conseguindo.

    Lembrando que já tentei usar o ImprimirPDF, mas ele só gera o PDF com um CTe e normalmente o último, já tentei o ImprimirPDF seguido do Imprimir e acontece a mesma coisa.

    Acho que no ACBrCTe, estes comandos de Imprimir e ImprimirPDF limpam ou vão para o ultimo registro, não sei... mas para não perder, será que pode-se criar um ImprimirPDF2?? risos...

    Segue comando que uso e agradeço a ajuda ou sugestões....

      LerCTe2;
      DM.ImprimirCtes.SQL.Clear;
      DM.ImprimirCtes.SQL.Add('SELECT * FROM conhecimentos WHERE ');
      DM.ImprimirCtes.SQL.Add('marca_cte = "X" AND beneficiario = "' + DM.Global.FieldByName('nome').AsString + '"');
      DM.ImprimirCtes.Open;
      DM.ImprimirCtes.First;
      Form102.ACBrCTe1.Conhecimentos.Clear;
      while not DM.ImprimirCtes.Eof do
      begin
        DM.XMLCte.SQL.Clear;
        DM.XMLCte.SQL.Add('SELECT * FROM xml_cte WHERE ');
        DM.XMLCte.SQL.Add('cte = "' + DM.ImprimirCtes.FieldByName('cte').AsString + '" AND beneficiario = "' + DM.Global.FieldByName('nome').AsString + '"');
        DM.XMLCte.SQL.Add('AND sts = "OK"');
        DM.XMLCte.Open;

        If DM.XMLCte.RecordCount = 1 Then
        begin
          TBlobField(DM.XMLCte.FieldByName('arquivo')).SaveToFile(DM.Global.FieldByName('unidade_sistema').AsString + '\' + DM.Global.FieldByName('pasta_cte').AsString + '\' + DM.ImprimirCtes.FieldByName('cte_chave').AsString + '-cte.xml');
          Form102.ACBrCTe1.Conhecimentos.LoadFromFile(DM.Global.FieldByName('unidade_sistema').AsString + '\' + DM.Global.FieldByName('pasta_cte').AsString + '\' + DM.ImprimirCtes.FieldByName('cte_chave').AsString + '-cte.xml');
        end;
        DM.ImprimirCtes.Next;
      end;
      Form102.ACBrCTeDACTeRL1.MostraPreview := True;
      Form102.ACBrCTe1.Conhecimentos.Imprimir;
    //  Form102.ACBrCTe1.Conhecimentos.ImprimirPDF;
      Form102.ACBrCTeDACTeRL1.MostraPreview := False;

  3. Precisei fazer umas modificações no DACT-e (Fortes Report), apenas fontes.

    Então, fui na pasta FONTES do acbr e abri os "ACBrDACTeRL" e fiz as devidas alterações.

    Sendo que salvei, fechei e abri o meu projeto, este desenvolvido em Delphi XE7 e ao testar a visualização do DACT-e, não apareceu nenhuma das mudanças que fiz.

    Então, pergunto: o que devo fazer para que as minhas modificações sejam atualizadas? Não sei "recompilar", "recompilar o acbr todo". Alguém pode me ajudar?

×
×
  • 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.

The popup will be closed in 10 segundos...