Page 1 of 1

Cambios a RPreview.Prg

Posted: Tue Dec 24, 2019 12:43 am
by Armando
Hola Amigos del foro:

Cómo cada año quiero expresarles mis mejores deseos para
estas fiestas decembrinas.

"Que los atropelle la dicha y que los destroce la felicidad!"

Después de esto paso a hacerles una pregunta, Tengo FW1905 y en el PREVIEW
hay un botón para enviar el reporte por e-mail, RPreview abre MS-Outlook y
arma el correo casi en su totalidad.

Como puedo hacer para agregar, a lo que arma RPreview, la dirección de correo
a la que se va a enviar, más direcciones de correo (CC), son a elección del usuario,
el titulo y texto del mensaje?

Saludos

Re: Cambios a RPreview.Prg

Posted: Tue Dec 24, 2019 9:04 am
by MOISES
Hola:

Tendrás que modificar el método sendmail() y añadir lo que necesites a:

Code: Select all

      DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT "" ;
         FILES cFile, cFileNoPath( cFile ) ; //FILES cFile, cFile ; // by dfl 1712
         FROM USER

      ACTIVATE MAIL oMail

Re: Cambios a RPreview.Prg

Posted: Tue Dec 24, 2019 10:43 am
by Garbi
Como te indican tendrás que modificar el método sendmail(), te pongo las modificaciones que yo he hecho por si te pueden servir de ayudar, yo le paso, por ejemplo, el email del cliente, proveedor.

Code: Select all

METHOD SendEmail() CLASS TPreview

   local oMail, cName, cFile, olMailItem, oOutLook, oAttach

   cName := If( ::oReport != nil, ::oReport:cName, ::oDevice:cDocument )
   cFile := cFilePath( ::oDevice:aMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ".pdf"

   CursorWait()
   cFile := ::SaveAs( .t., cFile, .f. )
   CursorArrow()

   if ! File( cFile )
      MsgInfo( FWString( "PDF not saved to send Email" ), FWString( "Information" ) )
   elseif ::bEmail != nil
      Eval( ::bEmail, Self, cName, cFile )
   else
    TRY
        oOutLook   := GetActiveObject("Outlook.Application")
        EmSend     := .T.
      CATCH
       TRY
          oOutLook   := GetActiveObject("Outlook.Application")
          EmSend     := .F.
      CATCH
         EmSend   := .F.
      END
    END

    IF !EmSend
       ShellExecute(,"Open","Outlook",,,3)
       EmSend = .T.
    ENDIF

    IF EmSend
      oOutlook = CREATEOBJECT( "Outlook.Application" )
      oNameSpace := oOutlook:GetNameSpace("MAPI")
      oMail = oOutlook:CreateItem( olMailItem )
      oMail:to := vmailpre
      oMail:Subject = cName
      oMail:htmlBody =" "
      oMail:BodyFormat := 2          // FORMAT HTML
      oMail:Attachments:Add(cFile)
      oMail:Display(.T.)
*      oMail:Send()
    endif

   endif

   ::oMeta1:SetFocus()

return nil

Re: Cambios a RPreview.Prg

Posted: Tue Dec 24, 2019 3:47 pm
by Armando
Moises y Garbi:

Muchas gracias, lo voy a intentar.

Feliz Navidad

Re: Cambios a RPreview.Prg

Posted: Wed Dec 25, 2019 5:23 pm
by nageswaragunupudi
There is no need to modify the RPreview.prg.
Instead, make this assignment initially in the program.

Code: Select all

TPreview():bEmail := { |oPreview, cReportName, cPdfFile| MySendEmail( oPreview, cReportName, cPdfFile ) }
 
// ...
// ...

function MySendEmail( Self, cReportName, cPdfFile )

<your method body>

return nil
 

Re: Cambios a RPreview.Prg

Posted: Wed Dec 25, 2019 5:57 pm
by Armando
Mr. Rao:

Thanks a lot, I will.

Best regards