Сведения о вопросе

Henry

16:03, 1st July, 2020

Теги

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

Просмотров: 466   Ответов: 1

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

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



  Сведения об ответе

dumai

18:03, 1st July, 2020

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

Размер изображения должен быть таким же большим, как вы хотели бы видеть его в отчете, измените свойство "Sizing" на "Clip" .

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

=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 сделайте так.

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться