Hola, si trabajas con Crystal Reports seguro te has encontrado con el problema de agregar una imagen de forma dinámica. Si es así a continuación te mostraré una forma sencilla  de agregar una imagen  dinámicamente (en tiempo de ejecución) en un reporte de Crystal Reports utilizando C#

Básicamente la estrategia consiste en agregar un placeholder para la imagen, pasar la ruta donde esta nuestra imagen como un parámetro al reporte y por ultimo decirle a la imagen que utilice el parámetro como fuente para la imagen.. Manos a la obra.

1.- Agregar una imagen al reporte, en la posición y el tamaño que deseamos (nos pedirá que imagen deseamos agregar, es recomendable agregar una imagen de ejemplo similar a la que modificaremos en tiempo de ejecución, si no cualquier imagen servirá).

Botón derecho -> Insert -> Picture

Insertart imagen en crystal reports

2.- Después de ubicar la imagen y ajustarla a las dimensiones que deseamos, creamos un nuevo parámetro que llamaremos picturePath (aquí hay un post anterior sobre como hacerlo).

3.- Lo siguiente es decirle al objeto imagen que agregamos que el parámetro picturePath es de donde tomara la imagen.

Botón derecho sobre la imagen, seleccionar Format Object, en la nueva pantalla que aparece seleccionar la pestaña Picture. En Graphic Location presionamos el botón de Fórmula (X-2), en el editor de fórmulas agregamos {?picturePath} y presionamos Save and Close.

parametro como fuente de imagen

Y estamos listos, ahora en código solo es cuestión de localizar o crear en tiempo de ejecución la imagen que deseamos agregar al reporte y pasar la ubicación como parámetro.

// ...
string path = @"c:\dinPictures\pic1.png";
 rpt.SetParameterValue("picturePath", path);
/// ...

 

Advertisements