Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membro Pro Verificado
Postado

Olá Juliomar, tudo bom?

Obrigado pela ajuda no tópico anterior.

Como o mesmo já foi respondido achei pertinente abrir um novo.

Ao perceber que o RLPreviewSetup1 é visto por todos os relatórios do meu projeto em Delphi, eu tive a ideia de colocar o RLPreviewSetup1 no meu DataModule e fazer um código universal para envio de e-mail no Fortes Report, na tela de Pré-Visualização. Dessa forma o usuário poderá usar o botão ENVIAR da Pré-Visualização de qualquer relatório e conseguir enviar o mesmo por e-mail.

Conforme citei no tópico anterior, atualmente uso o seguinte código para envio do e-mail:

procedure Trlr_rel_vendasnfce.EnviarEmail;
var
  para:String;
begin
  para := InputBox('Enviar relatório por e-mail','Preencha o(s) e-mail(s) abaixo:', '');
  if para <> '' then
    begin
      try
        RLReport1.SaveToFile(ExtractFilePath(Application.ExeName) + 'relatorio.pdf');

        frm_aviso := Tfrm_aviso.Create(Application);
        frm_aviso.lbl_aviso.Caption := '   Enviando e-mail';
        frm_aviso.Show;
        frm_aviso.BringToFront;
        Application.ProcessMessages;

        dtm_banco.ACBrMail1.Clear;
        dtm_banco.ACBrMail1.IsHTML := False;
        dtm_banco.ACBrMail1.Subject := 'Relatório Vendas NFCe ';

        AjustaParametrosDeEnvio(para);

        dtm_banco.ACBrMail1.AltBody.Text := 'Empresa: ' + dtm_banco.Emitente_Nome + #13 + #13 +
                                            'CNPJ: ' + dtm_banco.Emitente_CNPJCPF + #13 + #13 +
                                            'Telefone: ' + dtm_banco.Emitente_Fone + #13 + #13 +
                                            #13 + #13 + #13 + #13 +
                                            '* Este e-mail foi enviado automaticamente pelo aplicativo da B&D Sistemas.Favor não responder. ';

        dtm_banco.ACBrMail1.AddAttachment(ExtractFilePath(Application.ExeName) + 'relatorio.pdf');

        dtm_banco.ACBrMail1.Send(False);

        frm_aviso.Free;
        ShowMessage('Relatório enviado com sucesso');
      except
        on E : Exception do
          begin
            frm_aviso.Free;
            ShowMessage('ERRO' + #13 + #13 + e.message);
          end;
      end;
    end;
end;

O grande problema está no código responsável pela geração do PDF: 

RLReport1.SaveToFile(ExtractFilePath(Application.ExeName) + 'relatorio.pdf');

Como podem ver acima eu estou especificando um relatório... Existe algum comando que salve o PDF do relatório que está com a Pré-Visualização em execução??? Algo tipo "RLReportEmVisualizacaoNoMomento.SaveToFile(ExtractFilePath(Application.ExeName) + 'relatorio.pdf');"????

  • Fundadores
Postado
6 horas atrás, doidopb disse:

O grande problema está no código responsável pela geração do PDF: 

Qual é exatamente o problema ? ele não gera o PDF ? ocorre algum erro ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membro Pro Verificado
Postado

Olá Daniel...

Então, o código acima funciona pois foi escrito no mesmo formulário onde existe o objeto RLReport1, dentre vários existentes no meu projeto.

Se eu tentar simplesmente jogar o RLPreviewSetup1 e esse código no seu evento onSend para o DataModule, como no mesmo não existe tal componente RLReport1 a aplicação não irá compilar.

  • Membro Pro Verificado
Postado
9 horas atrás, Daniel Simoes disse:

Você não pode chamar: ACBrNFe1.DANFE.ImprimirDANFEPDF ?

Então, a princípio isso nada tem a ver com NFes ... A idéia é criar um código universal para enviar qualquer relatório do Fortes Report existente em minha aplicação. Seja um relatório de vendas, de estoque, financeiro... Todos teriam o botão ENVIAR ativado em sua Pré-Visualização e ao clicar no mesmo o relatório em questão seria enviado por e-mail.

Inclusive esse código seria finalmente um exemplo válido para todos com tal finalidade, pois procurei exaustivamente na internet e a única menção a algo parecido seria um exemplo (sendmail.zip) só que usando versões muito antigas do Fortes e mencionado em Foruns desativados há tempos.

Postado

Boa noite.

Anexei um projetinho com um exemplo de como faço para enviar.

Sete a propriedade "JobTitle" de cada relatório para servir como nome do arquivo pdf gerado.

Debug a unit SendMailOptions, até o "FilterPages", para entender como é gerado o pdf.

Falta só incluir sua rotina para enviar o email.

[]´s

Edson

EnviaRelatorioPorEmail.rar

  • Curtir 1
  • 5 semanas depois ...
  • Membro Pro Verificado
Postado
Em 03/07/2018 at 23:13, Edson.pol disse:

Boa noite.

Anexei um projetinho com um exemplo de como faço para enviar.

Sete a propriedade "JobTitle" de cada relatório para servir como nome do arquivo pdf gerado.

Debug a unit SendMailOptions, até o "FilterPages", para entender como é gerado o pdf.

Falta só incluir sua rotina para enviar o email.

[]´s

Edson

EnviaRelatorioPorEmail.rar

Olá meu amigo, tudo bom?

Obrigado pelo retorno e perdoe pela demora em responder, mas acabo de ver sua mensagem.

Irei verificar seu projeto e posto aqui os resultados.

Abraços

  • 2 anos depois...
  • Consultores
Postado

Tópico fechado por falta de retorno do usuário

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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á 1955 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...