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

StackOverflow https://stackoverflow.com/questions/5264

  •  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.Создать.Получить ответ.Получить ответный поток поступайте с этим так.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top