2009-04-28 19 views
8

Tengo dos orígenes de datos locales que puedo insertar en el informe. No hay problema ¿Pero cómo configuro el informe? Una fuente de datos contiene una lista de empleados e información sobre ellos. El otro contiene un montón de horas de trabajo para cada empleado.SSRS: informe de detalles maestros con dos orígenes de datos

Me gustaría utilizar una tabla para la lista de empleados, y luego tener otra tabla para las horas de trabajo debajo de cada empleado (con sus horas de trabajo).

¿Esto es posible? ¿Tengo que usar un Sub-Informe? ¿Tendría que fusionarlos en un solo origen de datos? =/

Respuesta

5

Por lo que puedo decir, es imposible anidar un conjunto de datos dentro de otro sin utilizar un subinforme.

Esto significa que hay que hacer una de dos cosas:

  1. Refactor sus dos fuentes de datos en una única fuente de datos. Por ejemplo, realice una unión entre los empleados y las horas de trabajo para cada empleado. A continuación, puede utilizar las propiedades de agrupación del objeto Table para formatear la lista de la manera que desee.

  2. Si unir las dos fuentes de datos no es práctico, puede usar subinformes para lograr lo que desea. Cree un subinforme que contenga el origen de datos de horas de trabajo y asígnele un parámetro para el empleado actual. Filtra las horas de trabajo por este parámetro.

    En su informe principal, puede colocar el subinforme en la lista y pasar el ID de empleado para la fila actual como parámetro.

    Tenga en cuenta que hay algunas peculiaridades de formato relacionadas con el uso de subinformes. He podido evitarlos en la mayoría de los casos, pero el método preferido sería definitivamente el número uno anterior.

+0

Pero si me uno a esas tablas, habrá MUCHA cantidad de datos repetidos en esas filas. ¿Eso importa? ¿O lo hace SSRS con eso está bien? ¿Cómo es agregar un subinforme en una tabla? Realmente me gustaría usar una tabla para el primer origen de datos, porque es mucho más fácil hacer el formato correcto, etc. Pero, ¿cómo es poner un subinforme en una celda de tabla? ¿Une a un grupo de ellos? ¿O cómo lo haces? – Svish

1

Para configurar múltiples fuentes de datos ... necesita colocar dos objetos de lista separados en el informe. Vaya al diseñador, y en la caja de herramientas puede poner una nueva "lista" en él. Entonces, puedes hacer otro informe. Vincule esa segunda lista a su conjunto de datos secundario, que implementará a través de la fuente de datos secundaria.

Es un poco exagerado, pero la idea básica es que cada objeto de lista en el informe solo se puede vincular a un origen de datos.

+0

Bueno, eso lo sé. Pero eso solo resultará en dos listas una detrás de otra ¿no es así? Necesito que aparezca la lista secundaria después de cada elemento en la primera lista. Y para incluir solo aquellos elementos que son relevantes para ese elemento ... – Svish

+1

Para poder vincularlos así, tendrá que tenerlos en el mismo origen de datos, creo. No funcionará entrelazar dos fuentes de datos en un único objeto de lista, que es realmente lo que tendría que hacer para agruparlos entre sí. –

5

Agregando una nueva respuesta para asegurarse de que se envíe una notificación.

El uso de un subinforme es el método más fácil cuando funciona. Simplemente puede arrastrar y soltar un subinforme en una celda de la tabla, y se llenará el área de contenido de esa celda. Al hacer clic derecho en el subinforme, podrá editar los parámetros del subinforme. Al igual que la mayoría de los valores en SSRS, los parámetros se pueden establecer en expresiones que usan los campos de la tabla.

En el informe integrado, basta con filtrar los resultados para mostrar solo los registros asociados con el empleado que se transfirió como parámetro.

La otra ruta que puede tomar es combinar sus dos fuentes de datos mediante una combinación. Esto le dará algo datos de la siguiente manera:

employee1 time1.1 
employee1 time1.2 
employee1 time1.3 
employee1 time1.4 
employee2 time2.1 
employee2 time2.2 
employee2 time2.3 

continuación, puede crear un grupo de las columnas repetidas (empleado en este ejemplo), y habilitar la propiedad HideDuplicates en esas columnas.El resultado se verá así:

employee1 time1.1 
      time1.2 
      time1.3 
      time1.4 
employee2 time2.1 
      time2.2 
      time2.3 
+0

Pero, como le pregunté en un comentario a la otra pregunta, ¿cómo es el rendimiento al hacer esto? Estoy pensando que cuando te unas a esas dos mesas terminarás con una mesa muy grande con muchos datos repetidos. Pero, por otro lado, solo tendrá una tabla y un informe para tratar ... y no dos tablas y un informe secundario repetidos miles de veces ... – Svish

+0

Pruébalo, y averígualo :) De tu descripción de la problema, dudo que los datos unidos tardaran mucho más en obtenerse que buscarlos de forma independiente. Pero podría ser un problema si las columnas adicionales son inusualmente grandes. – AaronSieb

+0

Hmm ... tal vez podría intentar unirme a ellos entonces. Porque parece ser un poco complicado obtener un informe secundario muy bien dentro de una mesa. Y las columnas realmente no son tan grandes. Solo números y fechas regulares y algo de texto. – Svish

0

En la clase de documento de informe hay una propiedad llamada "base de datos", que tiene una colección de tablas. Puede usar "SetDataSource" en cada una de esas tablas, para colocar las listas de objetos separadas en el informe.

Cuestiones relacionadas