Para : Abraham

Zulvic
26 de Septiembre del 2005
Hola, salu2, te escribo porque necesito ayuda, estoy relaizando un proyecto en donde debe haber un formulario que tenga un boton de comando que permita enviar un reporte hecho en fox a un e-mail, se que es con el Control ActiveX MSMAPI32.OCX, con los objectos mapisession y mapimenssage.Aja, pero me dijeron que tengo que convertir el reporte a otro formato,con la Clase frx2Word, y se que tambien es un control.
>
>Es que no se puede enviar el reporte manteniendo su formato original a un e-mail, y que la persona que lo reciba lo pueda ver sin necesidad de tener el Visual Fox??????
>
>En cuanto a este codigo:
>
>
>
>*
>*
>=correo_e( .T.,"[email protected]","netlog.txt","Error en xxx","Anexo envio archivo con error generado por el sistema")
>*
>*
>*
>FUNCTION correo_e
>PARAMETERS plMostrarDialogo,pcPara, paFichEnviar, pcAsunto, pcCuerpo
>*Local pcPara, pcAsunto, pcCuerpo, paFichEnviar, plMostrarDialogo
>
>SCREEN=.F.
>
>IF EMPTY(pcPara)
>pcPara = "[email protected]_correo.es"
>ENDIF
>
>IF EMPTY(pcAsunto)
>pcAsunto = ""
>ENDIF
>
>IF EMPTY(pcCuerpo)
>pcCuerpo = ""
>ENDIF
>
>
>IF EMPTY(paFichEnviar)
>paFichEnviar = ""
>ENDIF
>
>IF EMPTY( plMostrarDialogo )
>plMostrarDialogo = .T.
>ENDIF
>
>LOCAL oform
>
>oform = CreateObject("form")
>oform.addobject("Session1","olecontrol","MSMAPI.mapiSession")
>
>IF TYPE('oform.Session1') <> 'O'
>MESSAGEBOX('No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
>RELEASE oform
>RETURN .F.
>ENDIF
>
>oform.addobject("Message1","olecontrol","MSMAPI.mapiMessages")
>
>IF TYPE('oform.Message1') <> 'O'
>MESSAGEBOX('No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
>RELEASE oform
>RETURN .F.
>ENDIF
>
>oform.Session1.LogonUI = .t.
>
>*- Si no se pone la propiedad a .F. y en OUTLOOK está puesto trabajar sin conexión
>*- se cuelga
>
>oform.Session1.DownloadMail=.f.
>oform.Session1.signon
>oform.Message1.sessionid = oform.Session1.sessionid
>oform.Message1.compose
>oform.Message1.RecipDisplayName = pcPara
>oform.Message1.msgsubject = pcAsunto
>oform.Message1.msgnotetext = pcCuerpo
>
>*- Si no es un array, lo crea
>
>IF TYPE('paFichEnviar[1]') = 'U'
>LOCAL lcFileEnviar
>lcFileEnviar = paFichEnviar
>DIMENSION paFichEnviar(1)
>paFichEnviar(1) = lcFileEnviar
>ENDIF
>
>LOCAL lnContFiles
>lnContFiles = 1
>
>FOR lnCount = 1 TO ALEN(paFichEnviar,1)
>*- Si existen los archivos
>IF FILE(paFichEnviar(lnContFiles))
>oform.Message1.AttachmentIndex = lnContFiles - 1
>oform.Message1.AttachmentPathName = paFichEnviar(lnContFiles)
>oform.Message1.AttachmentPosition = lnContFiles - 1
>lnContFiles = lnContFiles + 1
>ENDIF
>ENDFOR
>
>oform.Message1.send
>*(plMostrarDialogo)
>oform.Session1.signoff
>
>release oform
>
>
>
>Este codigo sera que de verdad funciona??????
>
>Tienes otro ejemplo??????
>
>Ah y otra cosa, que el informe me lo envie automaticamente cada fin de mes, pero con otra cosa mas, por ejemplo:
>
>Los clientes que se retiraron en el mes de Agosto, que solo me envie los de un mes especificcamnte, es decir, que envie automaticamnte los clientes retirados del mes de septiembre solamente, y que para el mes de octubre los de ese mes solamnte, y asi sucesivamente, se puede hacer esto????
>
>Y con respecto a tus respuestas en el foro, queria preguntarte lo siguiente:
>-Como cargo en la opcion de inicio de windows el sistema ó un pequeño programa que te checara cuando es dia ultimo he hiciera el envio de tus archivos via e-mail.?????
>-Que api hace que el sistema quede como residente en memoria.????
>
>
>Espero que me AYUDES Ya no se que hacer, ya tengo casi un mes en esto y nada, estoy deseperada!!!
>
>Porfavor Ayudame!!!!!
>
>Y espero no haberte molestado!!!!
>
>
>
>

ABRAHAM
26 de Septiembre del 2005
ESPERO QUE SEA YO EL ABRAHAM QUE ESPEREAS EN CUANTO AL CODIGO TE MANDO ESTE YA QUE HAY QUE AGREGARSE CIERTAS COSAS

FUNCTION correo_e
PARAMETERS plMostrarDialogo,pcPara, paFichEnviar, pcAsunto, pcCuerpo
*Local pcPara, pcAsunto, pcCuerpo, paFichEnviar, plMostrarDialogo

set talk off
SCREEN=.F.

IF EMPTY(pcPara)
pcPara = "[email protected]_correo.es"
ENDIF

IF EMPTY(pcAsunto)
pcAsunto = "<Asunto>"
ENDIF

IF EMPTY(pcCuerpo)
pcCuerpo = ""
ENDIF


IF EMPTY(paFichEnviar)
paFichEnviar = ""
ENDIF

IF EMPTY( plMostrarDialogo )
plMostrarDialogo = .T.
ENDIF

LOCAL oform

oform = CreateObject("form")
oform.addobject("Session1","olecontrol","MSMAPI.mapiSession")

IF TYPE('oform.Session1') <> 'O'
MESSAGEBOX('No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE oform
RETURN .F.
ENDIF

oform.addobject("Message1","olecontrol","MSMAPI.mapiMessages")

IF TYPE('oform.Message1') <> 'O'
MESSAGEBOX('No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE oform
RETURN .F.
ENDIF

oform.Session1.LogonUI = .t.

*- Si no se pone la propiedad a .F. y en OUTLOOK está puesto trabajar sin conexión
*- se cuelga

oform.Session1.DownloadMail=.f.
&& agegando esto
oform.session1.username = NO_NOMBRE_DE_USUARIO
oform.session1.password =TU_CLAVE_DE_USUARIO
&& fin de esto
oform.Session1.signon
oform.Message1.sessionid = oform.Session1.sessionid
oform.Message1.compose
oform.Message1.RecipDisplayName = pcPara
oform.Message1.msgsubject = pcAsunto
oform.Message1.msgnotetext = pcCuerpo

*- Si no es un array, lo crea

IF TYPE('paFichEnviar[1]') = 'U'
LOCAL lcFileEnviar
lcFileEnviar = paFichEnviar
DIMENSION paFichEnviar(1)
paFichEnviar(1) = lcFileEnviar
ENDIF

LOCAL lnContFiles
lnContFiles = 1

FOR lnCount = 1 TO ALEN(paFichEnviar,1)
*- Si existen los archivos
IF FILE(paFichEnviar(lnContFiles))
oform.Message1.AttachmentIndex = lnContFiles - 1
oform.Message1.AttachmentPathName = paFichEnviar(lnContFiles)
oform.Message1.AttachmentPosition = lnContFiles - 1
lnContFiles = lnContFiles + 1
ENDIF
ENDFOR

&&agregar otro destinatario
oform.message1.recipindex = 1
oform.message1.reciptype = 2
oform.message1.recipdisplayname = "[email protected]"

oform.Message1.send
*(plMostrarDialogo)
oform.Session1.signoff

release oform
&& agregando
retur .t.

ESTE ESTA PROVADO Y SI FUNCIONA, LO ESCRIBIO ALGUIEN DEL FORO QUE PEDIA AYUDA Y LO QUE LE AGREGE FUE LA OPCION PARA MANDAR UNA COPIA A.

EN CUANTO A LO QUE ME PREGUNTAS DE LA FUNCION API DEJAME INVESTIGARTELA YA QUE NO LA HE UTILIZADO.

EN CUANTO A MANDAR UN REPORTE POR E-MAIL SIN QUE PIERDA SU FORMATO HE SABIDO QUE HAY QUE BAJAR UN CONTROL ACTIVE X PARA CONVERTIRLO A FORMATO HTLM, DEJAME INVESTIGARTELO TAMBIEN.

UN SALUDO.

ABRAHAM
26 de Septiembre del 2005
EN EL PORTAL DE FOX AL CUAL PERTENCES BUSCAR EN ARCHIVOS Y LUEGO EN INFORMES, DE AHI BUSCA LA CLASE "FRX2WORD" QUE ESTA COMPACTADA, LO DESCARGAS PERO SOLO MENTE EL ARCHIVO "MSOEXP.VCX" EN LA CARPETA DE TU APLICACION.

DESPUES LO AGREGAS A TU PROYECTO EN LA PESTALLA DE "CLS".

EL ARCHIVO QUE BAJASTE AHI TRAE LA AYUDA.,,

TAMBIEN HAY OTRA OPCION COMO HACERLO EN FORMATO PDF PARA LO CUAL AHI EN EL PORTAL DE FOX BAJA EL ARCHIVO "REPORT_PDF" PARA LO CUAL NECESITAS TENER INSTALADO EL PROGRAMA PDFWriter.

NOS VEMOS