FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda Harbour en modo consola (PRINT,REPORT,EYSAREPOR)
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Ayuda Harbour en modo consola (PRINT,REPORT,EYSAREPOR)
Posted: Fri Feb 03, 2017 11:57 PM
Saludos al Forum.

Quien me puede orientar.
tengo una aplciacion modo consola.
Lo que requiero es ejecutar reportes de Eysareport, pero me da error, tambien pasa con PRINT y REPORT

El Error es el NEW -> No Existe el metodo, para los tres casos
Como hago para que corra en modo consola.



Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "Sistemam.ch"
#include "report.ch"


FUNCTION repowind1() //cristal report
   PUBLIC oWnd ,oErr
   
Try   
   DEFINE WINDOW oWnd MENU CreaMenu1(oWnd) MDI
   ACTIVATE WINDOW oWnd MAXIMIZED
Catch oErr 
    //Alert(oErr:Operation + " -> " + oErr:Description + CRLF + "Reportman.ReportManX ",oApp:cSistema) 
   Alert("Error ->"+ltrim( str( oErr:gencode,14,0 ) )+" "+oErr:description + " "+oErr:operation+"--"+oErr:subsystem())
       
 End    

RETURN (.T.)

FUNCTION CreaMenu1(oWnd)
   LOCAL oMenu
   MENU oMenu
      MenuItem "PRINT " Action Re12_datos(oWnd)    
      MenuItem "REPORT " Action Re13_datos(oWnd) 
      MenuItem "Eysareport"  Action Re14_datos(oWnd)
   ENDMENU
   
RETURN (oMenu)



Function R12_datos()  //Segundo modelo con PRINT no funciona con ADO , ADORR , DBF
LOCAL oPen1, oPen2, oFon1, oFon2, oFon3, oReport,oPrn, nlin ,RegAnt
LOCAL nLinea , nHasta,oErr 
    LOCAL MODUL := "PXP610_4"
    Local a1,a2,b1,b2,oDatos,cSql,pmtrz,t_fon,opx,il,npag,nl
    MEMVAR oApp,oV610_4
    USE K:\v_xharb_v3\tradbf\EMPLOYEE NEW SHARED
   nLinea := 0 ; nLin := 0

Try    
  PRINT  oPrn NAME "cTitulo" PREVIEW 
        if Empty( oPrn:hDC )
           //return nil          // Printer was not installed or ready
        endif
       DEFINE FONT oFon1 NAME "Ms Sans Serif" SIZE 0, -12 OF oPrn
        oPrn:SetPortrait() //oPrn:SetPortrait() VErtical oPrn:SetLandscape() Horizontal
       oPrn:SetPage(1) // 9 indica formato A4 1 Carta Letter
       PAGE
            Do While .NOT.EOF()   
                oPrn:cmSay( nlin+1, 02,  EMPLOYEE->FIRST ,oFon1  )
               oPrn:cmSay( nlin+1, 05,  EMPLOYEE->LAST ,oFon1  )
               nlin++
               DbSkip()
           Enddo 
       ENDPAGE  
   ENDPRINT
  oFon1:End()
  alert("Fin 12")  // //Hasta aqui funciona genera todo el error es porque no puede mostar el reporte por el problema de no definicion de ventana windows
 CATCH oErr
     Alert(oErr:Operation + " -> " + oErr:Description + CRLF + "Rep12_datos","SISTEMAS ++++") 
 END
   DbCloseAll()
  
 Release oPen1, oPen2, oFon1, oFon2, oFon3, oReport,oPrn,nlin,nLinea , nHasta,regant

return Nil


//------------------------------------------------------------
Function R13_datos()  //Segundo modelo con PRINT no funciona con ADO , ADORR , DBF
LOCAL oPen1, oPen2, oFon1, oFon2, oFon3, oReport,oPrn, nlin ,RegAnt
LOCAL nLinea , nHasta,oErr 
    LOCAL MODUL := "PXP610_4"
    Local a1,a2,b1,b2,oDatos,cSql,pmtrz,t_fon,opx,il,npag,nl

    MEMVAR oApp,oV610_4

   USE K:\v_xharb_v3\tradbf\EMPLOYEE NEW SHARED
 
   nLinea := 0 ; nLin := 0

     nClrTotal     := CLR_LIGHTGRAY 
     DEFINE FONT oFon1 NAME "ARIAL" SIZE 0,-10
     DEFINE FONT oFon2 NAME "ARIAL" SIZE 0,-10 BOLD
     DEFINE FONT oFon3 NAME "ARIAL" SIZE 0,-10 BOLD ITALIC

     DEFINE PEN oPen  WIDTH 0.5 COLOR CLR_BLUE
     DEFINE PEN oPen1 WIDTH 1 //3 COLOR CLR_HGREEN
     DEFINE PEN oPen2 WIDTH 0.5 //COLOR CLR_HMAGENTA

Try
  PRINT  oPrn NAME "cTitulo" //FROM USER PREVIEW 
      if Empty( oPrn:hDC )
     //    return nil          // Printer was not installed or ready
      endif
   oPrn:SetPortrait() //oPrn:SetPortrait() VErtical oPrn:SetLandscape() Horizontal
   oPrn:SetPage(1) // 9 indica formato A4 1 Carta Letter


     REPORT oReport ;
          TITLE "LISTADO DE TIPO DE MODULOS";
          FONT oFon1 ;
          PREVIEW
           
         COLUMN TITLE "Codigo" DATA EMPLOYEE->FIRST  
                   //SHADOW GRID 1 hace la raya vertical
         COLUMN TITLE "Nombre" DATA  EMPLOYEE->LAST ;
                 SIZE 30  //SHADOW grid  //coloca sombreado
    END REPORT
     //oReport:bSkip  := { || (nLinea++, bs_siguien(oApp:aQkvende,oApp:rt) )}    

     ACTIVATE REPORT oReport //ON STARTPAGE StartPage(1,oReport) //ON STARTLINE versombra(oReport) WHILE nLinea <= nHasta



 alert("fin 13")  // //Hasta aqui funciona genera todo el error es porque no puede mostar el reporte por el problema de no definicion de ventana windows
 //if !aContl[20];b_tipmod->(dbGoTo(RegAnt));else;oRecordSet[nRecordSet]:MoveFirst();endif 
 CATCH oErr
     Alert(oErr:Operation + " -> " + oErr:Description + CRLF + "Rep13_datos","SISTEMA +++++") 
 END
   DbCloseAll()
 oPen:End(); oPen1:End(); oPen2:End(); oFon1:End() ; oFon2:End() ; oFon3:End()  
 Release oPen, oPen1, oPen2, oFon1, oFon2, oFon3, oReport,oPrn,nVeces,par_linea, RegAnt
return Nil

//-----------------------------------------------------------------------------

Function R14_datos(oWnd)  //Segundo modelo con PRINT no funciona con ADO , ADORR , DBF
LOCAL oPen1, oPen2, oFon1, oFon2, oFon3, oReport,oPrn, nlin ,RegAnt
LOCAL nLinea , nHasta 
LOCAL oItem, nOldCol,oErr,p ,lPreview
LOCAL oVRD, oInfo,NomReport,img,nemp,nare
LOCAL nTotalPages := 0
local XLOGO := .T.
LOCAL XTITU1 := "REPORTE DE TODO"

LOCAL MODUL := "PXP610_4"
Local a1,a2,b1,b2,oDatos,cSql,pmtrz,t_fon,opx,il,npag,nl

   USE K:\v_xharb_v3\tradbf\KKVENDE NEW SHARED
 

  lPreview := .f. 
    
   nArc := ".\REYSAR\" + alltrim(MODUL)+".erd"  //+".vrd"
   IF FILE (nArc)    
        oVRD := VRD():New( nArc, lPreview,, oWnd, ;
                      ,,,,, IIF( lPreview, .F., .T. ) )
   Else
      ALERT("ERROR:Reporte No Existe.." )
      Return(.t.)
   Endif
 
   IF oVRD:lDialogCancel = .T.
      RETURN( .F. )
   ENDIF
 
  if XLOGO
     img   := ".\Logos\LOGO.JPG"
     nemp  := " "
     nare  := 1
  else
     nemp  := "PERWIEROCNZXKCN ZXKCNZX KC"
     img   := " "
     nare  := 2
  endif
//alert("dsdsds "+str(nare,1,0))
   NomReport := "Reporte Representante de Ventas"


Try
    p:= 1
     PRINTAREA nare OF oVRD  ITEMIDS{ 100,101,102} ITEMVALUES { img,nemp,NomReport}
     PRINTAREA 3 OF oVRD  ITEMIDS{ 300,301,302} ITEMVALUES {,,}
   
   DO WHILE .not. eof()

      V201 := KKVENDE->vend
      V202 := KKVENDE->nombre
      V203 := KKVENDE->status 

      PRINTAREA 4 OF oVRD  ITEMIDS{ 400,401,402} ITEMVALUES {V201,V202,V203}

     IF oVRD:nNextRow > oVRD:nPageBreak 
         PRINTAREA 10 OF oVRD  ITEMIDS{ 900,901,903,905} ;
                 ITEMVALUES {XTITU1,MODUL,DTOC(DATE())+" "+ampm(time()),str(oVRD:nPage,4,0)}
         // Imprimimos el pie de página (área # 5) 
          // Imprimimos el encabezado nuevamente 
         // Salta a la página siguiente 
         PAGEBREAK oVRD 
         PRINTAREA nare OF oVRD  ITEMIDS{ 100,101,102} ITEMVALUES { img,nemp,NomReport}
         PRINTAREA 3 OF oVRD  ITEMIDS{ 300,301,302} ITEMVALUES {,,}
         p++
         // Imprimimos el área de encabezados nuevamente 
      ENDIF 
     // ?V201
      DbSkip()  

   ENDDO

         PRINTAREA 10 OF oVRD  ITEMIDS{ 900,901,903,905} ;
                 ITEMVALUES {XTITU1,MODUL,DTOC(DATE())+" "+ampm(time()),str(oVRD:nPage,4,0)}

   oVRD:End()   //END EASYREPORT oVRD   //
alert("Fin 14 ")
   DbCloseAll()

 CATCH oErr
     Alert(oErr:Operation + " -> " + oErr:Description + CRLF + "Rep4_datos (9)","dnsdfhdjf") 
 END

RETURN (.T.)
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Ayuda Harbour en modo consola (PRINT,REPORT,EYSAREPOR)
Posted: Sat Feb 04, 2017 10:28 AM

Ruben,

El modo consola de Windows no permite crear ciertos elementos de Windows,
de ahi que obtengas esos errores.

Tienes que portar la aplicación desde consola a GUI

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion