Incluir una Imagen en un Informe RDLC cuyo Path de Acceso paso por Parámetro

مؤمّن Incluir una Imagen en un Informe RDLC cuyo Path de Acceso paso por Parámetro

مؤمّن

  • martes, 07 de febrero de 2012 7:42
     
      Tiene código

    Hola a todos.

    Estoy intentando añadir una imagen en mi control ReportViewer a partir de la definición del informe RDLC pero en lugar de tenerla fija, paso un parámetro Texto con el Path de la ruta donde está la imagen.

    Dentro del informe añado una Imagen y le indico "Origen de la Imagen Externo", y en "Usar esta Imagen" abro la expresión y le indico el Parámetro que recojo de la lista que me muestra "=Parameters!ImagenReport.Value".

    Dentro de la imagen me muestra un icono pequeño, Compila bien pero al ejecutar el informe me da un error en el procesamiento local.

    Si tenéis alguna idea o ejemplo os lo agradezco.

    Saludos.

Todas las respuestas

  • martes, 07 de febrero de 2012 22:53
    Moderador
     
     

    Hola,

    ¿Donde tienes dicha imagen a la hora de ejecutar?

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • miércoles, 08 de febrero de 2012 6:29
     
     

    Hola Fran buenos días.

    Ante todo gracias por atenderme.

    Las imágenes asociadas no las guardo en Base de Datos por un tema puramente de ahorro de espacio ya que trabajo con una Express 2008 R2, así que las guardo en Directorios y voy a partir de su Path  @"C:\....." o bien aquella ruta que me indique el propio usuario en el aplicativo cuando le permito escogerla a partir del control FileDialog de VStudio 2010 y cuando tengo que mostrarla la recupero de dicha ruta y la muestro en el PictureBox.

    Estoy intentando hacer un reporte de personas físicas con el ReportViewer (uno de mis mantenimientos) y me gustaría mostrar dicha imagen.

    Gracias y Saludos.

  • miércoles, 08 de febrero de 2012 7:21
    Moderador
     
     

    Hola Joanca,

    Buenos dias, vamos a hacer una cosa, prueba a poner en el enlace una imagen desde cualquier sitio de internet, no sé, busca un sitio donde alojen imágenes gratuitas o así. Así podemos verificar si puede ser problema de permisos en el directorio de tu aplicación.

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • miércoles, 08 de febrero de 2012 8:25
     
     

    Hola Fran buenos días.

    He realizado la prueba que me comentas de la siguiente forma cogiendo un ejemplo de imagen desde Google:

    List <Microsoft.Reporting.WinForms.reportParameter = new List<Microsoft.Reporting.WinForms.ReportParameter>();

    new Microsoft.Reporting.WinForms.ReportParameter("ImagenReport", @"http://www.google.es/imgres?imgurl=http://www.definicionabc.com/wp-content/uploads/fichero.jpg&imgrefurl=http://www.definicionabc.com/general/fichero.php&usg=__qWh6qOgVfdkGP-CH-OJUYSSjOio=&h=305&w=300&sz=32&hl=es&start=1&zoom=1&tbnid=m4Ozci2J2SDdWM:&tbnh=116&tbnw=114&ei=ry0yT57hHcTOhAfBkNWBBQ&prev=/search%3Fq%3Dficheros%26hl%3Des%26gbv%3D2%26tbm%3Disch&itbs=1"));

    reportParameter.Add(

    new Microsoft.Reporting.WinForms.ReportParameter("TituloReport", "Título del Reporte de las Disciplinas"));

    reportParameter.Add(

    this.reportViewer1.LocalReport.SetParameters(reportParameter);Y el error me lo dá en la última línea como "Procesamiento Local de Parámetros".

  • jueves, 09 de febrero de 2012 20:36
     
      Tiene código

    Que tal Joanca, prueba de esta manera:

    ReportParameter[] params = new ReportParameter[1];
    params[0] = newReportParameter("Directorio", DirectorioDeLaImagen, false);
    
    this.reportViewer.LocalReport.SetParameters(params);

    Y en el RDLC, en el campo Value de la imagen coloca:
    ="file:" & Parameters!Directorio.Value

     Saludos.


    FCR ...

  • viernes, 10 de febrero de 2012 13:21
     
     

    Hola Fernando.

    He seguido tus pasos y me sigue saliendo el "Se ha producido un Error en el procesamiento Local de Informes":

    la secuencia de código es la siguiente con la única diferencia que los parámetros los paso por un List:

    // Lista de Parámetros para añadir a la definición del Reporte.
    List<Microsoft.Reporting.WinForms.ReportParameter> reportParameter = new List<Microsoft.Reporting.WinForms.ReportParameter>();
    reportParameter.Add(new Microsoft.Reporting.WinForms.ReportParameter("ImagenReport", @"C:\Img\Accesos.jpeg", false));
    reportParameter.Add(new Microsoft.Reporting.WinForms.ReportParameter("TituloReport", "Título del Reporte"));

    Una vez en la definición del RDLC, en las Propiedades de la imagen indico "seleccionar origen de la imagen = Externo", y en "
    Usar esta imagen = <Expr>" indico en Establecer Expresión para Value ="file:" & Parameters!ImagenReport.Value

    A partir de ahí compila OK y siempre da el mismo error, e incluso he probado en +1 PC con permisos de Administrador.

    Gracias y Saludos.

  • viernes, 10 de febrero de 2012 16:49
     
      Tiene código

    Hola Joanca,

     Estas agregando la siguiente linea:

    // Lista de Parámetros para añadir a la definición del Reporte.
    List<Microsoft.Reporting.WinForms.ReportParameter> reportParameter = new List<Microsoft.Reporting.WinForms.ReportParameter>();
    reportParameter.Add(new Microsoft.Reporting.WinForms.ReportParameter("ImagenReport", @"C:\Img\Accesos.jpeg", false));
    reportParameter.Add(new Microsoft.Reporting.WinForms.ReportParameter("TituloReport", "Título del Reporte"));

    this.reportViewer.LocalReport.SetParameters(reportParameter);

    Saludos.


    FCR ...

  • sábado, 11 de febrero de 2012 12:48
     
     

    Hola Fernando y gracias de nuevo.

    Aunque no lo haya colocado en el ejemplo por no colocar más código y centrarme en el problema, Sí, por descontado que tengo dicha línea colocada más las que definien el DataSet, etc ... e incluso más parámetros para la definición de las cabeceras de los Campos y funciona todo OK, incluso tengo otra imagen incorporada en el reporte pero no como asociación Externa, sino como Imagen acoplada fija.

    No creo que sea un tema de permisos tal y como me relfexionaba Fran, ya que lo he probado en 3 máquinas todas ellas con usuarios administradores y sin políticas restrictivas.

    En cuanto a mi entorno de trabajo estoy con Visual Studio 2010 Profesional, con C# y con un SqlServer 2008 R2 Express.

    Si se te ocurre alguna idea te lo agradeceré eternamente.

    Gracias y Saludos.

  • lunes, 13 de febrero de 2012 7:51
    Moderador
     
     

    Hola Joanca,

    Vamos a hacer una prueba, copia tu informe, y en la copia borra todo y deja un solo textbox con el parámetro puesto. Luego ejecuta el informe y mira a ver que es lo que muestra el textbox.

    Esto nos va a ayudar mucho a saber que es lo que le está pasando al control de imagen dicho parámetro ;).

    Un Saludo!


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • lunes, 13 de febrero de 2012 16:42
     
     

    Hola Fran.

    He probado tal y como me comentas y efectivamente en el TextBox se muestra todo el contenido de la ruta que le paso como parámetro "C:\.....", así que el envío de parámetros funciona OK.

    Gracias de antemano y Saludos.

  • martes, 14 de febrero de 2012 10:02
    Moderador
     
     

    Hola,

    ¿Has probado a poner directamente dicha ruta tal cual te aparece en el informe?

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • martes, 14 de febrero de 2012 11:46
     
     

    Hola Fran.

    Cuando comentas ponerlo directamente entiendo que al insertar la Imagen en botón derecho "Propiedades de la Imagen", "Seleccionar Origen de la Imagen = Externo", y en "Usar esta imagen" dentro en "Establecer expresión para: Value" indico ="C:\........\Imagen.jpeg" sin indicar nada más.

    Compila OK y al ejecutarlo sale el mismo error en "Procesamiento Local de la Imagen".

    Intentaré probarlo en algún PC más pero ya veo que me dará el mismo resultado de siempre.

    Gracias por el interés y Saludos.

  • miércoles, 15 de febrero de 2012 7:18
     
     

    Hola Fran.

    Como te comentaba ayer lo he probado en +1 PC y el fallo siempre es el mismo.

    Lo he probado en Win XP y en Windows 7 con el misml perfile de Visual Studio 2010 + C# + SqlServer 2008 R2 Express.

    Puede ser que haya un Bug de Windows o directamente que no funcione para la Express R2 ?????

    Gracias y Saludos.

  • miércoles, 15 de febrero de 2012 15:49
    Moderador
     
     

    Hola,

    Esto ya si que es raro :(. Cuelgame el proyecto con solo la imagen y el código que debe tener junto con la imagen a alguna carpeta pública de skydrive y lo veo ;).

    Un saludo 


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • martes, 21 de febrero de 2012 9:30
     
     

    Hola Fran buenos días.

    Disculpa por el retraso en contestarte pero entre otras cosas he estado en cama.

    Curiosamente mi cuenta de MSDN con la que opero en los foros desde siempre no me permitía acceder al Skydrive (que no había usado antes nunca), ya que no mapeaba correctamente con el Hotmail sin motivo aparente, por lo que he tenido que crearme una cuenta nueva en Windows Live que si me ha permitido acceder al sky, y en donde en el acceso Público he creado una carpeta "Foro SqlReportingServices - FranDiaz", en donde te he dejado un ZIP con un proyecto muy sencillo de un form con el reportviewer, el RDLC y una sola imagen.

    Ya me contarás que aprecias en él.

    Gracias de antemano.

    Saludos.

  • martes, 21 de febrero de 2012 19:50
    Moderador
     
     

    Jeje, cosas que pasan, no te voy a hacer mucha más publicidad sobre skydrive (25gb, 100mb que pronto serán 300 por archivo,etc).....pero......

    ¿No crees que te falta algo? ¿La url de tu carpeta? ^^.

    Un Saludo!


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

  • miércoles, 22 de febrero de 2012 10:40
     
     

    Hola Fran.

    Joder que burro soy - perdóname por el despiste que encima que me ayudas yo me dejo cosas ¡¡¡¡¡

    La URL hasta la carpeta:

    https://skydrive.live.com/?cid=875e7fd8edb3d7f2#cid=875E7FD8EDB3D7F2&id=875E7FD8EDB3D7F2%21105

    La URL dentro de la carpeta  "Foro SqlReportingServices - FranDiaz":

    https://skydrive.live.com/?cid=875e7fd8edb3d7f2#cid=875E7FD8EDB3D7F2&id=875E7FD8EDB3D7F2%21108

    Por cierto el Skydrive es cojonudo y la verdad es que no lo conocía, y con las prestaciones que comentas realmente es una barbaridad ¡¡¡¡

    Gracias por ponerme en antecedentes.

    Saludos.

  • jueves, 23 de febrero de 2012 13:33
     
     

    buenas! yo estoy igual, no hay manera de que me muestre la imagen...he probado mil cosas y nada, a mi no me da error, me genera el informe, pero no me muestra la imagen. ¿alguna idea? yo creo que es por la expresión que le asignamos, que no monta bien la ruta. Pero ya he probado con todo lo que se me ha ocurrido (decir que de informes estoy verde VERDE), desde cambiar en la ruta / por \ a rutas simples a mas no poder...y nada.

    En cuanto a tu fallo, tienes puesto esto?

    reportViewer.LocalReport.EnableExternalImages = true;

    porque a mi al principio me daba un error "genérico", que mirando luego era por no tener habilitado esto. Puede que sea lo que te pasa a ti.

    Un saludo, y muchas gracias de antemano.

  • jueves, 23 de febrero de 2012 13:44
     
     

    efectivamente, te falta eso que comentaba, si ponesa true la propiedad antes de llamarlo, te compila:

    this.reportViewer1.LocalReport.EnableExternalImages = true;
    this.reportViewer1.LocalReport.SetParameters(reportParameter);

    eso si....no muestra la imagen xD

    A ver si alguien que esté más puesto en esto nos informa, porque yo de informes no tengo ni idea.

    Un saludo.

  • jueves, 23 de febrero de 2012 13:57
    Moderador
     
     Respondida Tiene código

    Hola,

    Perdona la tardanza, la solución es una mezcla de lo que nos decía Fernando Carrillo y fjbgcmbsgr

    Por una lado hay que poner bien el parámetro, es decir te faltaba poner el ="File:"

    ="file:" & Parameters!Directorio.Value

    Y por otro lado habilitar las imágenes con:

    this.reportViewer1.LocalReport.EnableExternalImages = true; 

    Haz la prueba ;)

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

    • Propuesto como respuesta Fran DiazModerator jueves, 23 de febrero de 2012 13:57
    • Marcado como respuesta Joanca jueves, 23 de febrero de 2012 16:47
    •