Pregunta

Diseños Nevrona Informes favorables es un motor de informes para uso de Embarcadero Delfos IDE.

Esto es lo que yo llamo el error Rave Endless Loop.En Rave Reports Versión 6.5.0 (VCL10) que viene incluido con Delphi 2006, hay un error nortorio que afecta a muchos desarrolladores de informes raves.Si tiene un conjunto de datos no vacío, y las filas de datos para este conjunto de datos se ajustan exactamente a una página (es decir, hay cero filas de viudas), luego, en printPreview, Rave se atascará en un bucle infinito que genere páginas.

Este problema se ha informado previamente en este grupo de noticias bajo los siguientes encabezados:

  1. "error:generando infinitas páginas";Hugo Hiram 20/9/2006 20:44
  2. "Error del bucle rave.Por favor ayuda";Tomás Lázar 07/11/2006 19:35
  3. "¿Recorrer la página completa de datos?";Tony Chistiansen 23/12/2004 15:41
  4. respuesta a (3) de otro denunciante;Oliver Piche
  5. "Error de impresión de bucle sin fin";Richso 11/09/2004 16:44

En cada una de estas publicaciones, no hubo respuesta de Nevrona, y no se informó ninguna solución.

Posiblemente, el problema también se ha informado en un grupo de noticias aliado (nevrona.public.rave.reports.general), a saber:6."Generación continua de informes";JOBARD 20/11/2005 Aunque no está claro para mí si (6) es el error de bucle rave interminable u otro problema.Esta publicación recibió una respuesta de Nevrona, pero fue más en relación con múltiples regiones ("Hay un problema al usar múltiples regiones que pasan por un descanso de página") que el problema de las viudas cero.

¿Fue útil?

Solución

Esto es más una solución alternativa que una verdadera solución.Publiqué esta solución por primera vez en el grupo de noticias Nevrona (Group=nevrona.public.rave.developer.delphi.rave;Subject="¿Estás sufriendo del error Rave Endless Loop?:Se anunció una solución alternativa.";Fecha=13/11/2006 7:06 p.m.)

Así que aquí está mi solución.Es más una solución al trabajo que una buena solución a largo plazo, y espero que Nevrona brinde a este problema una atención seria en el futuro cercano.

  1. Dado el diseño de su informe particular, cuente el número máximo de filas por página.Digamos que esto es 40.
  2. Configure un contador para contar las filas dentro de la página (a diferencia de las filas dentro del informe completo).Puede hacerlo mediante un script de evento o mediante un componente CalcTotal.
  3. Defina un controlador de eventos con script OnBeforePrint para la banda de datos principal.
  4. En este controlador de eventos, establezca la propiedad FinishNewPage de la banda de datos principal en True cuando el recuento de filas por página esté uno o dos por debajo del máximo (en nuestro ejemplo, esto sería 38).Y configúrelo en Falso en todos los demás casos.El efecto de esto es darle a cada página un número de viudas distinto de cero (en este caso, 1...38), evitando así la condición que da lugar al problema del bucle Rave Endless.

Otros consejos

Muchas gracias por esto, Sean. Lamentablemente, esto no funcionaría para mí, pero se me ocurrió otra solución...Verá, tengo una nota en la parte superior de la región que podría expandirse o contraerse dependiendo de cuántas notas haya dejado el usuario en la base de datos.Esto significa que la cantidad de filas que pueden caber en una página varía.Sin embargo.Hay otra solución: utiliza la propiedad MaxHeightLeft de una banda de datos.Todo lo que debe hacer es medir la altura de su banda de datos, multiplicarla por 2 y ponerla en su propiedad MaxHeightLeft.Esto forzará que 1 o 2 registros pasen a la página siguiente si se llena tanto.

Muchas gracias, este hilo me ayuda a solucionar mi problema con el bucle de impresión sin fin en Nevrona Rave...., configuré MinHeightLeft en 0,500, esta configuración funciona pero no estoy seguro de que funcione para otro conjunto de resultados de mi informe de consulta.

Maestro, la solución es Minheightleft a 0,500, utilizo el área de WasteFit de propiedad en True y generé el bucle en la segunda impresión, pero cuando se cambia la propiedad Minheightleft a 0,500 el error disminuye.

Gracias !

Atta Fabiola Herrera.Fabi_ucv@hotmail.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top