2010-03-19 17 views
5

Al agrupar en BIRT, que con frecuencia quieren que el valor de agrupación para aparecer en la primera línea de la siguiente manera:¿Cómo agrupamos en BIRT sin desperdiciar líneas, y solo imprimimos el ítem grupal en la primera línea?

Group User      Reputation 
------ ---------------   ---------- 
Admins Bill The Weasel    51,018 
     Mark Grovel     118,101 
Users Pax_my_bags_got_to_go   73,554 
     Jon Scoot     **,***,*** <- overflow 
     Clueless      92,928 

La forma normal de acheiving esto es establecer el grupo en el diseñador como follws:

 +---------+--------+--------------+ 
Tbl Hdr | Group | User | Reputation | 
     +---------+--------+--------------+ 
Grp Hdr | [Group] |  |    | 
     +---------+--------+--------------+ 
Grp Dtl |   | [User] | [Reputation] | 
     +---------+--------+--------------+ 
Grp Ftr |   |  |    | 
     +---------+--------+--------------+ 
Tbl Ftr |   |  |    | 
     +---------+--------+--------------+ 

que, por desgracia, establece los datos en exactamente de esa manera, con el valor agrupados en una línea diferente:

Group User      Reputation 
------ ---------------   ---------- 
Admins 
     Bill The Weasel    51,018 
     Mark Grovel     118,101 
Users 
     Pax_my_bags_got_to_go   73,554 
     Jon Scoot     **,***,*** <- overflow 
     Clueless      92,928 

Esto es particularmente doloroso con los datos en los que hay muchos grupos con un solo usuario, ya que utilizamos el doble de espacio que el necesario. Si trasladamos el elemento de datos [Group] a la línea Grp Dtl, lo imprimimos para cada línea del grupo.

¿Cómo, en BIRT, fusionamos las dos líneas Grp Hdr y la primera Grp Dtl?

Respuesta

6

La respuesta a continuación fue la respuesta original de Mystik pero, por más que intente, no pude hacer que funcione correctamente (aunque no intenté con la segunda sugerencia, así que bien podría funcionar). Eso puede ser causado por el hecho de que estoy ejecutando un nivel de respaldo de BIRT (y, no, no estoy autorizado a actualizar desafortunadamente, es parte de un producto separado que tiene sus propios ciclos de lanzamiento).

La solución final encontré era dejar el valor de datos en la línea de agrupación y seleccionar la celda (no el valor de datos), a continuación, establecer el control Drop bajo Properties, General para ser Detail en lugar de la forma predeterminada None.

Esto lleva el valor de los datos a la línea de detalle cuando se procesa el informe.

Y estoy editando esta respuesta en lugar de añadir mi propio ya que no quiero ser una puta representante :-)


intente seguir estos pasos:

  1. Crear la grupo como lo has hecho.
  2. A continuación, arrastre el elemento de datos del grupo una fila hacia abajo (consulte a continuación). En este punto, puede eliminar la fila del encabezado del grupo si lo desea.
  3. Luego haga clic en la columna que tiene el elemento de datos del grupo.
  4. Una vez seleccionado, vaya al explorador de propiedades para el control y desplácese hasta la parte inferior, seleccionando "avanzado".
  5. En la lista avanzada, verá una propiedad llamada "Suprimir duplicados". Haga esto verdadero para la columna con los datos del Grupo y estará todo listo.

      Supress 
         Duplicates 
         +---------+--------+--------------+ 
    Tbl Hdr | Group | User | Reputation | 
         +---------+--------+--------------+ 
    Grp Hdr |         | <-delete this row AFTER Group Creation 
         +---------+--------+--------------+ 
    Grp Dtl | [Group] | [User] | [Reputation] | 
         +---------+--------+--------------+ 
    Grp Ftr |   |  |    | 
         +---------+--------+--------------+ 
    Tbl Ftr |   |  |    | 
         +---------+--------+--------------+ 
    
+0

Esto suena prometedor. Lo veré el lunes cuando regrese al trabajo. – paxdiablo

+0

No, no funcionó, lo siento. Lo intenté con dos grupos anidados y todavía mostraba valores para ambas columnas en todas las filas. – paxdiablo

+0

No estoy seguro de dónde salió mal en mis instrucciones, esto debería estar funcionando como lo expuse. He agregado una muestra a BIRT Exchange que puedes descargar y ejecutar. Con suerte, verlo en acción llenará los vacíos. http://www.birt-exchange.org/devshare/designing-birt-reports/1185-show-group-info-on-detail-row/#description – MystikSpiral

1

La solución anterior funciona bien, pero no encontramos la manera obvia de ocultar los bordes interiores de encabezado de grupo. Así que esa es la solución que descubrimos:

  1. elementos de copia de fila de detalle para vaciar las células en la fila de encabezado.
  2. variable de bucle Inicializar el evento OnCreate

    i=0; // in onCreate property of group header row

  3. cambiar las condiciones en la pestaña editor de propiedades 'visibilidad'. Marque "Ocultar elemento" contra la condición

    i++ == 0

Así que el diseño final se verá así:

+---------+--------+--------------+ 
    | Tbl Hdr | Group | User  | 
    +---------+--------+--------------+ 
    | [Group] | [User] | [Reputation] | 
    +---------+--------+--------------+ 
    |   | [User] | [Reputation] | <-- that's the line that hide first element 
    +---------+--------+--------------+ 
    |   |  |    | 
    +---------+--------+--------------+ 
0

Seleccione la celda en la que se introduce o se coloca de datos del grupo y seleccione Drop> Todos en lugar de Ninguno en Property Explorer.

O seleccione Deje caer> Detalle para celdas de otro group_data y data_field cells.

Cuestiones relacionadas