Как я могу динамически центрировать изображение в отчете MS Reporting Services?
Изначально в MS Reporting Services элемент изображения не позволяет центрировать само изображение, когда размеры неизвестны во время разработки. Другими словами, изображение (если оно меньше размеров, выделенных на поверхности конструктора) будет привязано к верхнему левому углу, а не к центру.
Мой отчет будет знать URL-адрес изображения во время выполнения, и мне нужно иметь возможность центрировать это изображение, если оно меньше размеров, указанных в моем конструкторе.
Ответов (1)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 так и поступает.
Пока все хорошо - надеюсь, это поможет!