Codepoint

by Trentia Consulting

Convertir segundos en "hora:minutos:segundos"

Si alguna vez os encontráis con que tenéis un campo numérico en formato segundos y lo queréis pasar en formato "hora:minutos:segundos" en Reporting Services podéis utilizar la estructura TmeSpan en la expresión del campo de la siguiente forma:

= TimeValue(new TimeSpan(0, 0, Fields!Browse_Time.Value).Hours & ":" & new TimeSpan(0, 0, Fields!Browse_Time.Value).Minutes & ":" & new TimeSpan(0, 0, Fields!Browse_Time.Value).Seconds)

Reporting Services y SET FMTONLY

La instrucción SET FMTONLY en SQL Server se utiliza para definir si queremos recibir solamente metadatos cómo resultado de las solicitudes.

SET FMTONLY { ON | OFF }

La opción por defecto es SET FMTONLY OFF, por lo que si queremos ejecutar una consulta SQL y recibir solamente información sobre las columnas deberemos de cambiar previamente el valor a SET FMTONLY ON.

USE [Usuarios]
GO
SET FMTONLY ON
SELECT *
  FROM Usuarios
SET FMTONLY OFF
GO

SQL Reporting Services trabaja con FMTONLY activado (FMTONLY ON) al ejecutar la función Refresh Fields para leer las columnas de un procedimiento almacenado.

image_2

Sin embargo, es posible que si estamos tratando con un procedimiento almacenado complejo, SQL Server no pueda resolver los nombres de las columnas a no ser que previamente construya el conjunto de datos (lo que no ocurrirá ya que FMTONLY está en ON). Si nos encontramos en éste caso, nuestro conjunto de columnas de la respuesta del procedimiento almacenado estará vacío.

image_4

Para solucionarlo, podemos cambiar el estado de FMTONLY a OFF en nuestro procedimiento almacenado:

USE [Usuarios]
ALTER PROCEDURE [dbo].[sp_Consulta]
AS
BEGIN
    SET FMTONLY OFF;
 
    declare @sql varchar(5000)        

    SET @sql =
            'SELECT *                              
             FROM Usuario
             WHERE (1=1)'
    
    exec (@sql)
END

Cadena de conexión Sharepoint - Reporting Services

Para poder conectar un informe de Reporting Services con SharePoint no se puede realizar de la forma habitual mediante una consulta contra SQL, se ha de trabajar atacando el webservice facilitado por SharePoint.

Recordar que los webservices trabajan estructurados en formato XML, así pues de esta manera la consulta que se tendrá que usar en el informe también tendrá que ser en este formato para que se pueda comunicar de forma correcta.

Aquí dejo un ejemplo de cómo sería la consulta definida para poder acceder a un registro concreto de una lista definida en SharePoint:


   http://schemas.microsoft.com/sharepoint/soap/GetListItems
    
       
          
             [NombreDeLaLista]
          
          
           
          
          
 
 
 
   GetListItemsResponse/GetListItemsResult/listitems/data/row
 
 

Como se puede ver el único parámetro que tiene un valor definido es el que hace referencia al nombre de la lista, esto es así por que los otros parámetros también tienen que estar definidos en el formato XML, esto se hace de la siguiente forma:

  • Ir a la pestaña datos del informe.Acceder a las propiedades del conjunto de datos.
  • Ahora seleccionar la pestaña parámetros.
  • Definir los parámetros query y viewFields.
  • Poner los valores correspondientes a cada parámetro.

Aquí dejo un ejemplo de cada uno de ellos:

  • query:
    ="
       
        
         
         " & Parameters!ID.Value & "
        
       
      "
    
  • viewFields:
="
   
   
   
   
  "

Realizando esta serie de pasos ya podréis comunicar Reporting Services con SharePoint.

Borrar caché de report en Reporting Services

Trabajando en un buscador me encontré con un problema:

En cada registro del resultado de la búsqueda había un icono que me permetía abrir un report en PDF. Ahora bien, si se cambiaban los datos que debía mostrar, cuando volvía a abrirlo el PDF no me mostraba dichos cambios.

Si cerraba la ventana y la volvía a abrir sí me mostraba la información correcta, por tanto, empecé a pensar que era alguna cosa como que el report se estaba almacenando de alguna forma en caché.

Descubrí que cuando abres el report, si le pasas como parámetro &rs:ClearSession=true, borra dicha caché y se muestra el report actualizado.

Aquí os dejo un enlace muy interesante sobre los distintos parámetros que le puedes pasar a un report (llamándolo por url): http://www.compute-rs.com/es/consejos-176858.htm

Microsoft Business Intelligence Indexing Connector para SharePoint 2010

Microsoft acaba de liberar Microsoft Business Intelligence Indexing Connector.
Es un conector que permite realizar búsquedas de información sobre documentos de BI como podrían ser informes de SQL Reporting, Excel, ...
A través de este conector podríamos por ejemplo, realizar búsquedas de información a través de dimensiones.
Descargar Microsoft Business Intelligence Indexing Connector

Especificar el idioma de un report a través de un parámetro

Los parámetros que espera un informe y que dependen de la referencia cultural, por ejemplo, los parámetros de fechas, se interpretan según el idioma del explorador. Es decir, aunque el servidor de informes tenga la configuración regional que se desea, si un usuario tiene el explorador establecido en otra configuración regional distinta, los valores de los parámetros que se envíen al servidor se interpretarán de forma incorrecta.

Para evitarlo, se puede especificar mediante el parámetro rs:ParameterLanguage añadido en la url el idioma con el que se debe interpretar, independientemente de la configuración regional que tenga el explorador del usuario que lo ejecute.

Ejemplo:

 http://[Nombre _servidor]/ReportServer?/Reports/NombreReport&rs:Command=Render&Fecha=10/03/2010&rs:ParameterLanguage=es-ES 

Fuente: http://msdn.microsoft.com/es-es/library/ms155064.aspx

Matrix, agrupaciones y totales.

1.- Introducción

Una matriz se usa habitualmente como herramienta para mostrar datos agrupados e información de resumen.

Nos permite agrupar datos por varios campos o expresiones en grupos de filas y de columnas. Así mismo las matrices nos ofrecen una funcionalidad similar a la de las tablas de referencias cruzadas y las tablas dinámicas.

La información que nos muestran las celdas de la matriz, es en sí, una serie de valores agregados cuyo ámbito es la intersección de los grupos de filas y de columnas a los que pertenece la celda.

Además la matriz nos permite dar formato a las filas y columnas para poder enfatizar y resaltar los datos que creamos más importantes dentro de la misma.

2.-Agregando una matriz al informe

Para agregar una matriz al informe, lo único que debe hacer es arrastrar el elemento matriz desde la barra de herramientas hasta la superficie de diseño.

El aspecto inicial de la matriz será:

Como se puede ver tiene un grupo de filas, uno de columnas y una celda de datos.

Si seleccionamos la matriz, aparecerán los identificadores de fila y columna como se ve en la siguiente figura:

Lo siguiente que debe hacer es agregar grupos arrastrando campos de conjunto de datos hasta las áreas Grupos de filas y Grupos de columnas del panel.

La matriz inicialmente es una plantilla basada en la región de datos tabla(Tablix). La diferencia reside en que puede continuar desarrollando el diseño de la matriz agregando grupos de filas o de columnas anidados o adyacentes, o incluso filas de detalles.

3.-Agregando grupos primarios o secundarios

Para agregar grupos de datos tanto primarios como secundarios lo único que debe hacer es arrastrar un campo del conjunto de datos desde el panel de datos del informe hasta el área Grupos de filas o Grupos de columnas del panel Agrupación. Según coloque el campo en la jerarquía de grupos se definirá como primario o secundario, si lo coloca por encima de un grupo existente se definirá como primario y debajo se convertirá en secundario, se pueden modificar los niveles de primarios y secundarios en cualquier momento modificando su posición en el Grupo al que pertenecen(filas o columnas) esta acción se puede realizar desde las propiedades de la matriz en la sección de grupos, además puede personalizar cada uno de los grupos desde el cuadro de diálogo Grupo de Matrix permitiéndonos modificar su nombre y expresiones(modificar, añadir) entre otras características.

4.-¿Cómo añadir/eliminar grupos de totales?

Estas operaciones tienen un acceso y funcionalidad realmente trivial una vez se conoce como realizarlas, en este caso será tan fácil como pulsar el botón derecho del ratón sobre el campo agupado (fila o columna) y activar/desactivar la acción agregar total (∑).

Al utilizar esta funcionalidad se realiza un "total" predeterminado por reporting, en caso de querer realizar un "total" más concreto y no genérico se puede hacer modificando la expresión existente.