Lección 3: Cambiar la ordenación inicial y la ordenación interactiva mediante parámetros

Nuevo: 17 de julio de 2006

Puede definir informes que permiten a los lectores de informes cambiar interactivamente los criterios de ordenación de una o más columnas de datos de informe en un grupo o región de datos. Puede proporcionar la capacidad de cambiar los criterios de ordenación mediante una ordenación interactiva o una ordenación con parámetros.

En una ordenación interactiva, se establecen las propiedades UserSort de un cuadro de texto del encabezado de grupo o una columna. Cuando se representa el informe, aparece un botón de control de ordenación en el encabezado de columna, y el lector del informe puede hacer clic en el botón para ordenar los datos. Inicialmente, los datos no están ordenados. El primer clic ordena los datos en orden ascendente. Los clic sucesivos alternan la ordenación entre ascendente y descendente.

Una ordenación con parámetros permite crear un parámetro para establecer la ordenación e incluir una expresión con ese parámetro en la expresión de ordenación para un conjunto de datos, una región de datos o un grupo.

En esta lección agregará los dos tipos de ordenaciones. Agregará un parámetro denominado InitialSort y establecerá una expresión de ordenación en la columna de tabla TotalDue para ordenar inicialmente los grupos de tabla por el total agregado. Creará un parámetro SortBy que permite al lector del informe elegir si desea ordenar por nombre de almacén o por cantidad de pedidos de ventas por almacén en la columna Store de la tabla. Agregará un botón de ordenación interactiva a la columna Store y establecerá la expresión de ordenación que dependerá del valor SortBy.

Para abrir el proyecto Advanced Parameters Tutorial del servidor de informes

  1. En SQL Server Business Intelligence Development Studio, abra el proyecto Advanced Parameters Tutorial del servidor de informes si aún no está abierto.

  2. En el Explorador de soluciones, haga doble clic en el informe Resellers Worldwide. El informe se abre en la vista Diseño.

En el siguiente procedimiento, cambiará el encabezado de grupo de tabla para mostrar el nombre de almacén y la cantidad de ventas por almacén. Creará un parámetro del informe que permita al usuario elegir cómo desea ordenar el grupo de tabla: por nombre de almacén o por cantidad de ventas por almacén.

Para agregar el valor de recuento de grupo al encabezado de grupo

  1. Seleccione el cuadro de texto Store en la primera fila del encabezado de grupo de tabla.

  2. Reemplace la expresión =Fields!Store.Value por la siguiente:

    =Fields!Store.Value & vbCrLf & vbTab & "(" & 
    Count(Fields!SalesOrderNumber.Value, "table1_Store") & ")"
    
  3. (Opcional) Haga clic en Vista previa y vea el nombre de almacén y la cantidad de ventas para cada almacén en una línea independiente, en la primera fila del encabezado de grupo.

En el siguiente procedimiento, creará un parámetro del informe para permitir que el usuario seleccione el modo de ordenación del grupo de tabla: por nombre de almacén o por cantidad de ventas.

Para agregar un nuevo parámetro de informe

  1. En el menú Informe, seleccione Parámetros del informe. Se abrirá el cuadro de diálogo Parámetros del informe.

  2. Haga clic en Agregar. Se creará un nuevo parámetro con valores predeterminados.

  3. En la sección Propiedades, en el cuadro de texto Nombre, escriba UserSortBy. Compruebe que el tipo de datos es String.

  4. En Pedir datos, escriba How do you want to sort the table group?.

  5. Desactive la opción Permitir valor en blanco.

  6. En la sección Valores disponibles, seleccione No consultado. Utilice la siguiente tabla para escribir valores.

    Etiqueta Valor

    Name of store

    Name

    Number of sales per store

    Number

  7. En la sección Valores predeterminados, seleccione No consultado. En el cuadro de texto, escriba Name.

  8. Haga clic en Aceptar.

En el siguiente procedimiento, agregará un control UserSort (que también se denomina ordenación interactiva) en el cuadro de texto del encabezado de grupo que muestra el nombre de almacén y la cantidad de ventas. Establecerá la expresión para que el control utilice el valor del parámetro del informe UserSortBy. Cuando obtiene una vista previa del informe, aparece un botón de ordenación en esa columna. Puede hacer clic en el botón de ordenación para alternar la ordenación entre valores ascendentes y descendentes en el campo definido por este parámetro.

Para agregar un botón de ordenación interactiva en un grupo

  1. En la fila de encabezado de tabla, haga clic con el botón secundario en el primer cuadro de texto con el nombre textbox2 y seleccione Propiedades. El contenido de este cuadro de texto es la cadena "Store". Se abrirá el cuadro de diálogo Propiedades del cuadro de texto.

  2. Haga clic en la ficha Ordenación interactiva.

    Establecer propiedades en la ficha Ordenación interactiva equivale a establecer propiedades para UserSort en un cuadro de texto.

  3. Seleccione la opción Agregar una acción de ordenación interactiva a este cuadro de texto.

  4. Haga clic en el botón Expresión (Fx). Se abrirá el cuadro de diálogo Editar expresión.

  5. Pegue la siguiente expresión en el panel de expresiones:

    =IIF(Parameters!UserSortBy.Value="Name",Fields!Store.Value,
    Count(Fields!SalesOrderNumber.Value, "table1_Store"))
    

    Si pega esta expresión directamente en el cuadro de texto, sólo obtendrá la primera línea de la expresión.

  6. Haga clic en Aceptar.

  7. En la agrupación o región de datos para ordenar la sección, seleccione Elegir agrupación o región de datos. En la lista desplegable, seleccione table1. Ésta es la región de datos de tabla.

  8. En la sección Evaluar expresión de ordenación en este ámbito, seleccione Elegir agrupación o región de datos. En la lista desplegable, seleccione table1_Store. Ésta es la agrupación de almacenes en la tabla.

    Si el parámetro UserSortBy se establece en Name, esta expresión se evalúa como Fields!Store.Value y los grupos de tabla se ordenan como se encontraban en la lección anterior, es decir, en orden alfabético por nombre de almacén. Si el parámetro UserSortBy no es Name, los grupos de tabla se ordenarán por cantidad de ventas en el grupo, en orden ascendente.

  9. Haga clic en Vista previa.

    La columna Store de la tabla ahora posee un botón de ordenación interactiva. La ordenación inicial es el valor predeterminado para la ordenación de grupo de tabla. Al hacer clic por primera vez en el botón de ordenación interactiva, la columna se ordena según el valor del parámetro UserSortBy. Los clic posteriores en el botón de ordenación interactiva alternan la ordenación entre ascendente y descendente.

  10. En la lista desplegable, cambie el valor del parámetro de UserSortBy a Number of sales per store. Haga clic en Ver informe.

    No se realiza ningún cambio en la columna de ordenación hasta que reprocese el informe, de manera que la expresión del parámetro se vuelve a evaluar para esta nueva configuración del parámetro. La columna se ordena ahora por cantidad de ventas, en lugar de ordenarse por nombre de almacén.

En el siguiente procedimiento, agregará un parámetro para que el usuario pueda seleccionar cómo ordenar las filas de detalle de la tabla.

Para agregar un nuevo parámetro de informe para la ordenación con parámetros

  1. En el menú Informe, seleccione Parámetros del informe. Se abrirá el cuadro de diálogo Parámetros del informe.

  2. Haga clic en Agregar. Se creará un nuevo parámetro con valores predeterminados.

  3. En la sección Propiedades, en el cuadro de texto Nombre, escriba InitialSort. Compruebe que el tipo de datos es String.

  4. En Pedir datos, escriba How do you want to sort the table detail rows?.

  5. Desactive la opción Permitir valor en blanco.

  6. En la sección Valores disponibles, seleccione No consultado. Utilice la siguiente tabla para escribir valores.

    Etiqueta Valor

    Total debido

    TotalDue

    Fecha de pedido de ventas

    OrderDate

  7. En la sección Valores predeterminados, seleccione No consultado. En el cuadro de texto, escriba TotalDue.

  8. Haga clic en Aceptar.

En el siguiente procedimiento, definirá una expresión de ordenación que utiliza el parámetro del informe InitialSort para que las filas de detalle de tabla se ordenen en función del valor seleccionado.

Para agregar una expresión de ordenación a la fila de detalle de tabla

  1. Seleccione la tabla. Haga clic con el botón secundario en el borde de la tabla y seleccione Propiedades. Se abrirá el cuadro de diálogo Propiedades de la tabla.

  2. Haga clic en la ficha Ordenación.

  3. En la lista desplegable del cuadro de texto Expresión, seleccione <Expresión>. Se abrirá el cuadro de diálogo Editar expresión.

  4. Reemplace el signo igual (=) por lo siguiente:

    =IIF(InStr(Parameters!InitialSort.Value,"TotalDue")>0,Fields!TotalDue.Value,Fields!OrderDate.Value)
    

    Esto prueba el parámetro para el valor de cadena "TotalDue". Si se encuentra el campo TotalDue, éste se utiliza para la ordenación; si no se encuentra, se utiliza el campo OrderDate. La dirección de ordenación, Ascendente o Descendente, no se basa en expresiones, de manera que el valor que establece en la ficha Ordenación se aplica al campo especificado en la expresión evaluada.

  5. Haga clic en Aceptar.

  6. (Opcional) Cambie el valor del parámetro para InitialSort y haga clic en Ver informe. Expanda el nodo para el almacén Efficient Cycling. Compruebe que las filas de detalle se ordenan según la configuración InitialSort.

Pasos siguientes

Ha agregado correctamente dos parámetros para comprobar si el botón de ordenación interactiva de la columna Store ordena por nombre de almacén o por cantidad de ventas y si las filas de detalle de una tabla se ordenan por fecha de pedido o por importe total debido. En la próxima lección aprenderá a controlar el estado inicial de obtención de detalles de este informe con un parámetro booleano oculto. Vea Lección 4: Agregar un parámetro booleano para controlar el estado inicial de obtención de detalles.

Vea también

Otros recursos

Trabajar con parámetros en Reporting Services
Ordenar datos en un informe

Ayuda e información

Obtener ayuda sobre SQL Server 2005