Ayuda enviar reporte a Excel

Post Reply
EBM
Posts: 123
Joined: Tue Oct 11, 2005 8:22 pm
Location: Guadalajara, Jal Mexico

Ayuda enviar reporte a Excel

Post by EBM »

Compañeros buen dia,

Estoy queriendo habilitar el envío de reportes a Excel pero no logro hacerlo, ya pude habilitar el boton de excel con oReport:bInit := { || .T. }
sin embargo solo me envia el encabezado del reporte sin los datos y en algunos me genera un error (6) deleting enhanced metafile y solo me envia a excel el encabezado, alguna idea de que podré estar haciendo mal?

Saludos

Eduardo Borondón Muñiz

Code: Select all

REPORT   oReporte                                                                                  ;
TITLE    "Reporte de compras del dia: " + Fec( dDesde ) + " al dia: " + Fec( dHasta ),             ;
         "Fecha: " + Fec( Date() ) + "     Hora: " + Time()                                        ;
HEADER   oPublic:oEmpresa:cNombre  CENTER                                                          ;
FOOTER   "Página: " + Str(oReporte:nPage,3) CENTER                                                 ;
FONT     oFont                                                                                     ;
CAPTION  "Reporte de compras"                                                                      ;
PREVIEW

COLUMN TITLE  "Fecha"                                                                              ;
       SIZE   10                                                                                   ;
       CENTER                                                                                      ;
       DATA   " "

COLUMN TITLE  "Vendedor"                                                                           ;
       SIZE   40                                                                                   ;
       CENTER                                                                                      ;
       DATA   " "

COLUMN TITLE  "Oro"                                                                                ;
       SIZE   10                                                                                   ;
       CENTER                                                                                      ;
       DATA   " "

COLUMN TITLE  "Plata"                                                                              ;
       SIZE   10                                                                                   ;
       CENTER                                                                                      ;
       DATA   " "

COLUMN TITLE  "Entregado"                                                                          ;
       SIZE   10                                                                                   ;
       CENTER                                                                                      ;
       DATA   " "

ENDREPORT

oReporte:nSeparator := 10

oReporte:bInit := { || .T. } 

ACTIVATE REPORT oReporte                                                                           ;
         WHILE  ( RCompras2( dDesde, dHasta, oReporte ) )                                          ;
         ON STARTPAGE PrintLogoRep( oReporte )

oFont := NIL

Return NIL

///////////////////////////////////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION RCompras2( dDesde, dHasta, oReporte )
LOCAL oQuery, cConsulta, nOro, nPlata

nOro := nPlata := 0

cConsulta := "SELECT FECHA, IMPORTE, TIPO, VENDEDOR, FEC_ENTREGA  "                           +     ;
             "FROM compras "                                                                  +     ;
             "WHERE FECHA >= '" + DtoS( dDesde ) + "' AND FECHA <= '" + DtoS( dHasta ) + "' " +     ;
             "AND DELETED = 'N' "                                                             +     ;
             "ORDER BY FECHA, TIPO"

oQuery    := oPublic:oMySql:Query( cConsulta )

If oQuery:nRecCount > 0
   Do While !oQuery:Eof()
      oReporte:StartLine()
      oReporte:Say(  1, Fec( oQuery:FieldGet( "FECHA" ) ), 1, 1 )
      oReporte:Say(  2, oQuery:FieldGet( "VENDEDOR" ), 1, 1 )

      If oQuery:FieldGet( "TIPO" ) == 1 // oro
         oReporte:Say(  3, Transform( oQuery:FieldGet( "IMPORTE" ),"999,999" ),1, 2 )
         nOro   += oQuery:FieldGet( "IMPORTE" )
       else
         oReporte:Say(  4, Transform( oQuery:FieldGet( "IMPORTE" ),"999,999" ),1, 2 )
         nPlata += oQuery:FieldGet( "IMPORTE" )
      EndIf

      oReporte:Say(  5, Fec( oQuery:FieldGet( "FEC_ENTREGA" ) ), 1, 1 )

      oReporte:EndLine()
      oQuery:Skip( 1 )
   EndDo

   oReporte:StartLine()
   oReporte:EndLine()
   oReporte:StartLine()
   oReporte:aColumns[ 3 ]:Separator()
   oReporte:aColumns[ 4 ]:Separator()
   oReporte:EndLine()
   oReporte:StartLine()
   oReporte:Say(  3, Transform( nOro,  "999,999" ),1, 2 )
   oReporte:Say(  4, Transform( nPlata,"999,999" ),1, 2 )
   oReporte:StartLine()
EndIf

oQuery := NIL

Return .F.
 
EBM
Posts: 123
Joined: Tue Oct 11, 2005 8:22 pm
Location: Guadalajara, Jal Mexico

Re: Ayuda enviar reporte a Excel

Post by EBM »

Se me pasó incluir que tengo FWH 19.05 y que al generar el reporte a PDF me lo hace sin problemas.

Saludos!

Eduardo Borondón Muñiz
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda enviar reporte a Excel

Post by FranciscoA »

Hola. Ya intestaste con esto?:

Code: Select all

        oReport:bSkip := {|| oQry:Skip() }
        oReport:bInit := {|| oQry:Gotop() } 
 
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
EBM
Posts: 123
Joined: Tue Oct 11, 2005 8:22 pm
Location: Guadalajara, Jal Mexico

Re: Ayuda enviar reporte a Excel

Post by EBM »

Hola Francisco,

Gracias por respoder, si ya lo habia intentado asi y es el mismo resultado, creo que el problema viene por como yo hago los reportes que en la clausula WHILE lo desvío hacia otra funcion donde yo controlo cada renglón y cada columna que se genera en el reporte, tomé el codigo del metodo toExcel de la clase Report y estoy creando un metodo propio para ver si logro hacerlo funcionar.

Mil Gracias por tu interés

Eduardo Borondón Muñiz
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda enviar reporte a Excel

Post by FranciscoA »

EBM wrote:Hola Francisco,

Gracias por respoder, si ya lo habia intentado asi y es el mismo resultado, creo que el problema viene por como yo hago los reportes que en la clausula WHILE lo desvío hacia otra funcion donde yo controlo cada renglón y cada columna que se genera en el reporte, tomé el codigo del metodo toExcel de la clase Report y estoy creando un metodo propio para ver si logro hacerlo funcionar.

Mil Gracias por tu interés

Eduardo Borondón Muñiz
Por cierto, antes de que escribieras, estaba por preguntarte si se podía saber por qué utilizas una function independiente, si bien lo puedes hacer todo en el oReport.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
EBM
Posts: 123
Joined: Tue Oct 11, 2005 8:22 pm
Location: Guadalajara, Jal Mexico

Re: Ayuda enviar reporte a Excel

Post by EBM »

Hola Francisco,

Lo hago así por que un gran numero de reportes que genero concentro información de diferentes tablas e incluso bases de datos de empresas diferentes para no tener que estar viendo un reporte y otro, sino en uno solo tengo toda la información que necesito, ademas de poder utilizar diferentes fonts para cada renglon/columna independiente a mi gusto. Ya me acostumbre a hacerlo asi. :roll:

Te muestro un ejemplo de un reporte donde concentro información de 3 empresas diferentes:
http://www.suitesrealmazamitla.mx/files ... _flujo.JPG

No lo hago con la clase printer ya que al hacerlo con Report no me preocupo por calcular anchos de columnas ni de renglones ni de nada. Para mi es mas comodo hacerlo de esa manera.

Saludos y nuevamente gracias!!

Eduardo Borondón Muñiz
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda enviar reporte a Excel

Post by FranciscoA »

Eduardo.
Gracias por compartir tus experiencias.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Post Reply