请参阅 SSRS 中的嵌入图像宽度



我想在SSRS报告中嵌入图像的填充中创建一个表达式,以便我可以动态地集中图像,SSRS报告的问题是你不能集中图像,你需要设置一个表达式来动态设置它,我搜索并找到了这个解决方案:

左填充:

=CStr(Round((3-System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(Fields!Photo.Value,Byte()))).高度/96)/2,2))和"英寸"

但是,如果图像是数据库参数,我想设置相同的表达式以防我的图像被嵌入,所以我需要在上面的表达式中动态引用图像宽度,谁能帮我,我如何引用嵌入图像的图像宽度和高度在表达式中而不是将宽度写为数字?

不幸的是,

您无法引用图像控件,这就是为什么您无法像示例中那样使用自定义代码或表达式获取图像宽度的原因。但是,如果您有嵌入的图像,而不是将图像硬编码到rdl文件中,则它不像数据库选项那样是动态的。SSRS 仅支持引用文本框集合(单个或 Tablix 内部、矩阵)。因此,您可以简单地查看图像的高度/宽度并将其放入表达式中:

对于左侧填充:

=CStr(Round(("Put here width of your image control in inches"-"Put here width of image in pixes"/"Put here you image resolution")/2,2)) & "in"

因此,如果您有宽度为 5 英寸的图像控件和宽度为 300 像素且 dpi 96px/in 的图像,则应设置:

=CStr(Round((5-300/96)/2,2)) & "in"

填充顶部也是如此,但使用高度而不是宽度。

这并不完美,因为如果您更改图像 - 您也应该为此表达式提供更改,但您没有其他选择。

最新更新