2009-01-26 24 views
16

Estoy trabajando en un informe de SQL Reporting Services (en VS.Net 2005) que muestra un recuento de datos diferentes en una matriz. Las columnas cuentan la cantidad de clientes en un determinado conjunto. Así que tengo varias columnas como estas: "1 empleador", "2-9 empleadores", "10-19 empleadores", etc.¿Cómo especificar un orden para las columnas en una matriz?

El problema que tengo es que SQL Reporting Services ordena alfabéticamente las columnas en la matriz. Así que termino teniendo la columna "10-19" después de la columna "1 empleador" pero antes del "2-9".

¿Hay alguna manera de arreglar esto? ¿O tal vez un truco para cambiar las etiquetas de las columnas a las que clasifican, verdad?

Gracias.

+0

Gracias por hacer esta pregunta unos pocos meses antes de que yo tenía que pedir a la misma pregunta! – Pulsehead

Respuesta

18

Hacemos muchos informes de SSRS y esto siempre fue un problema con mdx. Esta es una manera lo hacemos:

Conjunto Clasificación en el Agrupar y ordenar Propiedades para ordenar por esta expresión:

=iif(Fields!DataSetField.Value = "ColumnName", "zzz", Fields!DataSetField.Value) 

Donde "ZZZ" podría ser un número o lo que sea que lo necesite para ayudar a ordenar y luego seleccionar Dirección como ascendente o descendente en esta expresión.

1

Tuve un problema similar pero no encontré una solución usando una matriz a tiempo, así que utilicé una tabla y puse la lógica necesaria de la matriz en mis sentencias de SQL. No es lo mejor que se puede hacer pero funciona: es lo suficientemente rápido y no tarda tanto en escribir.

4

Esto puede ser un poco intrincado, pero tuvimos un problema similar y no hay forma de cambiar el SQL. Lo que hicimos fue crear un campo calculado en el conjunto de datos que devuelve un número para cada columna y ordena el grupo en ese número.

0

Entré en MATRIX -> PROPIEDADES -> GRUPOS. Luego, "moví" el GRUPO, quería que ordenara UP en la lista. Fui a VISTA PREVIA, y funcionó perfectamente. Incluso mantuvo el orden de mi columna igual.

+2

¿Por qué crees que esto resolverá el problema del póster? Su problema era que la ordenación funciona alfabéticamente. –

0

Ir a Editar grupo - Clasificación - Cambia la dirección a la que descenderás para la expresión.

+3

¿Por qué crees que esto resolverá el problema del póster? Su problema era que la ordenación funciona alfabéticamente. –

17

Esto también se puede hacer agregando una nueva columna a la consulta para el orden de clasificación. A continuación, haga clic con el botón derecho en el grupo de columnas de la matriz y seleccione las propiedades del grupo. En el lado izquierdo, selecciona la clasificación. Desde aquí puede especificar otra columna para clasificar por lugar de encabezado de columna. No se necesita una fórmula personalizada.

+2

Esta es la mejor solución. Ojalá pudiera aceptarlo, así que iría al principio de la lista aquí. –

+0

Esta es la mejor solución útil. –

0

Para un orden numérico distinto de un Tablix use la siguiente línea de código en la expresión.

= RunningValue (CountDistinct ("YourTableName"), el Conde, "YourTableName")

Cuestiones relacionadas