Walter: La opción que te comento se puede implementar automáticamente. - Generar un cursor con los datos necesarios para imprimir los comprobantes
- Generar el archivo pdf automáticamente a partir del cursor (con pdf-creator) - Armás el envío de mail adjuntando el archivo pdf generado Te paso lo que yo tengo armado. Si no anda es porque me puedo haber salteado algo cuando fui copiando y pegando porque en realidad lo tengo armado en distintos procesos que se van llamando entre sí. Espero te sirva. CDbf= dbf() && Cursor con los datos a imprimir m.ArchDest= alltrim (Ruta) + alltrim (Archivo) + '.pdf' && Nombre archivo pdf que se va a generar do CnvRpPdf in Funcion with CDbf && genera archivo pdf automáticamente m.To= [email protected] m.CC= [email protected] m.CCo= [email protected] m.Subject = 'Asunto m.Body = 'Cuerpo' HayTo = not empty (To) HayCC = not empty (CC) HayCCO= not empty (CCO) * Crea una sesión de Outlook ObjOutlook= createobject ('Outlook.Application') * Crea un mensaje ObjOutlookMsg= ObjOutlook.CreateItem (0) with ObjOutlookMsg if HayTo * Agrega el Destinatario To al mensaje objOutlookRecip = .Recipients.Add (alltrim (To)) objOutlookRecip.Type = 1 endif if HayCC * Agrega el Destinatario CC al mensaje objOutlookRecip = .Recipients.Add (alltrim (CC)) objOutlookRecip.Type = 2 endif if HayCCO * Agrega el Destinatario CCO al mensaje objOutlookRecip = .Recipients.Add (alltrim (CCO)) objOutlookRecip.Type = 3 endif * Define el Subject, Body y la Importancia del mensaje .Subject = m.Subject .Body = m.Body .Importance= 1 && Importancia normal * Agrega los adjuntos al mensaje if HayArch for I= 1 to alen (AArchivos, 1) objOutlookAttach = .Attachments.Add (AArchivos (I)) endfor endif * Resuelve cada nombre del Recipiente for each objOutlookRecip in .Recipients objOutlookRecip.Resolve endfor if VerMsg .Display (.T.) && Visualiza y envía manual else .Save && Visualiza y envía automático .Send endif endwith objOutlook = .NULL. procedure CnvRpPdf parameters PConfig if parameters() < 1 return .F. endif if parameters() >= 1 and type ('PConfig') = 'C' if file (PConfig) use &PConfig shared in 0 alias PConfig select PConfig else =messagebox ('No se encuentran los parámetros para generar el archivo pdf', 16+0+256, 'Generar pdf') return .F. endif endif PReporte= alltrim (PConfig.Reporte) PDir = alltrim (PConfig.RutaPlan) PArchivo= alltrim (PConfig.Archivo) PTabla = alltrim (PConfig.Tabla) use in PConfig if file (PTabla) and not used ('PTabla') use &PTabla shared in 0 again alias PTabla select PTabla else =messagebox ('No se encuentran los datos para generar el archivo pdf', 16+0+256, 'Generar pdf') return .F. endif declare Sleep in WIN32API integer local loPDFCreator loPDFCreator = createobject ('PDFCreator.clsPDFCreator') if error() = 1426 return .F. endif with loPDFCreator .cStart('/NoProcessingAtStartup') .cVisible = .F. .cPrinterStop = .T. .cOption('UpdateInterval')= 0 && nunca *!* Opciones de autoguardado .cOption('UseAutosave') = 1 .cOption('UseAutosaveDirectory')= 1 .cOption('AutosaveDirectory') = '&PDir' .cOption('AutosaveFilename') = PArchivo .cOption('AutosaveFormat') = 0 && 0 para formato PDF * Modificacion temporal de lo impresora por defecto : DefaultPrinter = .cDefaultprinter .cDefaultprinter= 'PDFCreator' .cClearcache endwith lcImpresoraPDF = 'PDFCreator' set printer to name (lcImpresoraPDF) report form (PReporte) to printer noconsole loPDFCreator.cPrinterStop = .F. Sleep (2000) loPDFCreator.cDefaultprinter = DefaultPrinter loPDFCreator.cClearcache loPDFCreator.cClose release loPDFCreator if used ('PTabla') use in PTabla endif return .T. De: [email protected] [mailto:[email protected]] En nombre de Walter Comito Enviado el: Jueves, 29 de Mayo de 2014 04:02 p.m. Para: GUFA List Member Asunto: [GUFA] ENVIO DE CUOTAS POR EMAIL. No me sirve algo manual, tengo que emitir unas 2500 facturas por mes Tendría que ser algo automatizado, como por ej. Genero un archivo pfd automáticamente y con el mail le adjunto ese archivo. Mas o menos algo asi es lo que necesito Walter Cómito Analista de Sistemas MP 0397 C.P.C.I.P.C. [email protected] [email protected] ' +54 351 494.4667 153.292.707 þ www.softram.com.ar <http://www.softram.com.ar/> Q Si no es necesario, no imprima este correo. Todos somos responsables por el cuidado del medio ambiente. NOTA DE CONFIDENCIALIDAD Este mensaje (y sus anexos) es confidencial y puede contener información de propiedad exclusiva de Walter Cómito (SRS Sistemas). Si usted ha recibido este mensaje por error, por favor comuníquelo inmediatamente a <mailto:[email protected]> [email protected] y tenga la amabilidad de eliminarlo; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona. Muchas Gracias. De: [email protected] [mailto:[email protected]] En nombre de FabGUFA Enviado el: jueves, 29 de mayo de 2014 01:46 p.m. Para: GUFA List Member Asunto: [GUFA] Web services Walter: Una opción es generar el comprobante con el código de barra en un pdf (con pdf-creator por ejemplo) y luego lo adjuntas al correo. Pdf-Creator te permite generar un pdf vía código y te deja manipular el nombre y ubicación del archivo generado. Eso facilita ubicar el archivo automáticamente al momento de crear el correo con el adjunto. El pdf te asegura que puedan imprimir correctamente el código de barras y que no puedan cambiar los datos. Saludos Fabricio De: [email protected] [mailto:[email protected]] En nombre de Walter Comito Enviado el: Jueves, 29 de Mayo de 2014 11:17 a.m. Para: GUFA List Member Asunto: [GUFA] Web services Amigos como están Tengo un sistema que genera cuotas mensuales de cobranza. Necesitaría saber como hago para enviar a cada persona via email la cuota que les corresponde pagar este mes. No se si en el cuerpo del mail o como archivo adjunto. Este comprobante tiene códigos de barra para pagar en pago fácil o banco de cordoba. Espero sus comentarios. Gracias Walter Cómito Analista de Sistemas MP 0397 C.P.C.I.P.C. [email protected] [email protected] ' +54 351 494.4667 153.292.707 þ www.softram.com.ar <http://www.softram.com.ar/> Q Si no es necesario, no imprima este correo. Todos somos responsables por el cuidado del medio ambiente. NOTA DE CONFIDENCIALIDAD Este mensaje (y sus anexos) es confidencial y puede contener información de propiedad exclusiva de Walter Cómito (SRS Sistemas). Si usted ha recibido este mensaje por error, por favor comuníquelo inmediatamente a <mailto:[email protected]> [email protected] y tenga la amabilidad de eliminarlo; no deberá copiar el mensaje ni divulgar su contenido a ninguna persona. Muchas Gracias. De: [email protected] [mailto:[email protected]] En nombre de Adrian Enviado el: jueves, 29 de mayo de 2014 10:31 a.m. Para: GUFA List Member Asunto: [GUFA] Web services Hola! He tenido un par de expieriencias consumiendo web services usando lo siguiente: loSoapClient=CREATEOBJECT("MSSOAP.SoapClient30") loSoapClientUrl=[http://validadorrecetario.cofa.org.ar/WSValidacionSimple.ph p?wsdl] IF VARTYPE(loSoapClient)=='O' loSoapClient.MSSoapInit(loSoapClientUrl) xst=FILETOSTR('c:\valida\preserfa\ida\'+arch) leResult = loSoapClient.procesarXML('1', 'High-Soft', 'Sistemas', '1', xst) ... Y otros como este sin problermas. Pero con este, que no tiene el wsdl, no logro hacer nada <http://ospilsoap.ddaval.com.ar/index.php> http://ospilsoap.ddaval.com.ar/index.php La gente que lo creo, me dice que es muy simple pero no aclara demasiado. Se les ocurre alguna idea? Gracias!!! Adrian.
