Agregar código personalizado a un informe (Diseñador de informes de Visual Studio)

Puede agregar funciones personalizadas a un informe o agregar referencias a funciones en ensamblajes externos. Cuando se compila el proyecto, se hace referencia automáticamente a los siguientes ensamblajes: Microsoft.VisualBasic, AllMembers.T:System.Convert y AllMembers.T:System.Math. Se puede hacer referencia a ensamblados adicionales mediante el cuadro de diálogo Propiedades del informe o el elemento CodeModules de la definición de informe. El cuadro de diálogo Propiedades del informe también se pueden usar para definir funciones personalizadas. Para definir funciones personalizadas en la definición de informe, use el elemento Code. Tenga en cuenta que las funciones no pueden ser conjuntos pasados de valores de datos (específicamente, no se admiten los agregados personalizados).

Es posible escribir código personalizado para utilizarlo en expresiones en un informe. Existen dos maneras de hacerlo: incrustar el código en el informe o incluir referencias a métodos de un ensamblado personalizado. El código incrustado se utiliza para funciones complejas o funciones que se utilizan varias veces en un mismo informe. Los ensamblados personalizados, en cambio, se usan para mantener el código en un mismo lugar y compartirlo entre varios informes.

Código incrustado

Para utilizar código en un informe es preciso agregar un bloque de código al informe. Dicho bloque de código puede contener varios métodos. Es imprescindible que los métodos en el código incrustado estén escritos en Microsoft Visual Basic y se basen en instancias.

Para agregar código a un informe

  1. En el menú Informe, haga clic en Propiedades del informe.

    Nota

    Si el menú Informe no está disponible, haga clic en el área de diseño del informe.

  2. En la ficha Código, en Código personalizado, escriba el código.

Los métodos del código incrustado están disponibles a través del miembro Code definido globalmente. Para tener acceso a dichos métodos, debe hacerse referencia al miembro Code y al nombre del método. El siguiente ejemplo llama al método ToUSD, que convierte el valor del campo StandardCost en un valor en dólares estadounidenses:

=Code.ToUSD(Fields!StandardCost.Value)

Ensamblados personalizados

Si desea utilizar ensamblados personalizados en un informe, primero debe crear el ensamblado, colocarlo a disposición en el proyecto, agregar una referencia al él en el informe y, a continuación, utilizar una expresión del informe que haga referencia a los métodos de dicho ensamblado. Cuando implemente el informe en el servidor de informes, también debe implementar el ensamblado personalizado.

Para agregar una referencia de ensamblado a un informe

  1. En el menú Informe, haga clic en Propiedades del informe.

    Nota

    Si el menú Informe no está disponible, haga clic en el área de diseño del informe.

  2. En la ficha Referencias, haga lo siguiente:

    • En Referencias, haga clic en el botón de agregar (...) y, a continuación, seleccione o busque el ensamblado en el cuadro de diálogo Agregar referencia.

    • En Clases, escriba el nombre de la clase y proporcione el nombre de instancia que se va a utilizar en el informe.

      Nota

      Especifique un nombre de clase e instancia sólo para miembros basados en instancias. No especifique miembros estáticos en la lista Clases.

Para incluir en una expresión una referencia a código personalizado, debe llamar al miembro de una clase del ensamblado. La manera de hacerlo depende de si el método es estático o basado en instancias. Los métodos estáticos de un ensamblado de código están disponibles globalmente en el informe. El acceso a estos métodos estáticos en expresiones se lleva a cabo a través del espacio de nombres, la clase y el nombre del método. En el siguiente ejemplo, se llama al método ToGBP, que convierte el valor del campo StandardCost de dólares estadounidenses a libras esterlinas:

=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)

Los métodos basados en instancias están disponibles a través del miembro Code definido globalmente. Para tener acceso a estos métodos, debe hacer referencia al miembro Code, así como a la instancia y al nombre del método. En el siguiente ejemplo, se llama al método de instancia ToEUR, que convierte el valor del campo StandardCost de dólares estadounidenses a euros:

=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)

Nota

En el Diseñador de informes, un ensamblado personalizado se carga una vez y no se descarga hasta que se cierra Visual Studio. Si se obtiene la vista previa de un informe, se realizan cambios en un ensamblado personalizado que se utiliza en el informe y, después, se vuelve a obtener la vista previa del informe, y los cambios no aparecerán en la segunda vista previa. Para volver a cargar el ensamblado, cierre Visual Studio, vuelva a abrirlo y obtenga la vista previa del informe.

Para obtener más información sobre el uso de ensamblados personalizados, vea la información correspondiente al uso de ensamblados personalizados en informes en los Libros en línea de SQL Server 2005. Los Libros en línea están disponibles en la mayoría de las ediciones de Visual Studio 2008. También puede verlos en MSDN en la dirección www.microsoft.com. La información sobre los ensamblados personalizados existente en los Libros en línea se aplica a los informes que se implementan con los controles ReportViewer.

Vea también

Referencia

Cuadro de diálogo Editar referencias (Diseñador de informes de Visual Studio)
Cuadro de diálogo Editar clases (Diseñador de informes de Visual Studio)

Conceptos

Usar expresiones en un informe (Diseñador de informes de Visual Studio)