我想在SSRS报告中嵌入图像的填充中创建一个表达式,这样我就可以动态地集中图像,SSRS报告的问题是你无法集中图像,你需要设置一个表达式动态设置,我搜索,我找到了这个解决方案:
左边填充:
= CStr(Round((3-System.Drawing.Image.FromStream(new System.IO.MemoryStream(CType(Fields!Photo.Value,Byte())))。Height / 96)/ 2,2) )& “中的”
但是如果图像是数据库参数,我想设置相同的表达式,以防我的图像被嵌入,所以我需要在上面的表达式动态地引用图像宽度,任何人都可以帮助我,怎么能我指的是一个表达式中嵌入图像的图像宽度和高度,而不是将宽度写为数字??
答案 0 :(得分:1)
不幸的是,您无法引用图像控件,这就是为什么您无法使用自定义代码或表达式来获取图像的宽度。但是如果你有嵌入的图像而不是你的图像被硬编码到你的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"
填充顶部相同,但使用高度而不是宽度。
这并不完美,因为如果你改变你的形象 - 你也应该为这个表达式提供更改,但你没有其他选择。