Expresiones comunes para los informes (Diseñador de informes de Visual Studio)

Algunas expresiones son de uso común en los informes. Entre ellas se encuentran las expresiones para cambiar la apariencia de los datos en un informe, calcular totales y cambiar las propiedades de los elementos del informe. En este tema, se describen algunas de las expresiones que se pueden utilizar para tareas comunes dentro de un informe.

Muchas expresiones de un informe contienen funciones. Se pueden escribir expresiones que usen funciones a partir de los espacios de nombres Microsoft.VisualBasic, System.Convert y System.Math o se pueden agregar referencias a otros ensamblados o a código personalizado. También se pueden utilizar clases de Microsoft .NET Framework SDK. Para obtener más información, vea la documentación de la Biblioteca de clases del SDK de .NET Framework.

Funciones

La mayoría de las funciones de un informe son de Microsoft Visual Basic o están integradas en un informe. Con estas funciones, se puede dar formato a los datos, aplicar lógica y obtener acceso a los metadatos del informe.

Funciones de Visual Basic

Las funciones de Visual Basic se pueden utilizar para manipular los datos que se muestran en cuadros de texto o que se utilizan para parámetros, propiedades u otras áreas del informe. En esta sección, se ofrecen ejemplos de algunas de estas funciones. Para obtener más información acerca de las funciones de Visual Basic, consulte la documentación de Visual Basic.

Funciones de fecha

Se pueden utilizar funciones de Visual Basic para proporcionar información de fecha en el informe.

  • La siguiente expresión contiene la función Today, que proporciona la fecha actual. Esta expresión se puede utilizar en un cuadro de texto para mostrar la fecha en el informe o se puede utilizar en un parámetro para filtrar los datos por la fecha actual:

    =Today() 
    
  • La función DateAdd es útil para suministrar un intervalo de fechas basado en un solo parámetro. La siguiente expresión proporciona una fecha que es seis meses posterior a la fecha de un parámetro denominado StartDate:

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
    
  • La siguiente expresión contiene la función Year, que muestra el año correspondiente a una fecha determinada. Se puede utilizar para agrupar las fechas o para mostrar el año como etiqueta para un conjunto de fechas. Esta expresión proporciona el año para un grupo dado de fechas de pedido:

    =Year(Fields!OrderDate.Value)
    
  • También se puede utilizar la función Month y otras funciones para manipular las fechas. Para obtener más información, vea la documentación de Visual Basic.

Funciones de cadena

Se pueden utilizar funciones de Visual Basic para manipular las cadenas en el informe.

  • Se puede dar formato a las fechas y los números de una cadena con la función Format. La siguiente expresión muestra los valores de los parámetros StartDatey EndDate en formato de fecha larga.

    =Format(Parameters!StartDate.Value, "D") & " through " &  
    Format(Parameters!EndDate.Value, "D") 
    

    Si el cuadro de texto sólo contiene una fecha o un número, para dar formato se debería utilizar la propiedad Format del cuadro de texto en lugar de usar la función Format dentro del cuadro de texto.

  • Las funciones Right, Len y InStr son útiles para devolver una subcadena; por ejemplo, para reducir DOMAIN\nombreDeUsuario al nombre de usuario solamente. La siguiente expresión devuelve una parte de una cadena situada a la derecha de una barra inversa (\) de un parámetro denominado User:

    =Right(Parameters!User.Value, Len(Parameters!User.Value) - 
    InStr(Parameters!User.Value, "\"))
    

    Con la siguiente expresión, se obtiene el mismo valor que con la anterior, pero se utilizan miembros de la clase String de .NET Framework en lugar de funciones de Visual Basic:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, 
    Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
    

Funciones de decisión

Se pueden utilizar funciones de Visual Basic para evaluar un valor de entrada y devolver otro valor según el resultado.

  • La función Iif devuelve uno de dos valores dependiendo de si la expresión evaluada sea verdadera o no. En la siguiente expresión, se utiliza la función Iif para devolver un valor booleano True si el valor de LineTotal es mayor que 100. En caso contrario, devuelve False:

    =Iif(Fields!LineTotal.Value > 100, True, False)
    

    En la siguiente expresión, se utilizan varias funciones Iif (también conocidas como "funciones Iif anidadas") para devolver uno de tres valores dependiendo del valor de PctComplete.

    =Iif(Fields!PctComplete.Value >= .8, "Green", 
    Iif(Fields!PctComplete.Value >= .5, "Amber", "Red"))
    
  • La siguiente expresión también devuelve uno de tres valores según el valor de PctComplete, pero en ella se utiliza la función Switch, que devuelve el valor asociado a la primera expresión de una serie que se evalúe como True:

    =Switch(Fields!PctComplete.Value >= .8, "Green", 
    Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value < 
    .5, "Red")
    

Funciones de informe

Reporting Services proporciona funciones de informe adicionales que permiten manipular los datos de un informe. En esta sección, se ofrecen ejemplos de dos de estas funciones. Para obtener más información acerca de funciones de informe y ejemplos, vea Funciones integradas para informes (Diseñador de informes de Visual Studio).

  • La función Sum puede calcular el total de los valores de una agrupación o de una región de datos. Esta función puede ser útil en el encabezado o pie de un grupo de tablas. La siguiente expresión muestra la suma de datos de la agrupación o región de datos Order (Pedido):

    =Sum(Fields!LineTotal.Value, "Order")
    
  • Una expresión que contiene la función RowNumber, cuando se utiliza en un cuadro de texto de una región de datos, muestra el número de fila de cada instancia del cuadro de texto en el que aparezca la expresión. Esta función puede ser de utilidad para numerar las filas de una tabla. También puede ser útil para tareas más complejas, como proporcionar saltos de página según el número de filas. Para obtener más información, vea "Saltos de página" más adelante en este tema.

    La siguiente expresión muestra el número de fila desde la primera fila de la región de datos más externa hasta la última. La palabra clave Nothing indica que la función empezará a contar desde la primera fila de la región de datos más externa. Para empezar a contar dentro de regiones de datos secundarias, utilice el nombre de la región de datos.

    =RowNumber(Nothing)
    

Apariencia de los datos del informe

Se pueden utilizar expresiones para manipular la apariencia de los datos en el informe. Por ejemplo, se pueden mostrar los valores de dos campos en un solo cuadro de texto, se puede mostrar información acerca del informe o se puede influir en el modo en que se insertan los saltos de página en el informe.

Encabezados y pies de página

Cuando se diseña un informe, existe la posibilidad de mostrar el nombre del informe y el número de página en el pie del informe. Para ello, se utilizan las siguientes expresiones:

  • La siguiente expresión proporciona el nombre del informe y la hora a la que se ejecutó. Puede colocarse en un cuadro de texto en el pie de página o en el cuerpo del informe. La hora se presenta con la cadena de formato de .NET Framework para fechas cortas:

    =Globals.ReportName & ", dated " & 
    Format(Globals.ExecutionTime, "d")
    
  • La siguiente expresión, ubicada en un cuadro de texto en el pie de página de un informe, devuelve el número de página y el total de páginas del informe:

    =Globals.PageNumber & " of " & Globals.TotalPages
    

En el encabezado o pie de página del informe también se puede hacer referencia a elementos del cuerpo del informe. En los ejemplos siguientes, se indica cómo mostrar el primer y el último valor de una página en el encabezado de página, de manera similar a lo que aparece en una lista de directorios. En el ejemplo se asume que existe una región de datos que contiene un cuadro de texto denominado LastName.

  • La siguiente expresión, ubicada en un cuadro de texto a la izquierda del encabezado de página, proporciona el primer valor del cuadro de texto LastName en la página:

    =First(ReportItems!LastName.Value)
    
  • La siguiente expresión, ubicada en un cuadro de texto a la derecha del encabezado de página, proporciona el último valor del cuadro de texto LastName en la página:

    =Last(ReportItems!LastName.Value)
    

Se pueden aplicar agregados a una referencia a un elemento de informe en un encabezado o pie de página. Sin embargo, no se puede aplicar un agregado a una referencia a un elemento de informe en el cuerpo del informe. En el ejemplo siguiente, se indica cómo incluir un total de páginas. En el ejemplo se asume que existe una región de datos que contiene un cuadro de texto denominado Cost.

  • La siguiente expresión, situada en el encabezado o pie de página, proporciona la suma de los valores del cuadro de texto Cost en la página:

    =Sum(ReportItems!Cost.Value)
    
    Nota

    Sólo se puede hacer referencia a un elemento de informe por expresión en un encabezado o pie de página.

Saltos de página

Es posible que en algunos informes se desee insertar un salto de página al final de un número de filas determinado, en lugar de (o además de) en los grupos o elementos de informe. Para ello, se crea un grupo en una región de datos (normalmente un grupo inmediatamente externo a los detalles), se agrega un salto de página al grupo y, después, se agrega una expresión de grupo para agrupar por un número de filas específico.

  • Si se coloca la expresión siguiente en la expresión de grupo, se asigna un número a cada conjunto de 25 filas. Cuando se define un salto de página para el grupo, el resultado es un salto de página cada 25 filas.

    =Int((RowNumber(Nothing)-1)/25)
    

Propiedades

Las expresiones no sólo se utilizan para mostrar datos en cuadros de texto. También se pueden utilizar para cambiar el modo en que se aplican las propiedades a los elementos de informe. Se puede cambiar la información de estilo de un elemento de informe o modificar su visibilidad.

Formato

Se pueden utilizar expresiones para modificar la apariencia de los elementos de un informe.

  • La siguiente expresión, cuando se utiliza en la propiedad Color de un cuadro de texto, cambia el color del texto en función del valor del campo Profit:

    =Iif(Fields!Profit.Value < 0, "Red", "Black")
    
  • La siguiente expresión, cuando se utiliza en la propiedad BackgroundColor de un elemento de informe en una región de datos, alterna el color de fondo de cada fila entre verde claro y blanco:

    =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
    

Visibilidad

Es posible mostrar y ocultar los elementos de un informe mediante las propiedades de visibilidad del elemento de informe. En una región de datos, como una tabla, se pueden ocultar inicialmente las filas de detalles basándose en el valor de una expresión.

  • La siguiente expresión, cuando se utiliza para la visibilidad inicial de las filas de detalles de un grupo, muestra las filas de detalles de todas las ventas que superen el 90 por ciento en el campo PctQuota:

    =Iif(Fields!PctQuota.Value>.9, False, True)
    

Parámetros del informe

Se pueden utilizar expresiones en un parámetro para modificar su valor predeterminado. Por ejemplo, se podría utilizar un parámetro que filtre datos para un usuario determinado basándose en el Id. de usuario con el que se ejecute el informe.

  • La siguiente expresión, cuando se usa como valor predeterminado para un parámetro, obtiene el Id. de usuario de la persona que ejecuta el informe:

    =User!UserID
    

Código personalizado

En un informe, se puede utilizar código personalizado. El código personalizado se puede incrustar en el informe o se puede almacenar en un ensamblado personalizado que se utilice en el informe. Para obtener más información acerca de código personalizado, vea Agregar código personalizado a un informe (Diseñador de informes de Visual Studio).

  • En el siguiente ejemplo, se llama al método de código incrustado ToUSD, que convierte el valor del campo StandardCost en un valor de moneda:

    =Code.ToUSD(Fields!StandardCost.Value)
    

Vea también

Conceptos

Usar expresiones en un informe (Diseñador de informes de Visual Studio)
Definir parámetros de informe en un informe (Diseñador de informes de Visual Studio)
Agregar encabezados de página y pies de página a un informe (Diseñador de informes de Visual Studio)
Agregar estilo y formato a un informe (Diseñador de informes de Visual Studio)
Agregar interactividad, visibilidad y navegación a un informe (Visual Studio Report Designer)