Web Toolbar by Wibiya How To: Utilizar dll`s en nuestros informes. - Fran Diaz

Fran Diaz

Reporting Services, .NET, tecnologías Microsoft y otros

Recent Posts

Tags

News

Community

Email Notifications

Blogs Destacados

Comunidades

  • OnobaNET
  • Grupo de usua
  • INETA
  • Culminis

Webs Amigas

Archives

How To: Utilizar dll`s en nuestros informes.

Como agregar funcionalidad a nuestro informe desde una dll aparte es muy sencillo. Tan solo tenemos que seguir tres pasos, crear nuestra dll, insertarla en el servidor de informes y llamarla desde nuestro informe.

El como crear la dll me lo voy a saltar porque puede haber muchos tipos de clases y maneras de implementarlo. Tan solo decir que puedes estar escrita en cualquier lenguaje de .NET. Voy a dejar un trozito del ejemplo que yo realizé para que se comprenda luego mejor al llamarla.

namespace Informes_Funciones
{
     
public class Funciones
     

         
   public string FormateaFecha(string Fecha)
           
{
                 
return Fecha.Substring(6, 2) + "/" +
                   Fecha.Substring(
4, 2) + "/" + Fecha.Substring(0, 4);
            }
      }
}

A esta funcion se le pasa una fecha en string del tipo “20070710” y nos la devuelve formateada(o volteada, que es lo mismo en este caso).

Ahora compilamos la dll y la copiamos. Esta deberemos de copiarla en el servidor de informes y en visual studio si estamos probando los informes desde la vista previa de este. Para la aplicación final, tan solo tendremos que meterla en el servidor de informes ya que no le mostraremos el informe desde visual studio a nuestro cliente y si desde nuestra aplicación, desde el browser u otros.

Las rutas son las siguientes:

SQL Server 2005 y Visual Studio 2005:

Unidad:\Archivos de programa(o su equivalente en inglés)\ Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin

Unidad:\ Archivos de programa(o su equivalente en inglés)\ Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies

SQL Server 2000:

Unidad:\ Archivos de programa(o su equivalente en inglés)\Microsoft SQL Server\80\Tools\Report Designer

Unidad:\ Archivos de programa(o su equivalente en inglés)\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin

Ya tenemos nuestra dll en el servidor de informes (en Visual Studio si utilizamos su vista previa). Ahora tan solo tenemos que decirle al informe que tiene una dll que vamos a utilizar.

Dentro del diseñador del informe (no en vista previa, que sino no sale este menú), nos vamos al menú Informe, Propiedades de Informe y seleccionamos la pestaña Referencias. En esta pestaña tenemos dos opciones, hacer referenciar al ensamblado o acceder a través de una instancia.

¿Qué diferencia hay entre las dos?

Pues si hacemos una Referencia, el método al que llamemos de la dll introducida debe de ser estático (shared en vb.net y static en c#) tan solo tenemos que pulsar el boton que tiene dos puntos (..) y seleccionar nuestra dll del directorio del servidor(Unidad:\Archivos de programa(o su equivalente en inglés)\ Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin), agregarlo y aceptar.

Si por lo contrario decidimos que no, que no vamos a poner los métodos estáticos y vamos a instanciar, hacemos lo anterior y abajo en Clases ponemos el Namespace seguido de un punto y el nombre de la clase en Nombre de clase y un nombre al que llamaremos nosotros en Nombre de la Instancia.

¿Cómo llamamos a nuestra funcionalidad?

Pues de dos maneras también, depende de cómo lo agregamos y como hicimos nuestra dll.

  •  Por Referencia
    • Namespace.NombreClase.MiMetodo. Ejemplo: Informes_Funciones.Funciones.FormateaFecha(Fields!MiCampo.Value)
  • Por Clases
    • Code.NombreInstancia.Método Ejemplo: Code.NombreInstancia.FormateaFecha(Fields!MiCampo.Value)

No os preocupéis si os sale un rayita roja debajo del código al escribirlo en el diseñador, el informe no os generará error por eso y funcionará correctamente.

Espero que os sirva,

Un Saludo

Posted: 10/7/2007 13:16 por Fran Díaz | con 12 comment(s) |
Comparte este post:

Comentarios

Rai ha opinado:

Hola, queria pedirte que me explicaras detalladamente como utilizar el elemento INFORME del VS2005 con la herramiento REPORTVIEW(No es Crystal), te agradesco por anticipado

# October 19, 2007 7:09 PM

Fran Díaz ha opinado:

Hola Rai,

Mira en este enlace:

geeks.ms/.../llamando-a-nuestro-informe-desde-el-reportviewer.aspx

Puse algunas formas de acceder, despues de verlo si queires volvemos a hablar.

Un Saludo

# October 19, 2007 8:06 PM

Fran Díaz ha opinado:

Son muchos los que me preguntan sobre Reporting Services en mi blog( esta entrada lo dice todo ). Cuando

# December 12, 2007 12:18 PM

Fran Diaz ha opinado:

Son muchos los que me preguntan sobre Reporting Services en mi blog( esta entrada lo dice todo ). Cuando

# December 18, 2007 1:34 PM

Fran Díaz ha opinado:

En este post voy a explicar algo que ya he podido nombrar seguro en alguno que otro post, pero a nivel

# January 14, 2008 10:13 AM

Fran Diaz ha opinado:

En este post voy a explicar algo que ya he podido nombrar seguro en alguno que otro post, pero a nivel

# February 22, 2008 2:39 PM

Juan Carlos ha opinado:

Hola Fran, necesito tu ayuda en un reporte donde utilizo una dll para reproducir un wav. Segui todos los pasos de este tutorial, copie la dll en las 2 rutas que mencionaste para la version 2005 y referencie la dll en el reporte. Ahora cuando utilizo la pestaña vista previa en el Visual Studio puedo utilizar normalmente los metodos del componente, el problema es cuando publico el reporte o ejecuto la opcion start debugging, aparece todo en el reporte pero el metodo de mi Dll no se ejecuta. He probado varias recomendaciones, como darla a mi componente un strongly named key pair, registrarlo en el GAC para elevar el nivel de confianza al mismo, pero nada. Que me aconsejas?

# February 28, 2008 4:03 PM

Fran Díaz ha opinado:

Hola Juan Carlos,

¿Has metido esas dlls en el servidor de informes tal como explico aquí?. Según leo, solo lo hicistes en el Visual Studio 2005.

Un Saludo

# March 6, 2008 1:17 PM

Juan Carlos ha opinado:

Si he puesto la Dll en el servidor de informes tal como lo explicas. La coloque en la ruta ... Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin , me parece que es un problema de permisos en la archivos de políticas de seguridad. Que permiso deberia darle a mi componente?

# March 7, 2008 4:35 PM

Fran Díaz ha opinado:

Pues vaya Juan Carlos, es raro que no te funcione Sad, por que la dll está tal cual la tienes en tu proyecto ¿

verdad?.

Un Saludo

# March 17, 2008 7:47 PM