Page 1 of 1

Pasar parametro a Rpreview

Posted: Sat Dec 20, 2008 11:02 am
by Loren
Compañeros:

He modificado el Rpreview de los REPORT y PRINT y lo he adaptado a mis necesidades, con nuevas funciones (Transformar el listado a EXCEL y/o PDF). El tema es como hago pasar un parametro cuando se ejecute el Rpreview.

En mi caso quiero deshabilitar el botón EXCEL en determinados listados. ¿Sería posible?

Un pequeño ejemplo no vendría mal: :D
Mil gracias.
LORENZO

Posted: Sun Dec 21, 2008 5:31 pm
by Loren
¿ Existe forma de hacerlo ?

Posted: Sun Dec 21, 2008 8:12 pm
by sysctrl2
Loren,

Puedes compartir el proceso que envia a excel ?

tengo tiempo buscando algo como lo que tu tienes,

saludos..

Posted: Mon Dec 22, 2008 2:07 am
by FranciscoA
sysctrl2 wrote:Loren,

Puedes compartir el proceso que envia a excel ?

tengo tiempo buscando algo como lo que tu tienes,

saludos..
SysCtrl2:
Puedes utilizar la clase RepExcel, de Arteaga o José Murugosa, creo. A mi me funciona muy bien hasta la fecha.
Saludos.

Posted: Mon Dec 22, 2008 8:16 am
by wmormar
FranciscoA,

Cesar se refiere a un proceso que envie automaticamente del rpreview a excel (sólo falta confirmar por césar, pero creo que eso es la idea)

Posted: Mon Dec 22, 2008 12:22 pm
by Loren
Haber, compañeros:

Tengo modificado la funcion RPREVIEW.prg, de manera que cuando me aparece un PREVIEW de un REPORT o PRINT, me aparecen nuevas opciones: Migrar a PDF, migrar a EXCEL.

El problema es que por la propia naturaleza de algunos listados, no es lógico migrarlo a EXCEL porque al ser básicamente textos no tiene sentido pasarlo a una hoja de cálculo. Por ello, me gustaría que al activar el PREVIEW de estos listados, le pudiese pasar algún parámetro que me permita desactivar el botón EXCEL.

¿ Existe esa posibilidad ?
Espero haberme explicado.
Gracias. LOREN.

SysCrtl2, para migrar a EXCEL utilizo la clase TFILESXLS. Es sencilla y facil de usar. Está en el foro. Un ejemplo:

Code: Select all

funct lisaforo_excel()
     local x,ntasien:=0
     cursorwait()
     DEFINE XLS FORMAT nFormatFecha PICTURE XLSFORMAT_DATE_1
      DEFINE XLS FORMAT nFormat2 PICTURE '#######0000000'
      define XLS font letra1 name 'Arial' HEIGHT 9
      define XLS font ole    name 'ARIAL' HEIGHT 15
      XLS oXLS FILE "ListadoAforo.xls" AUTOEXEC
       XLS COL 1 WIDTH 7  OF oXLS
       XLS COL 2 WIDTH 10 OF oXLS
       XLS COL 3 WIDTH 12 OF oXLS
       XLS COL 4 WIDTH 5  OF oXLS
       XLS COL 5 WIDTH 10 OF oXLS
       XLS COL 6 WIDTH 8 OF oXLS
       XLS COL 7 WIDTH 7  OF oXLS
       XLS COL 8 WIDTH 8  OF oXLS
       XLS COL 9 WIDTH 8  OF oXLS
       @ 1,1 XLS SAY NEMPRESA OF OXLS FONT OLE
       @ 2,1 xls say 'Aforo del Recinto'      of oxls font letra1
       @ 3,1 xls say 'Distribución del Aforo' of oxls font letra1
       @ 5,1 xls say 'Tendido' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,2 xls say 'Ubicación' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,3 xls say 'Zona' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,4 xls say 'Fila' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,5 xls say 'Números' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,6 xls say 'NºAsiento' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,7 xls say 'Jubilado' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,8 xls say 'Jóvenes' OF oXLS font letra1 BORDER BORDER_DOWN
       @ 5,9 xls say 'Puerta' OF oXLS font letra1 BORDER BORDER_DOWN
       select 2;  aforo->(OrdSetFocus('TZFAFORO')) ;  aforo->(DBGOTOP()) ; x:=6
       do while .not. eof()
         @ x,1 xls say aforo->tendido     of oxls font letra1 &&format nformat2
         @ x,2 xls say iif(aforo->sol='S','Sol','Sombra')   of oxls font letra1
         @ x,3 xls say iif(aforo->zona=1,Z1,iif(aforo->zona=2,Z2,iif(aforo->zona=3,Z3,Z4))) of oxls font letra1
         @ x,4 xls say iif(fila=0,'',aforo->fila) of oxls font letra1 &&format nformat2
         @ x,5 xls say ('Del '+alltrim(str(aforo->numerod))+' al '+alltrim(str(aforo->numeroh))) of oxls font letra1
         @ x,6 xls say nasien() of oxls font letra1 &&format nformat2
         @ x,7 xls say iif(aforo->jubilado=.t.,' SI','') of oxls font letra1
         @ x,8 xls say iif(aforo->jovenes=.t.,' SI','')  of oxls font letra1
         @ x,9 xls say aforo->acceso                     of oxls font letra1
         ntasien+=nasien()
         x++
         skip
       enddo
       @ x+1,5 xls say 'TOTAL:' of oxls font LETRA1
       @ x+1,6 xls say ntasiento of oxls font LETRA1 &&format nformat2
       SET XLS TO PRINTER HEADER "&ZFecha: &F&C"+nempresa+"&DPágina Nº &P" FOOTER nempresa TOP MARGIN 0.6 BOTTOM MARGIN 0.8 LEFT MARGIN 0 OF oXLS
      ENDXLS oXLS
      cursorarrow()
      aforo->(DBGOTOP()) ; lisar:refresh() ; lisar:gotop()
return

Re: Pasar parametro a Rpreview

Posted: Mon Dec 22, 2008 3:09 pm
by FranciscoA
Loren wrote:Compañeros:

He modificado el Rpreview de los REPORT y PRINT y lo he adaptado a mis necesidades, con nuevas funciones (Transformar el listado a EXCEL y/o PDF). El tema es como hago pasar un parametro cuando se ejecute el Rpreview.

En mi caso quiero deshabilitar el botón EXCEL en determinados listados. ¿Sería posible?

Un pequeño ejemplo no vendría mal: :D
Mil gracias.
LORENZO
Lorenzo:
Estoy interesado en la solución que especificas. Para ello, necesito lo siguiente:
¿Has modificado la classe TPrinter?
¿Has modificado la classe TReport?
¿Puedes compartir el codigo RPreview modificado?

Mi correo: f.alegria.p@Gmail.com

Saludos.

Posted: Mon Dec 22, 2008 3:48 pm
by Francisco Horta
Lorenzo,

Se me ocurre que crees una DATA nueva en la rpreview y desde tu objeto indiques si se activa el excel, y lo controlas con la clausula WHEN
salu2
paco

Posted: Wed Dec 24, 2008 3:44 am
by sysctrl2
Lore,

Como dice el amigo willIAM

La idea es tenerun boton en el preview q diga exportar a excel,

que lo que esta en el preview se pasa a excel tal cual esta

en pantalla,,

saludos...

Posted: Wed Dec 24, 2008 3:47 pm
by FranciscoA
Loren:
Como te expuse anteriormente, uso la libreria RepExcel, la incluyo en lib de terceros del Verce, y todo bien. Obtengo exactamente un listado de lo que se presenta en la pantalla del preview.

Para desactivar el boton de Excel en el Rpreview haz lo siguiente:
(para no modificar ninguna classe.

En Preview.prg :
static lEnvExcel //FranciscoA Dic 24/2008 Presentar o no botton Excel
//----------------------------------------------------------------------------//

function RPreview( oDevice )
....
....
....

//Variable para condicionar las lineas afectadas por el botton excel
//Haz lo que tengas que hacer.
lEnvExcel := EnviaExcel()

---------------------------------------------------------------

//Crear en tu programa principal :
Static lEnvAExcel := .t.

//Crear esta funcion:
Function EnviaExcel()
Return lEnvAExcel


Luego, en cada reporte que no requieras el boton excel:

lEnvAExcel:=.f. //FranciscoA Dic 24/2008 (No presentar boton Excel en
RPreview)


REPORT oReport ;
TITLE;
...
...
PREVIEW

ACTIVATE REPORT oReport

lEnvAExcel:=.t. //FranciscoA Dic 24/2008 (Restablecer a .t.)
RETURN NIL

Espero solucione tu requerimiento.

Saludos, y feliz navidad.

Francisco J. Alegria P.
Chinandega, Nic.

Re: Pasar parametro a Rpreview

Posted: Wed Dec 24, 2008 5:00 pm
by tosko
Hola Foro, hace tiempo yo tambien modifique y agrege al treport el metodo de pasar a excel solo llamando a este de esta manera METHOD oReport:ToExcel(lExcel)
lo tengo funcionando en una aplicacion tiene algunos detalles que no he corregido o mejor dicho mejorado por falta de tiempo..

si gustean tambien puedo compartir esta classe...

Saludos TOSKO
Feliz Navidad y Prospero Año Nuevo para ustedes y sus familia
Salud, Paz y porqueno dineros ....

Loren wrote:Compañeros:

He modificado el Rpreview de los REPORT y PRINT y lo he adaptado a mis necesidades, con nuevas funciones (Transformar el listado a EXCEL y/o PDF). El tema es como hago pasar un parametro cuando se ejecute el Rpreview.

En mi caso quiero deshabilitar el botón EXCEL en determinados listados. ¿Sería posible?

Un pequeño ejemplo no vendría mal: :D
Mil gracias.
LORENZO

Re: Pasar parametro a Rpreview

Posted: Wed Dec 24, 2008 5:42 pm
by FranciscoA
Hola TOSKO.
¿Podrías compartir tu classe modificada, aquí?
O puedes enviarmela a mi email f.alegria.p@Gmail.com

Feliz navidad para ti, y toda tu familia.

FranciscoA