如何在MS Reporting Services报告中动态居中图像?

时间:2008-08-07 20:24:34

标签: reporting-services

开箱即用,在MS Reporting Services中,当设计时未知尺寸时,图像元素不允许图像本身居中。换句话说,图像(如果小于设计图面上分配的尺寸)将固定在左上角,而不是中心。

我的报告会在运行时知道图片的网址,如果图片小于设计师指定的尺寸,我需要能够将图片居中。

1 个答案:

答案 0 :(得分:8)

以下是我能够实现这一目标的方法。在Chris Hays

的帮助下

将图片大小调整为报表上的大小,将“大小调整”属性更改为“剪辑”

使用表达式动态设置图像的左边距:

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

使用表达式动态设置图像的顶部填充:

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

对Chris的代码进行的第一次修改是在报告中交换我的图像元素的尺寸(我的图像是 4.625x1.125 - 请参阅上面的数字)。

我还选择从网址获取流,而不是数据库。我使用了WebRequest.Create.GetResponse。GetResponseStream这样做。

到目前为止一直很好 - 我希望有所帮助!