CLASE REPEXCEL

CLASE REPEXCEL

Postby IVAN TRACHTA » Tue Apr 19, 2011 2:28 pm

Hola, utilizo la clase repexcel para poder exportar desde treport a planillas excel.
Funciona perfecto simpre que los listados sean desde un archivo, si está basado en un array me genera el listado pero sin los registros (o sea el excel sólo tiene la cabecera del reporte y los títulos de las columnas)
Otro problema que detecté es que si defino un PICTURE en el reporte me tira error acceso al array en la línea TSALXLS:NEW(99). De todos modos este error esta también en el listado basado en arrays por lo que no se si su origen es por este motivo o siempre que utilizo PICTURES.

Saludos
Iván
IVAN TRACHTA
 
Posts: 44
Joined: Fri Feb 03, 2006 6:42 pm
Location: FORMOSA - ARGENTINA

Re: CLASE REPEXCEL

Postby IVAN TRACHTA » Thu May 05, 2011 1:32 pm

A nadie le ha ocurrido este problema?
Hay alguna otra clase para exportar a Excell desde el Preview?
Será que habrá que pasar el array a un archivo temporal y desde allí armar el listado?
Gracias y saludos
Iván
IVAN TRACHTA
 
Posts: 44
Joined: Fri Feb 03, 2006 6:42 pm
Location: FORMOSA - ARGENTINA

Re: CLASE REPEXCEL

Postby RenOmaS » Fri May 06, 2011 3:06 pm

Tienes que utilizar este bloque de codigo, antes del Activate del report.
Code: Select all  Expand view  RUN

oRep:bPreInit := { || n:= 1 }
//donde n es tu contador que recorre la matriz/array.
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: CLASE REPEXCEL

Postby FranciscoA » Fri May 06, 2011 4:55 pm

Hola Renomas.
¿Podrías indicarme cómo activar correctamente el oReport:CellView() en Repexcel?
Siempre he utilizado sin problemas tu librería REPEXCEL. Es excelente. Hasta hoy no había utilizado oReport:Cellview() en mis sistemas, pero un cliente me lo ha solicitado y no obedece. He revisado los prgs de la librería, pero francamente no encuentro donde meterle mano. ¿Hay alguien que lo haya hecho y pueda suministrarme un ejemplo?

He logrado que funcione parcialmente así:
IF oReport:lCreated
// oReport:lSeparator := .t.
//oReport:CellView()
oReport:lBoxOnTotal:=.t.
ENDIF

ACTIVATE REPORT oReport ;
ON CHANGE oReport:Separator()

Pero... me agrega una linea más, antes de cada total de Grupo, y es totalmente anti-estético.
Mucho agradeceré sus orientaciones.

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

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: CLASE REPEXCEL

Postby RenOmaS » Fri May 06, 2011 5:59 pm

Experimenta modificar el method saydata de tsalxls
Code: Select all  Expand view  RUN
METHOD SayData( nCol, nLine ) CLASS TSalXLS

     LOCAL nFont, ;
           nFor, ;
           oCol := ::oRpt:aColumns[ nCol ], ;
           nAlignament:= ALING_NULL, ;
           uVal, ;
           nFormat := 0, ;
           nBorder := BORDER_NONE  //ADICIONADO !!


     IF nLine > len( oCol:aData)
        RETURN NIL
     ENDIF

     nFont := ::cFont( eval( oCol:bDataFont ) )

     If oCol:lGrid                      //ADICIONADO !!
         nBorder := BORDER_ALL //ADICIONADO !!
     EndIf                                 //ADICIONADO !!

     DO CASE
        CASE oCol:aPad[ nLine ] == RPT_LEFT
             nAlignament := ALING_LEFT

        CASE oCol:aPad[ nLine ] == RPT_RIGHT
             nAlignament := ALING_RIGHT

        CASE oCol:aPad[ nLine ] == RPT_CENTER
             nAlignament := ALING_CENTER
     ENDCASE

     uVal := Eval( oCol:aData[ nLine ] )

     IF !empty( oCol:aPicture[ nLine ] ) .or. valtype( uVal ) == 'D'  //Cuando es Fecha tambien env.
        nFormat := ::cFormat( oCol:aPicture[ nLine ], valtype( uVal ) )
     ENDIF

     @ ::nRow, nCol XLS SAY uVal OF ::oXLS ;
                              FORMAT nFormat ;
                              FONT nFont     ;
                              ALIGNAMENT nAlignament ;
                              BORDER nBorder   //ADICIONADO !!
     RETURN NIL
 
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: CLASE REPEXCEL

Postby FranciscoA » Fri May 06, 2011 6:39 pm

Gracias por contestar, Renomas. Intentaré modificar el method que indicas, y te aviso.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: CLASE REPEXCEL

Postby FranciscoA » Fri May 06, 2011 8:48 pm

Renomas:
Lo he hecho así (no he logrado encontrar la solución modificando TSalxls):


IF oReport:lCreated
// oReport:lSeparator := .t.
//oReport:CellView()
// oReport:lBoxOnTotal:=.t.
ENDIF

ACTIVATE REPORT oReport ;
ON STARTGROUP ( oReport:NewLine(), EVAL(bSECCION) ) ; // ;
ON CHANGE oReport:Separator() ; //necesario cuando se usa RepExcel, para CellView
ON ENDGROUP oReport:BackLine(1) //necesario cuando se usa RepExcel, para CellView

No es lo mejor, pero se asemeja un poco más al Method CellView, cuando no se utiliza Repexcel.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: CLASE REPEXCEL

Postby FranciscoA » Sat May 07, 2011 5:03 pm

Lo he mejorado así:
ACTIVATE REPORT oReport ;
ON STARTGROUP ( oReport:NewLine(),;
oReport:NewLine(),; //Por repexcel
EVAL(bSECCION),;
if(!oReport:lFirstRow,oReport:Separator,) ) ; //por repexcel
ON CHANGE oReport:Separator() ; //necesario cuando se usa RepExcel, para CellView
ON ENDGROUP oReport:BackLine(1) //necesario cuando se usa RepExcel, para CellView

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

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: CLASE REPEXCEL

Postby RenOmaS » Tue May 10, 2011 3:44 pm

Podes enviarme un ejemplo de como lo haces... e que version de fw utilizas?
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: CLASE REPEXCEL

Postby FranciscoA » Tue May 10, 2011 9:10 pm

Hola Renomas, te he enviado el ejemplo solicitado a: ducanlive@hotmail.com
Utilice la version 712.

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

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 17 guests