Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
Preciso enviar emails para diferentes contatos de alguns relatórios do Qlikview, como não tenho o PDF Distribution e nem o NPrint a solução esta sendo por macro.
1-Consegui com a ajuda do post do Yuri gerar o arquivo PDF
2-não estou conseguindo enviar o emai
Poderiam me ajudar?
sub TesteEmail
Set objMsg = CreateObject("CDO.Message")
Set msgConf = CreateObject("CDO.Configuration")
'Server Configuration
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'smtp do email
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "meu@gmail.com" 'seu email
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "minhasenha" 'senha
msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
msgConf.Fields.Update
'End With
objMsg.To = "parameu@hotmail.com" 'email pra quem voce quer mandar
objMsg.From = "domeu@gmmail.com" 'seu email
objMsg.Subject = "teste qlikview"
objMsg.HTMLBody = "testando e-mail "
'objMsg.AddAttachment "C:\...\tabela.jpg"
objMsg.AddAttachment "C:\Users\twister\Desktop\PDF\TABELA_PRECO.pdf"
objMsg.Sender = "Mr. Name"
Set objMsg.Configuration = msgConf
objMsg.Send
msgbox("e-mail enviado")
Set objMsg = nothing
Set msgConf = nothing
end sub
Sub TabelaPreco
'Imprime Tabela de Preço
'Chamada da função passando os seguintes argumentos - 1: Nome do arquivo a ser gerado - 2: Nome do Report a ser gerado
PrintPDF "TABELA_PRECO", "RP01"
ActiveDocument.GetApplication.WaitForIdle
End Sub
Sub PrintPDF(ReportName, ReportID)
'Caminho a ser gerado o relatório encontra-se na variável
Path = ActiveDocument.Evaluate("vPathArquivos")
'Criando instância do PDFCreator
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
'Variáveis de configuração da biblioteca PDFCreator
With pdfjob
'Verificações da fila da impressora
If .cStart("/NoProcessingAtStartup") = False Then
If .cStart("/NoProcessingAtStartup", True) = False Then
'Caso não tenha nenhum objeto na fila de impressão, termina a macro.
Exit Sub
End if
'Caso tenha objeto na fila de impressão, torne a impressão visível
.cVisible = True
End If
.cOption("UseAutosave") = 1 'Permitir o Autosave
.cOption("UseAutosaveDirectory") = 1 'Permitir que grave no diretório
.cOption("AutosaveDirectory") = Path 'Caminho que será gravado o relatório
.cOption("AutosaveFilename") = ReportName 'Nome que será gravado o relatório
.cOption("AutosaveFormat") = 0 'Formato PDF
.cClearCache
'Finalizando as configurações da biblioteca PDFCreator
End With
'Imprime o relatório
ActiveDocument.PrintReport ReportID, "PDFCreator"
'Aguarde até que o processo entre na fila de impressão
Do Until pdfjob.cCountOfPrintjobs = 1
ActiveDocument.GetApplication.Sleep 20
Loop
pdfjob.cPrinterStop = False
'Aguarda até que a fila de impressão esteja vazia
Do Until pdfjob.cCountOfPrintjobs = 0
ActiveDocument.GetApplication.Sleep 20
Loop
'Termina o processo
pdfjob.cClose
'Zerando a variável
Set pdfjob = Nothing
End Sub
twister8,
segue o modelo alterado. Este modelo fazia um loop em um determinado campo e disparava um PDF para cada um com os dados deles. Me parece que basta um unico PDF então mudei o código.
Segue um outro modelo de exemplo com uma exportação para jpg e envio de email no corpo.
Tem um outro pdf2 que tambem gera um pdf e envia email.
twiester8, boa noite.
eu tenho um modelo que eu uso.
Segue ele como exemplo e a configuracao do PDFCreator. Ele tem que salvar automaticamento em uma pasta para o arquivo ser enviado por email.
Boa noite, desde já obrigado pela ajuda
Estou com problemas não esta gerando o arquivo .pdf e nem enviando o email.
se vc puder dar uma olhada em que estou erradno no .qvw
twister8,
segue o modelo alterado. Este modelo fazia um loop em um determinado campo e disparava um PDF para cada um com os dados deles. Me parece que basta um unico PDF então mudei o código.
Segue um outro modelo de exemplo com uma exportação para jpg e envio de email no corpo.
Tem um outro pdf2 que tambem gera um pdf e envia email.
Boa tarde,
Uma pergunta:
Considerando o seguinte cenário do ambiente qlikview, onde tenho servidores para a carga, para o access point e para as aplicações. Em quais dos servidores eu deveria instalar o PDFCreator 1.7.3
Instale no mesmo servidor onde está o qlikview desktop, já que as macros são executadas através dele.
conforme o Pablo falou, no server aonde tem o qv desktop. Eu alugaria licenca para ele e ainda desativar o update do pdfcreator senao fica perguntando se quer atualizar e nao roda o email.......
Boa tarde, obrigado pelas respostas.
Verifiquei que há instalado o PDF-XChange 3.0 vou tentar fazer utilizando esse.
Vocês sabem se é possível?
Este é instalado pelo QlikServer. Mesmo assim eu instalo o PDFCreator pois tem que definir aonde vai salvar o arquivo .pdf que sera lido pela macro para enviar por email.
é então achei um código e estou tentando usar, funcionou gerou o PDF, mas ele abre a a tela do PDF-XChange para eu definir o local para salvar e o nome do arquivo.
Com o PDF-XChange eu não consigo definir onde salvar o arquivo de forma automática via macro, como o codigo que temos do PDFCreator? eu preciso realmente ter o PDFCreator instalado?
codigo usado do PDF-XChance
public Sub Print_PDF(sPDFPath_src, sPDFPath_dest, sPDFName_dest, sReportID)
ActiveDocument.PrintReport sReportID, "PDF-XChange 3.0", false
Set objFSO = CreateObject("Scripting.FileSystemObject")
'If the folder not exists then -> create
If Not objFSO.FolderExists(sPDFPath_dest) Then
Set newfolder = objFSO.CreateFolder(sPDFPath_dest)
End If
PDFFullName = sPDFPath_dest & "\" & sPDFName_dest
'If the file exists then -> delete
If objFSO.FileExists(PDFFullName) then
objFSO.DeleteFile PDFFullName
End If
objFSO.MoveFile sPDFPath_src, PDFFullName
Set objFSO = Nothing
ActiveDocument.GetApplication.Sleep 2000
End Sub