MS Reporting Services 보고서에서 이미지를 동적으로 중앙 정렬하는 방법

MS Reporting Services에서 작업해 본 적이 있다면, 보고서 내에서 이미지를 중앙 정렬하는 것이 까다로운 작업이 될 수 있다는 것을 발견했을 것입니다. 특히 디자인 단계에서 이미지의 치수를 모를 경우 더욱 그렇습니다. 기본적으로 이미지 요소는 할당된 공간의 왼쪽 상단 모서리에 고정되어 있어, 이미지가 지정된 영역보다 작을 때는 이상적인 레이아웃이 되지 않을 수 있습니다.

이번 튜토리얼에서는 런타임에 가져오는 이미지 치수에 따라 보고서에서 이미지를 동적으로 중앙 정렬하는 방법을 살펴보겠습니다.

도전 과제

주요 도전 과제는 표시하려는 이미지가 보고서 레이아웃에서 제공된 공간보다 작을 수 있다는 것입니다. MS Reporting Services는 이러한 경우에 이미지의 동적 중앙 정렬을 본래 지원하지 않습니다. 그러나 몇 가지 기발한 조정으로 이 제한을 극복할 수 있습니다:

  • 문제: 왼쪽 상단 모서리에 고정된 이미지.
  • 필요: 디자인 시간에 치수가 알려지지 않은 이미지를 중앙 정렬.

솔루션

Chris Hays의 접근 방법을 통해 런타임 치수에 따라 이미지를 성공적으로 중앙 정렬할 수 있습니다. 따라야 할 단계는 다음과 같습니다:

1. 이미지 크기 설정

먼저, 이미지 요소의 크기를 원하는 치수로 설정해야 합니다. 이미지 크기는 다를 수 있지만, 본 예에서는 폭 4.625인치 x 높이 1.125인치로 설정합니다.

  • 크기 속성: 이미지 요소의 “크기” 속성을 **“잘라내기”**로 변경합니다. 이렇게 하면 이미지가 왜곡 없이 표시됩니다.

2. 왼쪽 패딩을 동적으로 설정

다음으로, 이미지의 너비에 따라 왼쪽 패딩을 동적으로 설정해야 합니다. 아래 식을 사용하여 왼쪽 패딩을 계산하십시오:

=CStr(Round((4.625 - System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Width / 96) / 2, 2)) & "in"

3. 위쪽 패딩을 동적으로 설정

유사하게, 아래 식을 사용하여 위쪽 패딩도 동적으로 설정해야 합니다:

=CStr(Round((1.125 - System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Height / 96) / 2, 2)) & "in"

수정 및 개선

위 솔루션을 구현하면서 몇 가지 주요 수정을 했습니다:

  • 이미지 요소의 치수를 폭 4.625인치 x 높이 1.125인치에 맞춰 조정했습니다.
  • 데이터베이스 대신 URL에서 이미지 스트림을 가져오도록 코드를 수정했습니다. 이를 위해 WebRequest.Create.GetResponse를 활용했으며, 이는 온라인에서 리소스를 가져오는 데 매우 편리합니다.

결론

이 단계를 구현함으로써 MS Reporting Services 보고서에서 이미지를 효과적으로 중앙 정렬할 수 있으며, 프레젠테이션을 위한 전문적이고 깔끔한 모양을 보장할 수 있습니다. 설명된 방법은 동적 표현의 힘을 강조하며, 보고서 디자인의 유연성을 제공하는 방법을 보여줍니다.

따라서 다음 번에 이미지를 동적으로 중앙 정렬해야 할 경우, 이 가이드를 기억하고 보고서를 더욱 시각적으로 매력적으로 만드십시오!