reporting-services - tutorial - ssrs sum by group
Reporting Services: determine el nĂºmero de columnas que se muestran en Matrix (3)
¿Es posible determinar el número de columnas que se muestran en un informe de Reporting Services y usar esto dentro de la expresión de Visibilidad de un cuadro de texto separado?
Me enfrento a la siguiente situación:
Mi cliente tiene un informe de Reporting Services 2005, que contiene una matriz, que muestra un número variable de columnas, según los parámetros seleccionados. En ocasiones, algunos usuarios han generado informes con una gran cantidad de columnas. Esto provoca un error del servidor cuando posteriormente intentan exportar a Excel, ya que el formato de Excel 97-2003 está limitado a 256 columnas.
Por lo tanto, me gustaría mostrar un mensaje en la parte superior de los informes cuando se muestran más de 256 columnas en la matriz, informando a los usuarios de esta limitación y sugiriendo la solución alternativa de exportar a CSV (y visualización en Excel 2007 si lo tienen).
¿Sería capaz de contar el conjunto de datos para contar su columna?
Count(Fields!FieldUsedAsColumnGrouping.Value,"DatasetName")
No estoy seguro de cómo se configuran los datos y la matriz, hago algo similar donde tengo que saber el número de columnas para poder dibujar una línea fronteriza adecuada. Pero creo que deberías poder Contar con el conjunto de datos o la agrupación para obtener lo que estás buscando. (Puedo pegar algún código el lunes si es necesario).
Esto se puede hacer, acabo de crear una prueba para probar mi teoría; aquí están los básicos.
Creé una columna calculada en mi conjunto de datos con un valor simple de 1. Agregué esta columna al grupo de columnas de grano más bajo en la matriz (la más baja en la jerarquía). Luego agregué otra columna en la matriz y realicé un RunningValue en la columna con mi columna calculada del conjunto de datos. RunningValue puede tomar un parámetro de ámbito y el alcance en este caso es el nombre de la Agrupación de nivel más bajo en la jerarquía. Esto me da un valor igual al número de columnas en la matriz.
Puede haber una mejor manera de hacerlo y lo investigaré, pero esta fue la primera idea que surgió en mi cabeza.
Un trabajo alrededor de esto (gran cantidad de columnas) es "ajustar" la matriz después de tantas columnas. Puede hacer esto colocando la matriz dentro de una tabla u otra matriz con la tabla externa / matriz que controla el ajuste marcando un "puntero" o un número de agrupamiento en el origen de datos. Para que esto funcione, también necesitará incrementar este puntero que controla la agrupación cada n número de filas donde n es la cantidad máxima de columnas que desea que aparezca en el informe de la matriz.
Ejemplo del origen de datos que se transforma en la matriz: [Puntero de grupo], [Dimensión de columna de matriz], [Dimensión de fila de matriz], [Medida / Datos]
Cada vez que el [Group Pointer] divide cada uno, digamos 20 [Matrix Column Dimensions], la tabla / matriz externa envolverá la matriz interna.