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

Reporting services 如何在MS Reporting Services报表中动态居中显示图像?,reporting-services,Reporting Services,在MS Reporting Services中,当尺寸在设计时未知时,图像元素不允许图像本身居中。换句话说,图像(如果小于设计图面上分配的尺寸)将定位到左上角,而不是中心 我的报告将在运行时知道图像的URL,如果该图像小于设计器中指定的尺寸,我需要能够将其居中。以下是我如何做到这一点的。借助 将图像的大小调整为报告中所需的大小,将“调整大小”属性更改为“剪辑” 使用表达式动态设置图像的左填充: =CStr(Round((4.625-System.Drawing.Image.FromStream(

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


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

以下是我如何做到这一点的。借助

将图像的大小调整为报告中所需的大小,将“调整大小”属性更改为“剪辑”

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

=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"
使用表达式动态设置图像的顶部填充:

=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。这样做


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

您知道如何使用嵌入式图像来实现这一点吗?我不知道如何在表达式中引用嵌入的图像。这里,兄弟:@DvdFranco谢谢,我确实在原始帖子中包含了链接,但我有一个问题,因为有些图像比布局大。它将被剪辑。@DvdFranco链接已存档,这是新链接: