代码之家  ›  专栏  ›  技术社区  ›  Ian Robinson

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

  •  15
  • Ian Robinson  · 技术社区  · 17 年前

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

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

    1 回复  |  直到 17 年前
        1
  •  8
  •   Ian Robinson    17 年前

    这就是我是如何做到这一点的。在帮助下 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 -见以上数字)。

    我也选择了得到这条小溪 从URL 而不是 数据库 . 我使用了webrequest.create.getResponse。 GetResponseStream 这样做。

    到目前为止还不错-我希望能有所帮助!

    推荐文章