FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Mr. Rao, From PREVIEW To Excel (SOLVED)
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Mr. Rao, From PREVIEW To Excel (SOLVED)
Posted: Wed Mar 03, 2021 07:21 PM
Mr. Rao:

I have the following code.

Code (fw): Select all Collapse
    REPORT oReporte CAPTION cTitulo PREVIEW ;
        HEADER ALLTRIM(oApp:cRazonSocial),;
        "",;
        cTitulo CENTER;
        TITLE "Fecha: "+Date2Txt(DATE()),;
        "Hoja No:"+STR(oReporte:nPage,3);
        FONT oFont1,oFont2,oFont3;
        PEN oPen1,oPen2

        COLUMN TITLE "Folio"            DATA "" SIZE  4 RIGHT
        COLUMN TITLE "Concepto"     DATA "" SIZE 35 LEFT
        COLUMN TITLE "Referencia"   DATA "" SIZE 12 LEFT
        COLUMN TITLE "Importe"      DATA "" SIZE 11 RIGHT
        COLUMN TITLE "Prestamos"    DATA "" SIZE 11 RIGHT
    END REPORT

    IF oReporte:lCreated
        oReporte:SetTxtColor(CLR_BLACK,1)
        oReporte:SetTxtColor(CLR_HRED,2)
        oReporte:SetTxtColor(CLR_HRED,3)
        oReporte:SetPenColor(CLR_HBLUE)
        oReporte:SetShdColor(CLR_YELLOW)
        oReporte:oHeader:aFont[1] := {||3}

        oReporte:oTitle:aPad[1] := RPT_LEFT
        oReporte:oTitle:aPad[2] := RPT_RIGHT

      oReporte:bInit := {|| oRsGas:MoveFirst() }

        oReporte:nTopMargin     := 300
        oReporte:nDnMargin      := 300

       oReporte:bSkip := { || (nLinea++, oRsGas:MoveNext())}

    ENDIF

   ACTIVATE REPORT oReporte ;
        ON STARTPAGE Alinea(oReporte,1,2);
        ON CHANGE PonDet(oReporte);
        ON END (TotFin(oReporte,oBrw),oRsGas:BookMark := nBookMark);
      WHILE nLinea <= nHasta

    oRsGas:SORT := "GAS_GAS ASC"

    oBrw:Refresh()

    oFont1:Release()
    oFont2:Release()
    oFont3:Release()
    oPen1:Release()
    oPen2:Release()
RETURN(.T.)




But when exporting it to Excel shows it incomplete, could you help me?, what am I omitting?



With best regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Mr. Rao, From PREVIEW To Excel
Posted: Wed Mar 03, 2021 09:11 PM

Que belo REPORT Armando, podrias poner el código completo para el amigo aqui?

Muchas gracias.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mr. Rao, From PREVIEW To Excel
Posted: Wed Mar 03, 2021 09:45 PM

Karinha:

El código está completo. Si te reclama algo me avisas.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Mr. Rao, From PREVIEW To Excel
Posted: Sat Mar 06, 2021 01:59 PM
This is a working sample:
Code (fw): Select all Collapse
function AdoReport()

   local oCn, oRs, oRep, oFont

   oCn   := FW_OpenAdoConnection( "xbrtest.mdb" )
   oRs   := FW_OpenRecordSet( oCn, "select * from customer where id <= 5" )

   xbrowser oRs
   oRs:MoveFirst()

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-10
   REPORT oRep PREVIEW FONT oFont ;
      HEADER "CUSTOMER" CENTER ;
      TITLE "Date : " + FW_TRANSFORM( DATE(), "dd-mmmm-yyyy" ) LEFT

   COLUMN TITLE "FIRST"  DATA oRs:Fields( "FIRST"  ):Value SIZE 20
   COLUMN TITLE "CITY"   DATA oRs:Fields( "CITY"   ):Value SIZE 20
   COLUMN TITLE "SALARY" DATA oRs:Fields( "SALARY" ):Value SIZE 20 PICTURE "9,999,999.99" TOTAL RIGHT

   ENDREPORT

   oRep:bInit := { || oRs:MoveFirst() }
   oRep:bSkip := { || oRs:MoveNext() }

   ACTIVATE REPORT oRep WHILE !oRs:Eof()

   oRs:Close()
   oCn:Close()

return nil


Regards



G. N. Rao.

Hyderabad, India
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mr. Rao, From PREVIEW To Excel
Posted: Sat Mar 06, 2021 05:01 PM
Mr. Rao:

Your sample Works fine but We have a difference between codes, as you can see

My sorce code
Code (fw): Select all Collapse
        COLUMN TITLE "Folio"            DATA ""  SIZE  4 RIGHT   <=== Here is a first one difference
        COLUMN TITLE "Concepto"     DATA "" SIZE 35 LEFT
        COLUMN TITLE "Referencia"   DATA "" SIZE 12 LEFT
        COLUMN TITLE "Importe"      DATA "" SIZE 11 RIGHT
        COLUMN TITLE "Prestamos"    DATA "" SIZE 11 RIGHT
…
…
…

   ACTIVATE REPORT oReporte ;
        ON STARTPAGE Alinea(oReporte,1,2);
        [b]ON CHANGE PonDet(oReporte);[/b]   <======= Here is a second one difference
        ON END (TotFin(oReporte,oBrw),oRsGas:BookMark := nBookMark);
      WHILE ! oRsGas:EOF()
….
…
…
STATIC FUNCTION PonDet(oReporte)
    IF cUser <> oRsGas:Fields("GAS_USU"):Value
        IF cUser <> NIL
            TotUser(oReporte,(.F.))
        ENDIF
        oReporte:SAY(1,"Usuario: " + oRsGas:Fields("GAS_USU"):Value,2,RPT_LEFT)
        cUser := oRsGas:Fields("GAS_USU"):Value
        oReporte:EndLine()
    ENDIF

    oReporte:SAY(01,TRANSFORM(oRsGas:Fields("GAS_GAS"):Value,"@Z 9999999"),,RPT_RIGHT)
    oReporte:SAY(02,oRsGas:Fields("GAS_CPT"):Value,,RPT_LEFT)
    oReporte:SAY(03,oRsGas:Fields("GAS_REF"):Value,,RPT_LEFT)
    oReporte:SAY(04,IIF(oRsGas:Fields("GAS_CAN"):Value,"CANCELADO",TRANSFORM(oRsGas:Fields("GAS_IMP"):Value,"@Z 999,999,999.99")),,RPT_RIGHT)
    IF "PRESTAMO" $ oRsGas:Fields("GAS_CPT"):Value
        oReporte:SAY(05,IIF(oRsGas:Fields("GAS_CAN"):Value,"CANCELADO",TRANSFORM(oRsGas:Fields("GAS_IMP"):Value,"@Z 999,999,999.99")),,RPT_RIGHT)
        IF ! oRsGas:Fields("GAS_CAN"):Value
            nTotPus += oRsGas:Fields("GAS_IMP"):Value
            nTotPfi += oRsGas:Fields("GAS_IMP"):Value
        ENDIF
    ENDIF

    IF ! oRsGas:Fields("GAS_CAN"):Value
        nTotUsu += oRsGas:Fields("GAS_IMP"):Value
    ENDIF
RETURN(.T.)


With my code does not work

Best Regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Mr. Rao, From PREVIEW To Excel (SOLVED)
Posted: Sun Mar 07, 2021 12:19 AM
Armando wrote:Mr. Rao:

Your sample Works fine but We have a difference between codes, as you can see

My sorce code
Code (fw): Select all Collapse
        COLUMN TITLE "Folio"            DATA ""  SIZE  4 RIGHT   <=== Here is a first one difference
        COLUMN TITLE "Concepto"     DATA "" SIZE 35 LEFT
        COLUMN TITLE "Referencia"   DATA "" SIZE 12 LEFT
        COLUMN TITLE "Importe"      DATA "" SIZE 11 RIGHT
        COLUMN TITLE "Prestamos"    DATA "" SIZE 11 RIGHT
…
…
…

   ACTIVATE REPORT oReporte ;
        ON STARTPAGE Alinea(oReporte,1,2);
        [b]ON CHANGE PonDet(oReporte);[/b]   <======= Here is a second one difference
        ON END (TotFin(oReporte,oBrw),oRsGas:BookMark := nBookMark);
      WHILE ! oRsGas:EOF()
….
…
…
STATIC FUNCTION PonDet(oReporte)
    IF cUser <> oRsGas:Fields("GAS_USU"):Value
        IF cUser <> NIL
            TotUser(oReporte,(.F.))
        ENDIF
        oReporte:SAY(1,"Usuario: " + oRsGas:Fields("GAS_USU"):Value,2,RPT_LEFT)
        cUser := oRsGas:Fields("GAS_USU"):Value
        oReporte:EndLine()
    ENDIF

    oReporte:SAY(01,TRANSFORM(oRsGas:Fields("GAS_GAS"):Value,"@Z 9999999"),,RPT_RIGHT)
    oReporte:SAY(02,oRsGas:Fields("GAS_CPT"):Value,,RPT_LEFT)
    oReporte:SAY(03,oRsGas:Fields("GAS_REF"):Value,,RPT_LEFT)
    oReporte:SAY(04,IIF(oRsGas:Fields("GAS_CAN"):Value,"CANCELADO",TRANSFORM(oRsGas:Fields("GAS_IMP"):Value,"@Z 999,999,999.99")),,RPT_RIGHT)
    IF "PRESTAMO" $ oRsGas:Fields("GAS_CPT"):Value
        oReporte:SAY(05,IIF(oRsGas:Fields("GAS_CAN"):Value,"CANCELADO",TRANSFORM(oRsGas:Fields("GAS_IMP"):Value,"@Z 999,999,999.99")),,RPT_RIGHT)
        IF ! oRsGas:Fields("GAS_CAN"):Value
            nTotPus += oRsGas:Fields("GAS_IMP"):Value
            nTotPfi += oRsGas:Fields("GAS_IMP"):Value
        ENDIF
    ENDIF

    IF ! oRsGas:Fields("GAS_CAN"):Value
        nTotUsu += oRsGas:Fields("GAS_IMP"):Value
    ENDIF
RETURN(.T.)


With my code does not work

Best Regards


With my code does not work


+1
He probado la combinación de tu códicogo con el del siguiente link, con los mismos resultados.

Aquí también solicitan lo mismo:
viewtopic.php?f=6&t=40056&sid=c4f53f57e0f1f2f8b95c99c2b8a24eac#p239044

Yo siempre lo he hecho de la manera en que lo presenta Rao, pero es interesante conocer por qué no exporta los datos a Excel si se usa una función de usuario.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Mr. Rao, From PREVIEW To Excel (SOLVED)
Posted: Sun Mar 07, 2021 12:34 AM
Este es el codigo que estoy probando:

Code (fw): Select all Collapse
//------------------------------------------//
Function LstEstdCta(oQry, dFechaI,dFechaF,cCta,cNomCta,nRecno,lCtaAcreed)
local oReport, oPrn, oFont1, oFont2, oFont3, oFont4, oPen1, oPen2, nCancelar := 0
local cTitulo := "DETALLE DE LA CTA: "+ alltrim(cCta)+"  "+alltrim(cNomCta)
local  nDebe := 0, nHaber := 0
local cFecha

    cFecha := Fechador(dFechaI,dFechaF)

    nCancelar := PrinterSetup(oPrn)
    if nCancelar = 0
       return nil
    endif

    DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-08 
    DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-09 BOLD
    DEFINE FONT oFont3 NAME "ARIAL" SIZE 0,-10 BOLD ITALIC
    DEFINE FONT oFont4 NAME "ARIAL" SIZE 0,-10 BOLD ITALIC
    DEFINE PEN oPen1 WIDTH 1
    DEFINE PEN oPen2 WIDTH 1 

    REPORT oReport CAPTION cTitulo PREVIEW ;
        HEADER EMPRESA +"  "+ MEMBRE, "" ,;     //Se usa HEADER como TITLE
               cTitulo ,;
               cFecha CENTER ;
        TITLE  "Fecha: " + DToC(Date()) ,;      //Se usa TITLE como HEADER
               "Hoja No:"+STR(oReport:nPage,3) ;
        FONT   oFont1,oFont2,oFont3,oFont4 ;
        PEN    oPen1,oPen2 

        COLUMN TITLE "Fecha"     DATA "" SIZE 10 
        COLUMN TITLE "Dcto No."  DATA "" SIZE 10
        COLUMN TITLE "Concepto"  DATA "" SIZE 48
        COLUMN TITLE "Debitos"   DATA "" SIZE 12
        COLUMN TITLE "Creditos"  DATA "" SIZE 12
        COLUMN TITLE "Saldo"     DATA "" SIZE 12
    END REPORT

    IF oReport:lCreated
       oReport:SetTxtColor(CLR_BLACK,1)    
       oReport:SetTxtColor(CLR_HRED,2)
       oReport:SetTxtColor(CLR_HRED,3)
       oReport:SetTxtColor(CLR_GREEN,4)
       oReport:SetPenColor(CLR_HBLUE)
       oReport:SetShdColor(CLR_YELLOW)

       oReport:oHeader:aFont[1] := {|| 3 }   
       oReport:oHeader:aFont[3] := {|| 4 }   
       oReport:oHeader:aFont[4] := {|| 4 }   

       oReport:oTitle:aPad[1] := RPT_LEFT     //fecha
       oReport:oTitle:aPad[2] := RPT_RIGHT    //pag

       oReport:nTopMargin     := 300
       oReport:nDnMargin      := 300

       oReport:bInit := {|| oQry:GoTop() }
       oReport:bSkip := {|| oQry:Skip() }  

       oReport:bEndPage := {|| if(!oReport:lFinish, ( oReport:nRow += 32, oReport:TotalLine(oReport:nGroupLine, 1) ),) }

       AEval(oReport:aColumns,{|oCol| oCol:nAlignTitle := RPT_CENTER })
    ENDIF

    ACTIVATE REPORT oReport ;   
        ON CHANGE LnDatos(oReport, oQry, @nDebe ,@nHaber) ; 
        ON END LnGranTot(oReport, nDebe, nHaber) ;
        WHILE !oQry:Eof()  

    RELEASE oFont1,oFont2,oFont3,oFont4,oPen1,oPen2

RETURN(.T.)

//------------------------------------------//
Function LnDatos(oReport, oQry, nDebe, nHaber)
   oReport:Say(  1, oQry:FECHEMIS, 1, 1 )
   oReport:Say(  2, oQry:NUMDOC, 1, 1 )
   oReport:Say(  3, Substr(oQry:CONCEPTO,1,48), 1, 1 )
   oReport:Say(  4, Transform( oQry:DEBE, "9,999,999,999.99" ), 1, 2 )
   oReport:Say(  5, Transform( oQry:HABER,"9,999,999,999.99" ), 1, 2 )
   oReport:Say(  6, Transform( oQry:SALDO,"9,999,999,999.99" ), 1, 2 )
   nDebe  += oQry:DEBE
   nHaber += oQry:HABER
Return nil
//------------------------------------------//
Function LnGranTot(oReport, nDebe, nHaber)
   oReport:NewLine()
   oReport:TotalLine(oReport:nGroupLine, 1)    //lin sencilla

   oReport:Say(  3, "Total Debitos y Creditos", 1, 2 )
   oReport:Say(  4, Transform( nDEBE, "9,999,999,999.99" ), 1, 2 )
   oReport:Say(  5, Transform( nHABER,"9,999,999,999.99" ), 1, 2 )

   oReport:NewLine()
   oReport:TotalLine(oReport:nTotalLine, 1)    //lin doble
Return nil


Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion