2008-08-07 20 views
13

Fuera de la caja, en MS Reporting Services, el elemento de imagen no permite el centrado de la imagen, cuando las dimensiones son desconocidas en el momento del diseño. En otras palabras, la imagen (si es más pequeña que las dimensiones asignadas en la superficie de diseño) se anclará en la esquina superior izquierda, no en el centro.¿Cómo puedo centrar dinámicamente una imagen en un informe de MS Reporting Services?

Mi informe conocerá la URL de la imagen en tiempo de ejecución, y necesito poder centrar esta imagen si es menor que las dimensiones especificadas en mi diseñador.

Respuesta

8

Así fue como pude lograr esto. Con la ayuda de Chris Hays

Tamaño de la imagen para que sea tan grande como lo desearía en el informe, cambie la propiedad "Dimensionamiento" al "Clip".

establecer dinámicamente relleno a la izquierda de la imagen utilizando una expresión:

=CStr(Round((4.625-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Width/96)/2,2)) & "in" 

configurar dinámicamente relleno superior de la imagen utilizando una expresión:

=CStr(Round((1.125-System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Height/96)/2,2)) & "in" 

La primera modificación que se introduzca el código de Chris era de extraerse del dimensiones de mi elemento de imagen en el informe (mi imagen era 4.625x1.125 - vea los números arriba).

También elegí obtener la corriente de una URL en lugar de la base de datos. Usé WebRequest.Create.GetResponse. GetResponseStream hazlo.

Hasta ahora todo bien - ¡Espero que ayude!

+0

¿Cómo hacer esto usando una imagen incrustada? No he podido averiguar cómo hacer referencia a una imagen incrustada en una expresión. – skeletank

+0

aquí, hermano: http://blogs.msdn.com/b/chrishays/archive/2004/10/27/centeredimages.aspx –

+0

@DvdFranco Gracias, sí incluí el enlace en la publicación original, aunque –

Cuestiones relacionadas