Cómo usar ensamblados personalizados o código incrustado en Reporting Services

Seleccione idioma Seleccione idioma
Id. de artículo: 920769 - Ver los productos a los que se aplica este artículo
Columna de voz de soporte técnico SQL Server

Cómo usar ensamblados personalizados o código incrustado en Reporting Services

para personalizar esta columna a sus necesidades, deseamos invitar a enviar sus ideas sobre temas que le interesen y resuelve los problemas que se desea ver artículos de Knowledge Base en el futuro y columnas de voz de soporte. Puede enviar sus ideas y comentarios mediante el formulario Ask For It. También es un vínculo al formulario en la parte inferior de esta columna.
Expandir todo | Contraer todo

En esta página

Bienvenido de nuevo! Estoy Sandy Yakob con el equipo de contenido de Microsoft SQL Server. Soy su hostess para las columnas de voz de soporte técnico de SQL Server. Una nota rápida acerca de mí: he sido con Microsoft durante 14 años. Durante los últimos tres años, han estado trabajando con el equipo de contenido de SQL Server.

Columna de este mes, John Sirmon le proporcionará los pasos para utilizar un ensamblado personalizado o un código incrustado en SQL Server 2000 Reporting Services y SQL Server 2005 Reporting Services. En este artículo se ha diseñado para ofrecerle la pasos básicos para que se y la ejecución con un ensamblado personalizado en Reporting Services. Juan es ingeniero de escala de soporte con el equipo de compatibilidad del programador de SQL en Microsoft y ha trabajado para Microsoft desde marzo de 2001. Ha trabajado con SQL Server para más de 10 años y tiene el desarrollo de una amplia experiencia con Microsoft Visual Studio. John contiene un grado B. S. en Administración de negocios desde el Citadel. Contiene también una certificación Microsoft Certified Solution Developer (MCSD) y una certificación Microsoft Certified Database Administrator (MCDBA). Esperamos que disfrute de la columna y útil.

Crear un ensamblado personalizado

Para crear un ensamblado personalizado, siga estos pasos:
  1. Crear una biblioteca de clase Visual Studio. En el menú archivo , seleccione nuevo , elija proyecto y, a continuación, haga clic en Biblioteca de clases .
  2. Especifique el nombre y la ubicación. Por ejemplo, utilizan SimpleClassLibrary y C:\Documents and Settings\user1\My documentos\Visual Studio 2005\proyectos.
  3. Abra el archivo de clase (en mi caso, Class1.vb) y, a continuación, cree las funciones que desea utilizar en Reporting Services. En mi caso, se crear una función compartida simple.

    Nota Porque esto es una función compartida (estática en C#), no tiene acceso con un objeto con instancias. Téngalo en cuenta que esto tiene un efecto en cómo hacemos referencia nuestro ensamblado más adelante en el artículo.
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. Cuando haya terminado de agregar todo el código, haga clic en Generar SimpleClassLibrary en el menú Generar . Este paso crea el ensamblado o archivo .DLL administrado en la carpeta bin respectivos. En mi ejemplo, este paso crea mi ensamblado SimpleClassLibrary.dll, en la carpeta de Mis documentos\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug.

Copie el ensamblado personalizado en las carpetas de SQL Reporting Services

Poner el ensamblado a disposición de diseñador de informes y servidor de informes de Reporting Services. Para ello, debe copiar la DLL a la carpeta Diseñador de informes y a la carpeta servidor de informes.

Nota La ruta de acceso puede ser un poco diferente, dependiendo de su ruta de instalación.
  • Para Reporting Services 2005, copiar el archivo .dll en las carpetas siguientes:
    • Programa de programa\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
    • Programa de programa\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • Para Reporting Services 2000, copie el archivo .dll en las carpetas siguientes:
    • Programa de programa\Microsoft SQL Server\80\tools\diseñador
    • Programa de programa\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin
Nota Porque hay que hacer esto cada vez que cambie el código, puede ser un poco tedioso. Muchos desarrolladores crean archivos por lotes para controlar esta tarea. Es aquí un archivo de proceso por lotes de ejemplo puede use.
@ECHO OFF
REM   Name: SRSDeploy.bat
REM
REM   This batch files copies my custom assembly to my Reporting Services folders.
REM   Run this from the directory where the customer assembly was compiled.
REM   Be sure to close any applications that have your custom assembly open. 
REM
REM   This is the SQL Server 2005 version:
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"  
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin" 
REM This is the SQL Server 2000 version:
REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer"
REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin"
lo general, controlar esta tarea creando un evento posterior a la generación personalizado en mi proyecto. Para ello, vaya a las propiedades del proyecto. A continuación, haga clic en la ficha compilar y, a continuación, haga clic en Eventos de generación . Esto abre el cuadro de diálogo Eventos de generación . Elija Post-build línea de comandos del evento y, a continuación, escriba lo siguiente:
copia "$ (TargetPath)" "c:\Archivos de programa\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\"
Copiar "$ (TargetPath)" "c:\Archivos Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
Una macro de generación posterior se usa para especificar la ubicación de mi ensamblado. Para obtener más información sobre la creación posterior a la generación de eventos, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Agregar una referencia al ensamblado personalizado en Reporting Services

Para agregar una referencia al ensamblado personalizado, abra el informe de Reporting Services en Report Designer. Para ello, siga estos pasos:
  1. Abra el informe que hará referencia el ensamblado personalizado.
  2. En el menú informe , haga clic en Propiedades del informe .
  3. En el cuadro de diálogo Propiedades del informe , haga clic en la ficha referencias .
  4. Bajo referencias , haga clic en el botón de puntos suspensivos (... ) que aparece junto a la cabecera de columna de nombre del ensamblado .

    Nota La sección clases es sólo para miembros de instancia. No es para los miembros estáticos. Estático (también denominada a como "compartidas" en algunas de nuestra documentación de Reporting Services) significa que el miembro está disponible para cada instancia de la clase y cada instancia utiliza la misma ubicación de almacenamiento. Miembros estáticos se declaran mediante la palabra de clave compartida en Visual Basic y la palabra clave static en C#. Esto puede resultar un poco confuso. Esto significa es, si el ensamblado personalizado contiene a miembros de instancia que necesitan tener acceso, tendrá que especificar el nombre de clase y el nombre de instancia en la sección de clases . Debido a que el método que realizarán llamadas de Reporting Services se ha definido como static en utilizando la palabra clave compartida en Visual Basic, usaré la sección referencias en lugar de la sección de clases .
  5. En el cuadro de diálogo Agregar referencias , haga clic en Examinar . (En SQL Server 2005, haga clic en la ficha Buscar ).
  6. Busque y, a continuación, haga clic en el ensamblado personalizado. Haga clic en Abrir . (En SQL Server 2005, haga clic en Agregar en lugar de Abrir ).
  7. En el cuadro de diálogo Agregar referencias , haga clic en Aceptar .
  8. En el cuadro de diálogo Propiedades del informe , haga clic en Aceptar .
Ahora estamos preparados utilizar el ensamblado personalizado en Reporting Services.
  1. Abra el informe (un archivo .RDL) en el Diseñador de informes.
  2. Para demostrar cómo utilizar el ensamblado personalizado en Reporting Services, agregue un cuadro de texto. Para ello, arrastre un cuadro de texto en blanco desde el cuadro de herramientas al informe.
  3. En las propiedades de cuadro de texto, haga clic en la propiedad Value y, a continuación, llame a una función utilizando la sintaxis siguiente.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    En mi ejemplo, especifica lo siguiente.
    =SimpleClassLibrary.Class1.DoSomething()
    Otros formatos se utilizan para hacer referencia a código en Reporting Services. Por ejemplo, utilice el siguiente formato si se llama a incrusta código.
    =Code.MethodName()
    si se llama a no estático o basado en instancia, utilice método desde un ensamblado personalizado mediante una instancia, el formato siguiente.
    =Code.InstanceName.Method
    Nota Se ha configurado la referencia diferente si desea utilizar un método de instancia. Para ello, sería necesario para ir a Propiedades del informe , haga clic en la ficha referencias y a continuación, especifique el nombre de la clase y el nombre de instancia en la sección clases .

Seguridad de acceso de código si el ensamblado personalizado requiere permisos adicionales

Si el ensamblado personalizado requiere más permisos que los permisos de nivel de ejecución predeterminado, deberá realizar algunos cambios de seguridad de acceso de código. Si se produce un problema de permisos con la seguridad de acceso del código, probablemente verá "# error" desde el ensamblado personalizado en lugar de los resultados esperados. Para unos pocos pasos que puede realizar para determinar si se está produciendo este problema y para obtener instrucciones detalladas acerca de cómo conceder permisos adicionales a su ensamblado personalizado, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
842419Cómo conceder permisos a un ensamblado personalizado que se hace referencia en un informe en Reporting Services
Nota El siguiente enfoque es una prueba para determinar si se producen problemas de seguridad de acceso a código. No se recomienda que utilice el siguiente enfoque porque le concede permisos de plena confianza al ensamblado personalizado.

Crear un CodeGroup nuevo para el ensamblado personalizado y conceda permisos de plena confianza. Para ello, abra el archivo Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config y, a continuación, agregue el código siguiente.
<CodeGroup class="UnionCodeGroup"
   version="1"
   PermissionSetName="FullTrust"
   Name="MyCodeGroup"
   Description="Code group for my data processing extension">
      <IMembershipCondition class="UrlMembershipCondition"
         version="1"
         Url="C:\pathtocustomassembly\customassembly.dll"
       />
</CodeGroup>
recomendamos que cree un conjunto en lugar de asignar este permiso establecido en el grupo de código de permisos más específicos. En este artículo está previsto que se y se ejecuta con ensamblados personalizados, y esto requiere más detalle.

Nota Ensamblados personalizados suele funcionan bien en Report Designer. Sin embargo, es posible que, cuando implementar e intente ejecutar el ensamblado personalizado en el servidor de informes, los permisos de nivel de ejecución predeterminado son insuficientes. La razón para esto es, de forma predeterminada, Diseñador de informes se ejecuta ensamblados personalizados con permisos "FullTrust". Sin embargo, al implementar los informes al servidor de informes, el permiso predeterminado que se concede en Report Server se establece en el nivel de ejecución. Si se produce este problema, probablemente verá "# error" en el control de informe en lugar de los resultados esperados desde el ensamblado personalizado.

Código incrustado

Código incrustado es código que está escrito en la sección código de cuadro de diálogo Propiedades del informe . Código incrustado es una buena elección para código que se llamará varias veces dentro de su informe. Si desea reutilizar el código en varios informes, un ensamblado personalizado es probablemente una mejor elección. Para crear una función incrustada, siga estos pasos:
  1. En el menú informe , haga clic en Propiedades del informe .
  2. En el cuadro de diálogo Propiedades del informe , haga clic en la ficha de código
  3. Agregue la siguiente función y, a continuación, haga clic en Aceptar .
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. En el informe, agregar un nuevo cuadro de texto.
  5. Agregue lo siguiente a la propiedad Value .
    =code.EmbeddedFunction
Me gusta gracias a John por su trabajo duro en este artículo. Tiene experiencia en profundidad en SQL Server y varios lenguajes de programación de Microsoft y disfruta trabajando con los clientes y resolver problemas difíciles. Esperamos que haya disfrutado tema ?s mes en este! Gracias por leernos! Como siempre, quieres enviar ideas sobre temas que desea dirigidos en futuras columnas o en Knowledge Base utilizando Ask For It.

Propiedades

Id. de artículo: 920769 - Última revisión: viernes, 26 de enero de 2007 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Palabras clave: 
kbmt kbhowto KB920769 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 920769

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com