我如何在MS Reporting Services报告中动态地对图像进行中心对齐?

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

我的报告将在运行时知道图像的URL,如果它小于我的设计师指定的尺寸,我需要能够将此图像居中。

0

1 答案

Here is how I was able to accomplish this. With help from 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 这样做。

到目前为止这么好 - 我希望有所帮助!

0
额外
@DvdFranco谢谢,虽然我在原始帖子中包含了链接
额外 作者 Ian Robinson,
你如何使用嵌入式图像来做到这一点?我一直无法弄清楚如何在表达式中引用嵌入式图像。
额外 作者 skeletank,
我有一个问题,因为一些图片比布局更大。它会被裁剪。
额外 作者 Fame th,
额外 作者 Dvd Franco,