Как динамически центрировать изображение в отчете MS Reporting Services?

Изначально в службах MS Reporting Services элемент изображения не позволяет центрировать само изображение, когда размеры неизвестны во время разработки. Другими словами, изображение (если оно меньше размеров, выделенных на поверхности дизайна) будет привязано к верхнему левому углу, а не к центру.

Мой отчет будет знать URL-адрес изображения во время выполнения, и мне нужно иметь возможность центрировать это изображение, если оно меньше размеров, указанных в моем конструкторе.

7.08.2008 20:24:34
1 ОТВЕТ
РЕШЕНИЕ

Вот как я смог это сделать. С помощью Криса Хейса

Увеличьте размер изображения до требуемого в отчете, измените свойство «Размер» на «Клип» .

Динамически установить отступ слева для изображения, используя выражение:

=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"

Первая модификация кода Криса состояла в том, чтобы поменять размеры моего элемента изображения в отчете (мое изображение было 4,625x1,125 - см. Числа выше).

Я также решил получить поток из URL вместо базы данных . Я использовал WebRequest.Create.GetResponse. GetResponseStream сделать так.

Пока все хорошо - надеюсь, это поможет!

8
11.08.2008 21:34:24
Знаете ли вы, как сделать это с помощью встроенного изображения? Я не смог понять, как ссылаться на встроенное изображение в выражении.
skeletank 5.05.2014 13:11:15
Dvd Franco 17.07.2014 16:55:23
@DvdFranco Спасибо, хотя я включил ссылку в исходное сообщение
Ian Robinson 8.10.2014 20:12:38
У меня проблема, потому что какое-то изображение больше, чем макет. Это было бы обрезано.
Fame th 3.11.2015 04:56:30