FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cambiar orden de páginas con Rave Reports
Buenos días:
Después de buscar durante varias semanas información sobre este tema, he llegado a la conclusión de que lo que quiero no puede hacerse con Rave Reports, pero antes de tirar la toalla decidí probar suerte con el foro para ver si alguien ha estado en un caso similar. Lo que quiero hacer es cambiar el orden de las páginas de un informe en tiempo de ejecución, dependiendo de un parámetro determinado. Por ejemplo: Página 1 - un informe simple. Siempre se muestra correctamente. Página 2 - un informe maestro/detalle. Sólo se mostrará si el valor de un parámetro pasado desde Delphi a Rave es 1. El problema es que la segunda página sale en blanco cuando le pongo el condicional. Estaba probando con el evento OnBeforeReport del informe completo (aunque también he probado con OnBeforePrint, OnBeforeReport y OnAfterPrint de la página 1). El código es: Código:
if compare(RaveProject.GetParam('MiParam'), '1') = 0 then Page1.GotoPage := Page2; end if; ¿Es un bug de Rave Reports? Yo he llegado a la conclusión de que sí, pero igual hay alguna forma de solucionarlo que se me está escapando. O igual estoy haciendo algo mal, yo ya ni sé. He probado también a dejar fijo el orden de las páginas y cambiar el estado de Visible de la página 2, pero eso no funciona cuando añado una tercera página (en mi informe son 4 páginas y sólo la primera es fija). Y la última opción que se me ocurre es tratar de editar el PageList en el evento OnBeforeReport del informe, pero tampoco sé cómo hacerlo. He visto algún mensaje perdido en foros de internet con algo similar a esto, pero en ninguno había respuesta. Agradeceré cualquier indicio de luz que alguien pueda arrojar sobre este túnel... Saludos y gracias, M. Última edición por M. FM. fecha: 08-08-2007 a las 13:13:06. |
#2
|
|||
|
|||
Seguimos...
Bueno, he decidido olvidarme de los eventos del report y ahora estoy intentando definir el orden de las páginas desde Delphi. El nuevo problema que tengo es un "Access violation".
He probado con dos formas distintas. La primera: Código:
if RvPageList = nil then RvPageList := TRaveComponentList.Create; RvPageList.Add(RvProject.FindComponent('MiReport.Page1') as TRavePage); if m_Segunda = '1' then RvPageList.Add(RvProject.FindComponent('MiReport.Page2') as TRavePage); RvProject.ProjMan.ActiveReport.PageList := RvPageList; RvProject.Execute; RvProject.Close; La segunda: Código:
RvProject.SelectReport('MiReport', true); RvPage1 := RvProject.FindComponent('Page1') as TRavePage; RvPage2 := RvProject.FindComponent('Page2') as TRavePage; if m_Segunda = '1' then RvPage1.GotoPage := RvPage2; RvProject.Execute; RvProject.Close; He probado tanto definiendo los GotoPage en Rave también como sin definirlos, y el resultado es el mismo. ¿Alguna idea? Gracias, M. Última edición por M. FM. fecha: 08-08-2007 a las 13:40:03. |
#3
|
|||
|
|||
Resuelto
Bueno, por fin lo he conseguido. Pongo la solución por si alguien se ha visto en el mismo caso, es el segundo código que había probado pero accediendo al Project Manager en lugar de al Report directamente:
Código:
with RvProject.ProjMan do begin RvPage1 := FindRaveComponent('MiReport.Page1', nil) as TRavePage; RvPage2 := FindRaveComponent('MiReport.Page2', nil) as TRavePage; if m_Segunda = '1' then RvPage1.GotoPage := RvPage2; end; RvProject.ExecuteReport('MiReport'); RvProject.Close; Saludos, M. |
#4
|
|||
|
|||
Hola M. FM... tengo exactamente el mismo problema que tuviste tu. Me tira el mismo error en el gotopage... pero no entiendo como fue que resolviste el problema...
las variables page1 y page2 son Travepage??? No se como solucionarlo... a no ser que tengo un problema en el rave report.. en el archivo... pero lo tengo de la siguiente manera... un archivo llamado 'informe.rav', en el cual existe un reporte llamado orden y dentro de este reporte existen 2 paginas..... esto esta bien?? alguna idea de como solucionar esto?? gracias por tu tiempo saludos |
#5
|
|||
|
|||
Hola, mjjj:
Intentaré explicarte lo poco que sé a ver si entre los dos lo sacamos. Para empezar, tienes que sustituir en el código delphi MiReport por el nombre de tu informe en Rave Reports (en tu caso sería orden):
Se convertiría en:
Además, Page1 y Page2 son los nombres que le has puesto a las páginas de tu informe también en Rave Reports. Es decir, que tanto el informe como sus páginas deben existir para que el código en delphi los encuentre. Mira a ver si con eso solucionas algo, y si no, vuelve a escribir y lo seguimos mirando. Saludos Última edición por saturno7 fecha: 07-02-2008 a las 19:02:53. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Paginas en Rave | Alexander | Impresión | 0 | 29-03-2007 18:16:17 |
Cambiar orden de mensajes con net send | carlos gonzalez | Varios | 1 | 22-02-2007 22:20:03 |
cambiar orden columnas dbgrid | dvlt | OOP | 3 | 07-06-2006 14:31:47 |
Rave Reports Proyecto con dos paginas | daly | Impresión | 2 | 07-12-2005 00:37:15 |
¿Cómo enviar un TQuery a Crystal Reports como se hacía con Rave Reports? | fitidavid | Impresión | 1 | 04-09-2004 18:56:39 |
|