MS Reporting Services Raporlarında Dinamik Olarak Bir Görseli Ortalamak

MS Reporting Services ile çalıştıysanız, bir rapor içinde bir görseli ortalamanın, özellikle de görsel boyutları tasarım aşamasındayken bilinmediğinde zor bir görev olabileceğini fark etmişsinizdir. Varsayılan olarak, görsel öğesi tahsis edilen alanın sol üst köşesine sabitlenmiştir, bu da görsel alanın boyutlarından daha küçük olduğunda ideal olmayan düzenlemelere yol açabilir.

Bu eğiticide, raporlarınızda çalıştırma anında aldığınız görsel boyutlarına dayanarak bir görseli dinamik olarak nasıl ortalayabileceğinizi keşfedeceğiz.

Zorluk

Gösterilmek istenen görselin, rapor tasarımında sağlanan alandan daha küçük olabileceği ana zorluktur. MS Reporting Services bu tür durumlarda görsellerin dinamik olarak ortalanmasını yerel olarak desteklemez. Bununla birlikte, birkaç akıllıca ayarla bu sınırlamanın üstesinden gelebilirsiniz:

  • Sorun: Sol üst köşeye sabitlenmiş görseller.
  • Gereksinim: Tasarım zamanında bilinmeyen boyutlardaki görselleri ortalamak.

Çözüm

Chris Hays’in yaklaşımından yararlanarak, görsellerinizi çalışma zamanı boyutlarına göre başarıyla ortalayabilirsiniz. Aşağıda takip etmeniz gereken adımların ayrıntıları bulunmaktadır:

1. Görsel Boyutlandırmasını Ayarlama

İlk olarak, görsel öğesinin istediğiniz boyutlara uygun olarak boyutlandırıldığından emin olun, gerçek görsel boyutları değişiklik gösterebilir. Bizim durumumuzda, boyutları 4.625 inç genişliğinde ve 1.125 inç yüksekliğinde olarak ayarlayacağız.

  • Boyutlandırma Özelliği: Görsel öğesinin “Sizing” özelliğini “Clip” olarak değiştirin. Bu, görselin bozulmadan görüntülenmesini sağlar.

2. Dinamik Sol Dolgu Ayarlama

Daha sonra, görselin genişliğine göre dinamik olarak sol dolgu ayarlamanız gerekecek. Sol dolguyu hesaplamak için aşağıdaki ifadeyi kullanın:

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

3. Dinamik Üst Dolgu Ayarlama

Benzer şekilde, üst dolguyu dinamik olarak ayarlamak için şu ifadeyi kullanmalısınız:

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

Değişiklikler ve İyileştirmeler

Yukarıdaki çözümü uygular iken, bazı önemli değişiklikler yapıldı:

  • Görsel öğesinin boyutları 4.625 inç genişliğinde ve 1.125 inç yüksekliğinde olan özel gereksinimlerime uyacak şekilde ayarlandı.
  • Kod, görsel akışını bir URL’den almak üzere değiştirildi. Bunun için WebRequest.Create.GetResponse kullandım; bu, çevrimiçi kaynakları almak için oldukça kullanışlıdır.

Sonuç

Bu adımları uygulayarak, MS Reporting Services raporlarınızda görselleri etkili bir şekilde ortalayabilir, sunumlarınız için profesyonel ve temiz bir görünüm sağlayabilirsiniz. Açıklanan yöntem, dinamik ifadelerin gücünü ve raporlama tasarımında sağladıkları esnekliği vurgulamaktadır.

Bir sonraki sefer dinamik olarak bir görseli ortalama ile karşılaştığınızda, bu rehberi hatırlayın ve raporlamanızı önemli ölçüde daha görsel olarak çekici hale getirin!