2009-05-21 10 views
11

Creé un informe como parte de una aplicación C# utilizando Reporting Services y no puedo encontrar algunas funcionalidades que estoy acostumbrado a ver en otros entornos. Creo que los informes de MS Access y Crystal tienen una opción llamada "Mantener unida" para que pueda mantener una agrupación de datos específica en una página en lugar de dividir la información en dos páginas.Mantener Group on One Page mediante Reporting Services

¿Cómo hago eso usando 2005 Reporting Services cuando mi informe se representa localmente en una aplicación C# y se visualiza con el visor de informes .net. Esencialmente, quiero mantener todos los registros de un año en una página. Estoy usando Visual Studio 2008.

El año es una de las columnas y el número de filas para un año es siempre más pequeño que una página. Mi informe usa solo una tabla y tiene una agrupación más interna por año y luego otra agrupación externa por nombre de cliente.

Actualmente me caben dos años de datos en el informe, sin embargo, si los datos se inicia a mitad de camino a través del primer año, y luego me sale el siguiente:

Ejemplo:

Página uno: 1/2 de 2004 debido a que los datos se inició a mitad de camino a través de 04

todo el 2005

primera mitad de 2006

Página 2: Segundo semestre de 2006

Lo que preferiría hacer es presionar todo el año 2006 en la página dos.

Actualmente estoy usando una tabla para todos los datos en el informe. Hay una opción de mantener juntos a nivel de Tabla, pero necesito uno a nivel de Grupo. En este caso, la Agrupación por año.

Cualquier ayuda que se pueda proporcionar será muy apreciada.

Respuesta

0

El problema era que necesitaba dos años en una página y nunca 1/2 año, incluso si el conjunto específico de registros comenzó a la mitad del año. Resulta que aunque hay una opción "Mantener juntos" a nivel de la tabla, no hay una a nivel de grupo. Necesitaba esta opción a nivel grupal. En lugar de usar una solución de formato, alteré el SQL subyacente para el informe. En los casos en que solo había medio año de datos, creé registros para la otra parte del año con fechas correctas, pero ceros para todos los demás valores. Esto significa que si la página tiene el formato adecuado para dos años, siempre mostrará dos años completos y un año nunca se dividirá en dos páginas.También pensé que las respuestas proporcionadas por Mozy y John Sansom eran buenas y las voté a las dos.

¡Gracias por la ayuda!

2

Ok, lo que debe hacer es definir primero el tamaño de la página de informes para que sea lo suficientemente grande como para abarcar toda su región de datos.

Ver:

http://msdn.microsoft.com/en-us/library/bb677374.aspx

A continuación, deberá añadir Salto de página Señala el Grupo en su matriz. Ver más abajo:

http://msdn.microsoft.com/en-us/library/ms156434.aspx

+0

Gracias por la ayuda. Actualicé mi pregunta para brindar mejor información. La página del informe ya es lo suficientemente grande como para caber dos años, pero a veces obtengo un año completo y dos años parciales. Además, estoy usando una tabla de informes en lugar de una matriz. Tal vez necesito cambiar a una matriz. Gracias de nuevo. –

3

sólo para añadir un poco a la respuesta de Juan. Para SSRS 2005, los objetos List y Table tienen una propiedad KeepTogether, lo que significa que intentarán mantener todo en una página. Creo que el mejor enfoque es seguir primero el consejo de John.

+0

Gracias por la respuesta. Encontré una opción Mantener juntos en el nivel de la tabla, pero no a nivel de grupo. Solo por aclaración, no estoy usando una matriz, estoy usando una tabla. ¿Hay una opción de mantener juntos en el nivel de agrupación en una tabla? - Gracias de nuevo. –

+0

AFAK, no hay una propiedad KeepTogether en un grupo. Tendrá que utilizar saltos de página y encontrar formas de mantener sus datos dentro de los límites del tamaño de página de su informe (como mencionó John). Para mí, en mi entorno, los problemas de formato, etc. son fuente de mucha frustración. :) – Mozy

+0

Otra idea para agregar a su ejemplo. Si fuera yo, probablemente agruparía el año y establecería el salto de página después del grupo de año. – Mozy

8
  1. Inserte una "Lista" en el informe.
  2. Debajo de "Propiedades de Tablix", establezca la propiedad "Nombre del conjunto de datos" en el nombre del conjunto de datos.
  3. Desde la vista de diseño, haga clic derecho en la lista y luego seleccione "Grupo de filas> Propiedades de grupo".
  4. En la ventana "Propiedades de grupo", haga clic en el botón "Agregar" en "Expresiones de grupo" y luego elija el campo que desea agrupar dentro de una página.
  5. Después de eso, puede insertar una "Tabla" para sus datos detallados dentro del grupo de filas.
  6. Una vez que represente el informe, el informe mantendrá los datos dentro del grupo juntos entre los saltos de página.
+0

Además de ser una solución al problema anterior, la técnica de anidar una tabla en una lista resolvió muchos problemas relacionados con la agrupación, como volver a imprimir las filas del encabezado, mantener grandes secciones del pie de página del grupo, etc. Muchas gracias , me salvaste de muchos dolores de cabeza! – pseudocoder

1

Usa el elemento Rectángulo y copia y pega todos los controles en él. En las propiedades del rectángulo, marque la casilla para mantener los contenidos juntos. No incluya un borde si no desea líneas adicionales.

Tenía una cantidad de elementos fuera del elemento de matriz que necesito para un pie de página. Solo los quería en la última página, así que no pude usar la sección de pie de página estándar. Al ponerlos en un rectángulo, evito los saltos de página en el medio del grupo.

4

Haga clic en un grupo que desee mantener juntos en la misma página en la sección Grupo de filas. Después de hacer clic en el grupo deseado, haga "opción Mantener como verdadero" en la sección de propiedades. Eso es. Funcionó para mí

+0

En caso de que tenga problemas para encontrarlo ... la opción "KeepTogether" se encuentra dentro de la ventana Propiedades cuando se selecciona el grupo, no dentro del cuadro de diálogo "Propiedades del grupo" para el grupo. – track0

+0

Lo gracioso es que esta opción no cambia nada en absoluto. – Lyra

Cuestiones relacionadas