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.