Как я могу динамически центрировать изображение в отчете служб MS Reporting Services?
-
08-06-2019 - |
Вопрос
Из коробки, в MS Reporting Services, элемент image не допускает центрирования самого изображения, когда размеры неизвестны во время разработки.Другими словами, изображение (если оно меньше размеров, указанных на поверхности дизайна) будет привязано к верхнему левому углу, а не к центру.
Мой отчет будет знать URL изображения во время выполнения, и мне нужно иметь возможность центрировать это изображение, если оно меньше размеров, указанных в моем конструкторе.
Решение
Вот как мне удалось этого добиться.С помощью Крис Хейз
Измените размер изображения так, чтобы оно было таким большим, как вы хотели бы видеть его в отчете, измените свойство "Sizing" на "Клип".
Динамическая настройка левого отступа изображения с помощью выражения:
=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.Создать.Получить ответ.Получить ответный поток поступайте с этим так.
Пока все хорошо - я надеюсь, это поможет!