domingo, 14 de noviembre de 2010

[Reporting Service] Campo Imagen desde un DataSet Tipado

 

Introducción

El siguiente ejemplo explica como vincular un campo imagen que se obtiene desde una base de datos.

En este caso se utiliza un reporte de Reporting Service en modo local, por eso se cuanta integrado al VS un archivo de extensión .rdlc

Definición de los datos

Para asignar los datos se ha creado un DataSet Tipado, con dos DataTable, uno que contendrá un campo que representa el logo de la compañía, el segundo DataTable tendrá los datos del listado.

Definición del campo de imagen

Dentro del reporte se ubico un campo de imagen, pero para que este tome la información provista por el datatable debe definirse algunas propiedades

Las 3 dentro de la sección “Data” son las que deben tener nuestra atención.

La propiedad Source debe asignarse como “Database” para que tome la info del datatable, y es recomendable además asignar el MiMeType para que sepa con que formato vendrá la imagen.

Pero la propiedad algo mas compleja de definir es “Value”, ya que esta requiere de una expression

Se puede hacer uso de la ventana que ayude con esta tarea:

En este caso se seleccionando del primer Data Source de Empresa el campo de Logo, pero se hará uso de método First() para tomar solo un valor del mismo, ya que la imagen es solo una.

 

[C#]
[VB.NET]

9 comentarios:

Euroasesor dijo...

Hola:

Me da error porque no encuentra la clase "microsoft.reporting.winforms", no se si esta clase es privada o viene con el visual studio.

Un Saludo.
Juan Carlos

Euroasesor dijo...

Perdona la clase que da error es:

ReportDataSource

Y

Microsoft.Reporting.WinForms.ReportViewer

Leandro Tuttini dijo...

hola Euroasesor

Que raro esto que comentas

Has podido verificar que el proyecto tengas la referencias de forma correcta ?
o sea cuando abres el codigo, y vas a la parte de referencia del proyecto, puede ver que no falte ninguna, si ves que falta esta en particulas agregala.

Que distribucion del VS estas utilziando, es acosa una verison express ? lo pregunto porque hasta dodne se esta no puede hacer uso de Reporting

saludos

Marlon José dijo...

Buenas Noches Leandro.
Tenía un tiempo que no entraba a su blog y me entero de su nombramiento alcanzado. Lo felicito por ese logro tan importante y suyo. Un motivo mas para seguir adelante con lo que ya viene haciendo...

Bueno, ahora le planteo lo sig.: Estoy usando: Visual Studio 2010 Ultimatum en Inglés y recien lo configuré para trabajar con Firebird 2.5, FirebirdDDEXProvider-2.0.5 y NETProvider-2.6.0, seguí la configuración y me funciona pudiendo manejar la bd desde el server explorer. Además he creado un dataset con un tableadapter alm cual le he creado 3 consultas y todo bien. El Problema: Cuando intento crear una cuarta consulta usando parametros y Error... Visual studio ha encontrado un error y necesita cerrarse. He investigado y he probado muchas opciones. Instale visual en otra partición hice nuevamente la configuracion de firebird y el problema sigue igual. Lo último que probe fue que en la 3 consulta la modifiqué incluyendo la consulta 4 con un and funcionó. Al parecer no funciona con una cuarta consulta sobre el mismo tableadapter. Agradezcon tu atención.. Gracias.

PedroRodriguez dijo...

Hola se que este post es muy viejo ya pero ando trabajando con esto y no me sale la imagen solo sale una X roja, las imagenes las saco de una carpeta que tengo, las convierto en byte[] y la meto en un datatable pero a la hora de enviarlo al reporte RDLC solo me sale una X roja. podria alguien ayudarme por fevor, gracias y disculpen el que publique en un post tan viejo D:

Leandro Tuttini dijo...

hola Pedro

el resto que envias en el datatable si se visualizan en el reporte ?


saludos

PedroRodriguez dijo...

si todo lo demas se muestra pero la imagen no, ya puse el campo de la imagen en tipo byte(), pero no me muestra la imagen mas los datos si los envia.

me parese raro ya que si utilizo un DataGridview con un campo tipo imagen y le cargo el arreglo de byte si me muestra la imagen pero al enviarla al reporte no me muestra nada.

por ahora utilice la opcion de ponerla como externa y cargando la direccion de la imagen como File: URLdeimagen

Leandro Tuttini dijo...

hola Pedro

validaste que el campo de imagen tenga la formula correcta que se vincule a ese campo de imagen ?

valida tambien combo de source que defines

imagen

prueba usando el que dice "database", valida correctamente el tipo de imagen, si asignas un gif pero defines un jpg quizas no funcione

saludos

PedroRodriguez dijo...

si tenia todo asi pero ya lo solucione, era error mio, al meterlo al datatable se convertia a string, por que ? no lo se solo elimine el datatable y lo cree de nuevo y todo bien jeje, gracias por la ayuda