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

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

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

Ответы

Ответ 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 сделать так.

До сих пор так хорошо - я надеюсь, что это поможет!