2008-08-07 13 views
13

Standardmäßig ermöglicht das Image-Element in MS Reporting Services nicht die Zentrierung des Bilds selbst, wenn die Abmessungen zur Entwurfszeit unbekannt sind. Mit anderen Worten, das Bild (wenn es kleiner ist als die auf der Entwurfsoberfläche zugewiesenen Dimensionen) wird an der oberen linken Ecke verankert, nicht in der Mitte.Wie kann ich ein Bild in einem MS Reporting Services-Bericht dynamisch zentrieren?

Mein Bericht wird die URL des Bildes zur Laufzeit wissen, und ich muss in der Lage sein, dieses Bild zu zentrieren, wenn es kleiner als die in meinem Designer angegebenen Dimensionen ist.

Antwort

8

Hier ist, wie ich das erreichen konnte. Mit Hilfe von Chris Hays

Größe sein, das Bild so groß wie Sie es auf dem Bericht, ändern wollen würden „Sizing“ Eigenschaft auf „Clip“.

gesetzt dynamisch die linke Polsterung des Bildes unter Verwendung eines Ausdrucks:

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

dynamisch das Bild der oberen Polsterung mit einem Ausdruck festgelegt:

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

Die erste Änderung vorgenommen Chris Code war der auslagern Dimensionen meines Bildelements auf dem Bericht (mein Bild war 4.625x1.125 - siehe Nummern oben).

wählte ich auch von einer URL, den Strom zu bekommen statt die Datenbank. Ich habe WebRequest.Create.GetResponse verwendet. GetResponseStream tun, um so.

So weit so gut - ich hoffe, dass hilft!

+0

Wie funktioniert das mit einem eingebetteten Image? Ich konnte nicht herausfinden, wie ein Embedded Image in einem Ausdruck referenziert wird. – skeletank

+0

hier, bro: http://blogs.msdn.com/b/chrishays/archive/2004/10/27/centeredimages.aspx –

+0

@DvdFranco Danke, ich habe den Link in den ursprünglichen Beitrag obwohl –