Hola!! Por favor desestimar la respuesta anterior, lo envié al apretar
ENTER en algun lado sin haberlo terminado de editar!!!
Carlos

El 17 de mayo de 2017, 15:33, Carlos Alejandro PEREZ<logic...@gmail.com>
escribió:

> hola, te paso lo que tengo hecho yo. El PDF se genera con una aplicación
> que se llama foxypreviewer.app. Esta aplicación conviene que la coloques en
> un lugar visible desde tu aplicación.
>
> Primero, chequeamos que exista (yo la puse en un volumen compartido de la
> red):
>
> IF FILE("s:\foxypreviewer\foxypreviewer.app")
> DO s:\foxypreviewer\foxypreviewer.app
> ELSE
> =MESSAGEBOX("No se ha encontrado la biblioteca de envío de archivos PDF
> por correo electrónico. No se puede proceder en estas condiciones.
> Asegurese que puede acceder al servidor central")
> RETURN
> ENDIF
>
> Luego generamos la tabla con los ID de los documentos que deseamos
> generar, supongamos que sea un cursor qFactura, cuyo ID es IDFactura
>
> SELECT qfactura
> SCAN
> lcPDFFileName = "Factura "+ALLTRIM(qfactura.idfactura)+".PDF"
> lcFullPathPDF = "s:\facturas\"+lcPDFFileName
> ? "Generando factura "+TRANSFORM(IDFactura)+".."
>         =GenerarFacturaPorID(IDFactura)
> orecs.getrecbynrorec(cNroRec) && genera el cursor lv_recbynrorec
> * copia el cursor a lv_recbynrorec
> SELECT * FROM lv_recbynrorec INTO CURSOR recibos
> SELECT recibos
> ?? "generando archivo PDF.."
> REPORT FORM  recibos3 OBJECT TYPE 10 TO FILE (lcFullPathPDF)
> ACTIVATE WINDOW frmEnviarMails
> * ahora intenta enviar el correo
> *LPARAMETERS cNombreSocio as String, cNroRec as String, cPeriodo as
> String, cLote as String, cArchivo As String, lcFullFileName as String,
> cEmailAddress as string
> ?? "enviando correo a "+ALLTRIM(qmail.email)+".."
> lcResult=EnviarMailGmail(qmail.prof_nombr, qmail.nrorec,
> TRANSFORM(qmail.periodo,"@R 9999-99"), qmail.ordrec, lcPDFFileName,
> lcFullPathPDF, ALLTRIM(qmail.email))
> IF lcResult<>"OK"
> ?? "no se ha podido enviar el mensaje, el error es:" + lcResult
> RELEASE WINDOWS frmEnviarMails
> RETURN .F.
> ELSE
> ?? "OK"
> ENDIF
>
>
> ENDSCAN
>
> GO TOP IN lv_reciboshdbyper
> SELECT qmail
>
> DO FORM enviarcorreogmail && ventana que informa el avance
> SCAN
> ACTIVATE WINDOW frmEnviarMails
> lcPDFFileName = ALLTRIM(qmail.matricula)+"-"+qmail.nrorec+".PDF"
> lcFullPathPDF = "s:\recibos\"+lcPDFFileName
> cNrorec = ALLTRIM(qmail.nrorec)
> ? "Generando recibo "+cNroRec+".."
> * LOCAL orecs as recibos OF recibos.prg
> orecs.getrecbynrorec(cNroRec) && genera el cursor lv_recbynrorec
> * copia el cursor a lv_recbynrorec
> SELECT * FROM lv_recbynrorec INTO CURSOR recibos
> SELECT recibos
> ?? "generando archivo PDF.."
> REPORT FORM  recibos3 OBJECT TYPE 10 TO FILE (lcFullPathPDF)
> ACTIVATE WINDOW frmEnviarMails
> * ahora intenta enviar el correo
> *LPARAMETERS cNombreSocio as String, cNroRec as String, cPeriodo as
> String, cLote as String, cArchivo As String, lcFullFileName as String,
> cEmailAddress as string
> ?? "enviando correo a "+ALLTRIM(qmail.email)+".."
> lcResult=EnviarMailGmail(qmail.prof_nombr, qmail.nrorec,
> TRANSFORM(qmail.periodo,"@R 9999-99"), qmail.ordrec, lcPDFFileName,
> lcFullPathPDF, ALLTRIM(qmail.email))
> IF lcResult<>"OK"
> ?? "no se ha podido enviar el mensaje, el error es:" + lcResult
> RELEASE WINDOWS frmEnviarMails
> RETURN .F.
> ELSE
> ?? "OK"
> ENDIF
> ENDSCAN
> RELEASE WINDOWS frmEnviarMails
>
>
> El 17 de mayo de 2017, 12:10, Hernan O. Suligoy<hsuli...@compudisk.com.ar>
> escribió:
>
>> Hola Rafael...
>> 1.- Foxypreviewer
>>
>>       PUBLIC PUBLI_FoxyPreview
>>       IF FILE(ADDBS(CURDIR()) + 'Foxypreviewer.app')
>>         DO FoxyPreviewer.app
>>         PUBLI_FoxyPreview    = ADDBS(CURDIR()) + 'foxypreviewer.app'
>>      ELSE
>>         PUBLI_FoxyPreview    = ''
>>      ENDIF
>>         *--- Create FoxBarcode Object
>>     local loFbc, lcImage, lcBarCode
>>     m.loFbc = CREATEOBJECT("FoxBarcode")
>>         *-- Set properties
>>     m.loFbc.nBarcodeType = 132 && Interleaved 2 of 5
>>     m.loFbc.nFactor = 2
>>     m.loFbc.cImageType = "BMP"
>>     m.loFbc.nImageWidth = 900
>>     m.lcBarCode = codbar
>>
>>     nombre = (transform(nSerie, "@L 9999") +"-"+ transform(nNumero, "@L
>> 99999999"))
>>     lcNombyUbi = ADDBS(CURDIR()) + '\Docum\' +abre+nombre + '.pdf'
>>     thisform.pdfname = lcNombyUbi
>>
>>     Report Form docFelecPDF.frx OBJECT TYPE 10 To FILE (lcNombyUbi)
>>     DO FOXYPREVIEWER.APP WITH "RELEASE"
>>
>> 2.- El mismo Foxypreviewer lo graba
>>
>>
>>
>>
>> 3.- Cdo de Windows...
>>
>> LOCAL loCfg, loMsg, lcFile, loErr
>>
>> maildest = thisform.emailclte
>> &&  mailcc   = thisform.emailcc
>>
>> mailname = ALLTRIM(thisform.MailName)
>> mailcc   = ALLTRIM(thisform.MailCc)
>> asunto   = ALLTRIM(thisform.MailAsu)
>> mensaje  = ALLTRIM(thisform.Mensa)
>>
>> loErr = .f.
>>   loCfg = CREATEOBJECT("CDO.
>> Configuration")
>>   WITH loCfg.Fields
>>     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver";)
>> =  "smtp.gmail.com"
>>     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport";)
>> = 465
>>     .Item("http://schemas.microsoft.com/cdo/configuration/sendusing";) = 2
>>     .Item("http://schemas.microsoft.com/cdo/configuration/smtpco
>> nnectiontimeout") = 10
>>     .Item("http://schemas.microsoft.com/cdo/configuration/smtpau
>> thenticate") = "1"
>>     .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl";) =
>> "1"
>>     .Item("http://schemas.microsoft.com/cdo/configuration/sendusername";)
>> = "mim...@gmail.com <avdaembrag...@gmail.com>"
>>     .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword";)
>> = "pass"
>>     .Update
>>   ENDWITH
>>   loMsg = CREATEOBJECT ("CDO.Message")
>>
>>   WITH loMsg
>>     .Configuration = loCfg
>>     *-- Remitenete y destinatarios
>>     .From = "Empresa S.R.L. <mim...@gmail.com <avdaembrag...@gmail.com>>"
>>     .To = maildest          &&&&   "Hernan <her...@hotmail.com.ar
>> <hsuli...@compudisk.com.ar>>"
>>    &&     .Cc = ""
>>
>>     *- Notificación de lectura
>>     .Fields("urn:schemas:mailheader:disposition-notification-to") = .From
>>     .Fields("urn:schemas:mailheader:return-receipt-to") = .From
>>     .Fields.Update
>>     *-- Tema
>>     *-- .Subject = "Ejemplo del " + TTOC(DATETIME())
>>     .Subject = asunto
>>     .TextBody = mensaje
>>
>>  *****   .HTMLBody = ""
>>
>>     atachfile = ALLTRIM(thisform.atach)
>>
>> &&&  asunto = "Resumen Cta. Cte. "
>> &&&  mensaje = "Adjuntamos resumen de su cuenta corriente. Atentamente.
>> BsEstudio"
>>
>> &&    *-- Formato HTML desde la Web
>> &&    .CreateMHTMLBody("http://comunidadvfp.blogspot.com/p/acerca-de.html";,
>> 0)
>>     *-- Archivo adjunto
>> &&&&    lcFile = GETFILE()
>> &&&&    IF NOT EMPTY(lcFile)
>>       && .AddAttachment(lcFile)
>>      .AddAttachment(atachfile)
>> &&&&    ENDIF
>>   ENDWITH
>>
>>     *-- Envio el mensaje
>>    loErr = loMsg.Send()
>>
>>     IF ISNULL(loErr)
>>       loMsg = NULL
>>       loCfg = NULL
>>       MESSAGEBOX("Mensaje enviado!", "Envio Mail...")
>>     else
>>       MESSAGEBOX("No se pudo enviar el mensaje" + CHR(13) + ;
>>         "Error: " + TRANSFORM(loErr.ErrorNo) + CHR(13) + ;
>>         "Mensaje: " + loErr.Message , 16, "Error")
>>     endif
>>
>>
>>
>>
>>
>>
>> No lo hago por lote, lo hago individual, pero funciona de 10, no se si te
>> sirve, habria que
>> serializar el proceso..
>>
>> Saludos..
>>
>> Hernan Suligoy
>>
>>
>>
>> El 16/05/2017 a las 05:30 p.m., rafael copquin escribió:
>>
>> Necesito generar un lote de facturas electrónicas en formato pdf y luego
>> enviarlas automáticamente por correo.
>>
>> Estuve viendo varias opciones que googlie por ahi, pero ninguna me
>> funciona.
>>
>>    1. Básicamente tengo un cursor con los datos de N facturas generadas
>>    en un lote con sus CAE recibidos.
>>    2. Ahora quiero generar sendos pdf (original y duplicado) y dejarlos
>>    grabados en una carpeta.
>>    3. Al mismo tiempo los quiero enviar automáticamente por email a sus
>>    respectivos clientes.
>>
>> Sé que esto ya se ha hecho miles de veces, pero yo hasta ahora nunca las
>> generé por lote (como es este caso) y agradecería un ejemplo de cómo se
>> hace, o sea:
>>
>>    1. cómo genero el pdf
>>    2. cómo se hace para que se grabe en la carpeta
>>    3. cómo se envía por email
>>
>> Gracias a todos
>>
>> Rafael Copquin
>>
>>
>>
>>
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>>  Libre
>> de virus. www.avg.com
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>> <#m_4171107467168842668_m_-5932639359262942568_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>
>>
>>
>
>
> --
> Ing. Carlos Alejandro Pérez
>



-- 
Ing. Carlos Alejandro Pérez

Responder a