Enviar un hoja actual de varias por email con rpreview

Enviar un hoja actual de varias por email con rpreview

Postby Garbi » Thu Jan 18, 2018 12:30 pm

Hola, por necesidades de la aplicación usando rpreview.prg con la opción de enviar por email se debe enviar una pagina determinada o unas determinadas, el código de envio de email lo he modificado pero no consigo que me envié solo una hoja o parte y estoy haciendo pruebas me ha error, y creo que estoy tan mareado que no encuentro el error, aunque estoy seguro que es una tonteria, os adjunto el codigo que he cambiado de rpreview.prg para ver si me podeis hechar una mano, primero he hecho que acceda al dialogo de elegir hoja, (funciona) y despues se va a sendemail y hay es donde me lio.

Muchas Gracias.

Codigo de elegir que pagina,s elegir :

Code: Select all  Expand view
METHOD PrintPage(nvalue) CLASS TPreview

   local hMeta   := ::oMeta1:hMeta
   local oDlg, oRad, oPageIni, oPageEnd
   local nOption := 1, nFirst := 1, nLast := Len( ::oDevice:aMeta )  // DEVICE
   local oThis   := Self
   local lCancel := .t.

   if nLast != 1

      DEFINE DIALOG oDlg SIZE 400, 183 TITLE FWString( "Printing" )
      oDlg:lTruePixel := .f.

      @ 8, 8 GROUP PROMPT FWString( "Printing range" ) SIZE 135, 72 PIXEL OF oDlg

      @ 18, 18 RADIO oRad VAR nOption ;
        ITEMS FWString( "All" ), FWString( "Current page" ), FWString( "Pages" ) ;
        ON CHANGE If( nOption == 3,;
                  ( oPageIni:Enable(), oPageEnd:Enable() ),;
                  ( oPageIni:Disable(), oPageEnd:Disable() ) ) PIXEL

      @ 61, 30 SAY FWString( "From" ) OF oDlg PIXEL

      @ 60, 53 GET oPageIni ;
        VAR nFirst PICTURE "@K 99999" ;
        VALID If( nFirst < 1 .or. nFirst > nLast, ( MsgBeep(), .F. ), .T. ) ;
        OF oDlg SIZE 22, 11 PIXEL

      @ 61, 80 SAY FWString( "To" ) OF oDlg PIXEL

      @ 60, 103 GET oPageEnd ;
        VAR nLast PICTURE "@K 99999" ;
        VALID If( nLast < nFirst .or. nLast > Len( ::oDevice:aMeta ),; // DEVICE
               ( MsgBeep(),.F. ), .T.) OF oDlg PIXEL

      @ 10, 152 BUTTON FWString( "&Ok" ) OF oDlg SIZE 42, 14 ;
        ACTION ( lCancel := .f., oDlg:End() ) PIXEL

      @ 28, 152 BUTTON FWString( "&Cancel" ) OF oDlg SIZE 42, 14 ;
        ACTION oDlg:End() PIXEL

      ACTIVATE DIALOG oDlg CENTERED ;
        ON INIT ( oPageIni:Disable(), oPageEnd:Disable(), .T. )

   else
      lCancel := .f.
   endif

   if ! lCancel

   if nValue = 1
      MsgRun( ::oDevice:cDocument, "Printing Report",;
              { || ::PrintPrv( nil, nOption, nFirst, nLast )  } )
   else
       ::SendEmail(nil, nOption, nFirst, nLast)   // --->AQUI ES DONDE LE DIGO QUE VAYA A SENDEMAIL
   endif
   endif

return nil


Código Enviar email :

Code: Select all  Expand view
METHOD SendEmail(oDlg, nOption, nPageIni, nPageEnd ) CLASS TPreview

   local oMail, cName, cFile
   local ctext
   local oDevice := ::oDevice   // DEVICE
   local aFiles  := oDevice:aMeta
   local hMeta   := ::oMeta1:hMeta
   local nFor

   CursorWait()

   StartDoc( oDevice:hDC, oDevice:cDocument )

   do case

      case nOption == 1                           // All

          for nFor := 1 to Len( aFiles )
*              StartPage( oDevice:hDC )
              hMeta := GetEnhMetaFile( aFiles[ nFor ] )
              PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
              DeleteEnhMetafile( hMeta )
*              EndPage( oDevice:hDC )
          next

     case nOption == 2                           // Current page

*          StartPage( oDevice:hDC )
          hMeta := ::oMeta1:hMeta
          PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
*          EndPage( oDevice:hDC )

     case nOption == 3                           // Range

          for nFor := nPageIni to nPageEnd
*               StartPage( oDevice:hDC )
               hMeta := GetEnhMetaFile( aFiles[ nFor ] )
               PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
               DeleteEnhMetafile( hMeta )
*               EndPage( oDevice:hDC )
          next

     endcase

     EndDoc( oDevice:hDC )

     CursorArrow()

     if oDlg != nil
        oDlg:End()
     endif



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

  cFile := cFilePath( ::oDevice:hMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ".pdf"

   CursorWait()
   cFiled := ::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
   if !empty(vmailpre)
      DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFiled;
         FROM USER;
         TO alltrim(vmailpre)

*         FILES cFile, cFiled;
*         TEXT ctext ;
   else
         DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFiled ;
         FROM USER
*         TEXT ctext ;
   endif


      ACTIVATE MAIL oMail

//       MsgInfo( oMail:nRetCode )
   endif

   ::oMeta1:SetFocus()

return nil
 
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 289
Joined: Wed Nov 02, 2005 3:28 pm

Re: Enviar un hoja actual de varias por email con rpreview

Postby karinha » Fri Jan 19, 2018 1:22 pm

Mira, se comprende:

Code: Select all  Expand view

   /*
   REDEFINE BUTTON oEnviarEmail ID 304  OF oDlg                                 ;
            ACTION ( ENVIAR_EMAIL_CONTATO( cEmailPaisa, CPAISANOME ) )
   */



   // GENERAR EL ARCHIVO EM *.PDF

   /* CREAR UN DIALOGO DE BOTONES PARA GENERAR EL TIPO DE PREVIEW O PDF
   LOCAL Tipo_Opcao_PDF := 1

   REDEFINE BUTTONBMP oPrevAdobe ID 301 OF oDlgBtn                    ;
            ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 1 ) ) // ADOBE

   oPrevAdobe:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do Adobe" )

   REDEFINE BUTTONBMP oPrevFive ID 302 OF oDlgBtn                         ;
            ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 2 ) ) // FIVEWIN

   oPrevFive:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do FiveWin" )

   REDEFINE BUTTONBMP oPrevGravar ID 303 OF oDlgBtn                     ;
            ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 3 ) ) // SEM PREVIEW

   oPrevGravar:cToolTip := OemToAnsi( "Sem Preview, Apenas Gravar o PDF Para Email" )

   REDEFINE BUTTONBMP oSaida   ID 304 OF oDlgBtn                       ;
            ACTION( oDlgBtn:End() ) CANCEL
   */


FUNCTION IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF, lAppend )

   LOCAL oPrn, nMargin, nWidth, nColWidth, nRow, nCol, oImage
   LOCAL XDATALISTA, cAlias
   LOCAL oFont, oFontLogo, oFontDivi, oFontList, oFontCurs, oPen1, oPen2, ;
         oPen3, oFontSubl, ResLinha, ResColuna, cProposta, nLinha, nColuna, ;
         oFontBold, nTotalParc := 0.00, nTotalGeral := 0.00
   LOCAL nPulaLinha, oFontMin
   LOCAL cFile // := "C:\NFEPDF\CHAMADO.PDF"

   MEMVAR nProposta, nContrato, dPedidoEm, dAgendado, HoraAgend, dParaPaisa
   MEMVAR dParaEscrit, dReageando, hReageHora, ClienPropo, EnderPropo
   MEMVAR BairrPropo, CepdaPropo, cNomeZelad, cFoneZelad, cNomeSindi
   MEMVAR cFoneSindi, cFaxSindic, cCodAdmini, cEnviaProp, cObsPropos
   MEMVAR cContatoPro, cEmailProp1
   MEMVAR cCodGrupo, cNomeGrupo, nClienCod
   MEMVAR cPrimLimpeza, nValorLimp, cObsLimpeza, cManutPropo, nValorManut, ;
          cObsManuten, cFerramen01, cFerramen02, cSacosLixo
   MEMVAR CCOBGRAMADO, CSCSMAOOBRA, CUSOCARRINHO
   MEMVAR nDesconto // Desconto da proposta
   MEMVAR CPAISACODI, CPAISANOME, cEmailPaisa
   MEMVAR CidadPropo, UFdaPropo, cEmailCli, cContatoCli, cFuncaoClie
   MEMVAR cFonesClien, cFonesAdmin, cFonesPaisa, cFuncaoAdmi

   XDATALISTA  := "SÃO PAULO" + ",    "         + ;
                  LTRIM( STR( DAY( DATE() ) ) ) + ;
                  "   de   "                    + ;
                  OEMTOANSI(CMONTH( DATE() ))   + ;
                  "   de   "                    + ;
                  STR( YEAR( DATE() ) )         + ;
                  "."

   // NOME DO ARQUIVO PDF EM ONDE VAI GUARDAR
   IF lAppend
      cFile := "C:\NFEPDF\"+"PROP"+ALLTRIM( STR( nProposta ) ) +".PDF"
   ELSE
      cFile := "
C:\NFEPDF\"+"PROP"+ALLTRIM( nProposta ) + ".PDF"
   ENDIF

   SELECT( DBCADPROPO )
   SET ORDER TO 01

   IF lAppend // Inclusao

      SEEK nProposta

   ELSE

      SEEK VAL( nProposta )

    ENDIF

   IF EOF()
      MsgStop( OemToAnsi( "
Nenhuma Proposta Localizada Para ImpressÆo" ), ;
               OemToAnsi( "
Nenhuma Proposta Localizada Para ImpressÆo" ) )
      RETURN NIL
   ENDIF

   oImage := "
.\LOGO.jpg"  // tem que estar na pasta do plenoind

   IF Tipo_Opcao_PDF = 1  // PREVIEW DO ADOBE

      PRINT oPrn NAME "
COLETA DE DADOS PARA COTAÇÃO" PREVIEW FILE cFile

   ELSEIF Tipo_Opcao_PDF = 2  // PREVIEW DO FIVEWIN

      PRINT oPrn NAME "
PROP"+ALLTRIM( nProposta ) PREVIEW MODAL

   ELSEIF Tipo_Opcao_PDF = 3  /// SEM PREVIEW: SO GRAVA O .PDF EM C:\NFEPDF

      PRINT oPrn NAME "
COLETA DE DADOS PARA COTAÇÃO" FILE cFile

   ENDIF

      DEFINE FONT oFontMin  NAME "
Courier New" SIZE 0, -8                 OF oPrn
      DEFINE FONT oFont     NAME "
Courier New" SIZE 0, -10                OF oPrn
      DEFINE FONT oFontBold NAME "
Courier New" SIZE 0, -10 BOLD           OF oPrn
      DEFINE FONT oFontSubl NAME "
Courier New" SIZE 0, -16 BOLD           OF oPrn

      DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN                  OF oPrn
      DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN                  OF oPrn
      DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK                  OF oPrn
 
      oPrn:SetPage(9)     //-> A4 //9
      oPrn:SetPortrait()  //-> Vertical(Retrato)

      ResLinha  := oPrn:nLogPixely()/2.54
      ResColuna := oPrn:nLogPixelx()/2.54

      nMargin     := Int( 0.1 * oPrn:nHorzRes() )
      nWidth      := 8 * nMargin
      nColWidth   := Int( ( nWidth - nMargin ) / 2 )

      PAGE

         nRow        :=  10    // Linha
         nCol        := 150    // Coluna do Logo.jpg

         @ nRow, nCol PRINT TO oPrn IMAGE "
LOGO.jpg" SIZE 400, 400 LASTROW nRow

         oPrn:Say( 0.50 * ResLinha,  10.00 * ResColuna,                    ;
                   "
COLETA DE DADOS PARA COTAÇÃO" ,     ;
                   oFontSubl,, CLR_BLACK,, PAD_CENTER )

         oPrn:Box(  1.20 * ResLinha,  0.50 * ResColuna,         ;
                    7.80 * ResLinha, 20.50 * ResColuna, oPen3 )

         nLinha  := 1.50
         nColuna := 2.80

         IF lAppend

            oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,            ;
                      "
Solicitação Nº.: " + ALLTRIM( STR( nProposta ) ), oFont,, ;
                      CLR_BLACK,, PAD_CENTER )

         ELSE

            oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,            ;
                      "
Solicitação Nº.: " + ALLTRIM( nProposta ), oFont,, ;
                      CLR_BLACK,, PAD_CENTER )
         ENDIF

         nColuna := nColuna +=  5.00

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Data: " + DTOC( dPedidoEm ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  5.00

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Agendado Para: " + DTOC( dAgendado ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  5.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
                   "
Horário: " + HoraAgend, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  6.10

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Cliente: " + ClienPropo, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  10.50

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                  ;
                   "
Contato: " + ALLTRIM( cContatoCli ), oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  5.90

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Local: " + EnderPropo, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  10.50

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Função: " + cFuncaoClie, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  3.30

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Bairro: " + BairrPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=   4.80

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Cid: " + CidadPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=   3.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Uf: " + UFdaPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=   2.10

         oPrn:Say(  nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Cep.: " + TRANSF( ( CepdaPropo ), "@R 99999-999" ), oFontMin,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=   4.60

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Fone: " + cFonesClien, oFontMin,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  9.05

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Email: " + cEmailCli, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.80
         nColuna :=  4.20

         oPrn:Say(  nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Administradora: " + cCodAdmini, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  10.00

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Fones: " + cFonesAdmin, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  5.05

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                  ;
                   "
Contato: " + cContatoPro, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  11.40

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                     ;
                   "
Função: " + cFuncaoAdmi, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  9.05

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Email: " + cEmailProp1, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.80
         nColuna :=  5.40

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Descrição Simples do Trabalho Pretendido: ", oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  14.85

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
_________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
__________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
__________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         oPrn:Box(  8.00 * ResLinha,  0.50 * ResColuna,         ;
                   10.00 * ResLinha, 20.50 * ResColuna, oPen3 )

         nLinha  := nLinha += 1.20
         nColuna :=  3.90

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Distribuição da Solicitação:", oFont,,                   ;
                   CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  14.00

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                      ;
                   "
Data: " + DTOC( dParaPaisa ), oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  6.45

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Paisagista: " + CPAISANOME, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  10.30

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Fones: " + cFonesPaisa, oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  9.10

         oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Email: " + cEmailPaisa, oFont,, CLR_BLACK,, PAD_CENTER )

         oPrn:Box( 10.20 * ResLinha,  0.50 * ResColuna,         ;
                   13.30 * ResLinha, 20.50 * ResColuna, oPen3 )

         nLinha  := nLinha += 1.20
         nColuna :=  2.50

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
DADOS COLETADOS", oFontBold,,                            ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  5.85

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Descrição Técnica do Trabalho a Ser Executado: ", oFont,,                      ;
                   CLR_BLACK,, PAD_CENTER )

         nColuna :=  15.25

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
_____________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
__________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
__________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
__________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         oPrn:Box( 13.52 * ResLinha,  0.50 * ResColuna,         ;
                   26.30 * ResLinha, 10.70 * ResColuna, oPen3 )

         oPrn:Box( 13.52 * ResLinha, 10.90 * ResColuna,         ;
                   26.30 * ResLinha, 20.50 * ResColuna, oPen3 )

         nLinha  := nLinha += 1.20
         nColuna :=   4.00
         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Materiais a Serem Utilizados", oFont,,                   ;
                   CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=   8.80

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Mão de Obra: ", oFont,,                      ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=   3.00

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Quant.   Descrição:", oFont,,                      ;
                   CLR_BLACK,, PAD_CENTER )

         nColuna := nColuna +=  11.15

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Descrição das Horas/Homens", oFont,,                     ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=   5.50

         FOR nPulaLinha = 1 TO 23

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                      "
______ ______________________________________", ;
                      oFont,, CLR_BLACK,, PAD_CENTER )

            nLinha += 0.50

         NEXT nPulaLinha

         nLinha  :=  14.70
         nColuna :=  15.60

         FOR nPulaLinha = 1 TO 3

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                      "
__________________________________________", ;
                      oFont,, CLR_BLACK,, PAD_CENTER )

            nLinha += 0.50

         NEXT nPulaLinha

         nLinha  :=  16.50
         nColuna :=  13.80

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Utilização de Ferramentas", oFont,,                      ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  13.20

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Quant.   Descrição:", oFont,,                      ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  :=  17.65
         nColuna :=  15.65

         FOR nPulaLinha = 1 TO 17

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                      "
______ ___________________________________", ;
                      oFont,, CLR_BLACK,, PAD_CENTER )

            nLinha += 0.50

         NEXT nPulaLinha

         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
_______________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=   4.65

         oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                  ;
                   "
Retorno Para Formação da Proposta:", oFont,,             ;
                   CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  8.15

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Recepcionado Por: _________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  17.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Data: ___/___/___", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  8.15

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Elaborado    Por: _________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  17.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
Data: ___/___/___", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

         nLinha  := nLinha += 0.50
         nColuna :=  10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
                   "
_______________________________________________________________________________________________", ;
                   oFont,, CLR_BLACK,, PAD_CENTER )

      ENDPAGE

   ENDPRINT

   oFont:End()
   oFontBold:End()
   oFontSubl:End()
   oFontMin:End()

   oPen1:End()
   oPen2:End()
   oPen3:End()

   IF Tipo_Opcao_PDF = 3

      MsgInfo( OemToAnsi( "
Arquivo *.PDF Criado em: C:\NFEPDF Pode Enviar Email" ), ;
               OemToAnsi( "
Arquivo *.PDF Criado em: C:\NFEPDF Pode Enviar Email" ) )

   ENDIF

RETURN NIL
// ENVIO DE EMAIL
FUNCTION ENVIAR_EMAIL_CONTATO( cEmailPaisa, CPAISANOME )

   LOCAL oDlgErro, oFnt, oFont, IDCor, oSaida, oIco, cSiteFlexs, oAjudaErro, ;
         oSaida2, oSayFalha, cPromptDsay, cSiteGoogle, oEnviaEmail, cTitle, ;
         oErro5305, cErro5305, cFile
   LOCAL MailTo, cSndFile, cSndFile2, cText, cSubj, aFiles

   PUBLIC WNOMEEMPRESA, CUF, cMatriz
   PUBLIC lErroVemFalhaXML := .T.
   PUBLIC cEMailCli

   XDATALISTA  := "
SÃO PAULO      " + ",    "   + ;
                  LTRIM( STR( DAY( DATE() ) ) ) + ;
                  "
  de   "                    + ;
                  OEMTOANSI(CMONTH( DATE() ))   + ;
                  "
  de   "                    + ;
                  STR( YEAR( DATE() ) )         + ;
                  "
."

   // MODIFICADO PARA SALVAR O PDF NA PASTA: C:\NFEPDF
   cPRGPATH := cFILEPATH( "
C:\NFEPDF\" )

   lCHDIR(cPRGPATH) // LOCAL ONDE FICAM OS ARQUIVOS *.PDF

   // Campo Para:
   MailTo   := ALLTRIM( cEmailPaisa ) //"
joao@pleno.com.br"

   // Arquivo a Anexar
   cFile := "
C:\NFEPDF\"+"PROP"+ALLTRIM( nProposta )+".PDF"

   cSndFile  := ALLTRIM( cFile  ) // cDirPleno + "
\gilmer.Log"
   cSndFile2 := "
" // cDirPleno + "\ERROR.Log"

   IF .NOT. FILE( cSndFile )

      MsgInfo( OemToAnsi( "
Arquivo *.PDF NÆo Localizado em C:\NFEPDF" ), ;
               OemToAnsi( "
Arquivo *.PDF NÆo Localizado em C:\NFEPDF" ) )

      cSndFile := "
"

   ENDIF

   IF .NOT. FILE( cSndFile2 )

      cSndFile2 := "
"

   ENDIF

   cText    := "
Senhor: " + ALLTRIM( CPAISANOME )                   +CRLF+CRLF+ ;
               "
Segue em Anexo, em Formato PDF, Dados do Primeiro " +CRLF+CRLF+ ;
               "
Contato Para Análise e Providências de V.Sa.      " +CRLF+CRLF+ ;
               "
Texto Final, deve ser repassado ...........       " +CRLF+CRLF+ ;
               + ALLTRIM( WNOMEEMPRESA )+"
- "+cUf                  +CRLF+CRLF+ ;
               XDATALISTA

   // Titulo do Email
   cSubj    := "
Coleta de Dados Para Cotação"

   // Abre o OutLook Express ou o Windows Live Mail - Tem que estar padrao
   SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj )

   // VOLTO AO DIRETORIO
   lCHDIR( cDirPleno )

RETURN NIL
// Envia o arquivo de erro do programa - Incluido em: 22/07/2014
FUNCTION SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj )

   LOCAL oMail

   DEFINE MAIL oMail                                 ;
      SUBJECT cSubj                                  ;
      TEXT cText                                     ;
      FILES cSndFile, cSndFile, cSndFile2, cSndFile2 ;
      FROM USER                                      ;
      TO MailTo

   ACTIVATE MAIL oMail

   IF ( oMail:nRetCode ) = 0

      //MsgInfo( "
Mensagem Enviada com Sucesso", "Aviso" )

   ELSE

      MsgInfo( OemToAnsi( "
NÆo Foi Possivel Enviar a Mensagem de Erro" )+CRLF+;
               OemToAnsi( "
Por Favor Verifique se o Enviador de Email" )+CRLF+;
               OemToAnsi( "
OutLook Express ou Windows Live Mail,     " )+CRLF+;
               OemToAnsi( "
Est  Definido Como Enviador PadrÆo, nas   " )+CRLF+;
               OemToAnsi( "
Op‡äes da Internet do Internet Explorer.  " )+CRLF+;
               OemToAnsi( "
Op‡Æo: <Definir Programas>           Anote" )+CRLF+;
               OemToAnsi( "
Op‡Æo: <Definir os Programas PadrÆo>      " ),     ;
               OemToAnsi( "
NÆo Foi Possivel Enviar a Mensagem de Erro" ) )

   ENDIF

RETURN( .T. )


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7154
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 11 guests