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