Reporting Services raporlarında bölge bazlı tarih formatlarını değiştirmek

Selamlar,

Üzerine çalıştığımız raporlardan bazılarında, raporu açacak kullanıcıya göre tarih formatlarını otomatik olarak değişmesini sağlamak istedik. Bunu yapmanın birçok yolu var aslında, ilk olarak tarih değerlerini expression yazarak formatlamak aklımıza geldi. Geliştirme ortamımızda bu çözümü hazırladık bir problem gözükmedi. Fakat çözümümüzü test ortamımıza attığımızda tarih formatlarımızın hiçbirinin istediğimiz gibi olmadığını gördük. İlk olarak bu duruma anlam veremediysekte daha sonra geliştirme ortamımız ile test ortamımızın Windows Server’daki dil ve bölge seçeneklerinin aynı olmadığını gördük. Ne yazıkki Test ortamımızın bölge ayarlarını değiştirme şansımızda olmadığı için bu problemin üstesinden nasıl gelebileceğimizi araştırmaya başladık. Araştırmamızın sonucu olarak şunu öğrendik; Visual Studio Data Tools üzerinden raporumuzun bölge ayarlarını özel olarak belirtmediğimiz zaman Reporting Service’in çalıştığı makinanın bölge seçeneklerini alarak ona göre bir formatlama yapıyor. Bu nedenle geliştirme ortamımızda expression ile formatladığımız tarihler test ortamımızda sağlıklı olarak çalışmayabiliyor. Yani bir makinada GÜN\AY\YIL olarak formatladığınız tarih diğer makinada AY\GÜN\YIL olarak görüntülenebiliyor, birde eğer ay ve gün yer değiştirdiğinde ay’a gelen sayı 12 den fazla ise raporumuz hata vermeye başlıyor.

Bu problemi anladıktan sonra sorunun çözümüne doğru araştırmalarımızı odakladık, aslında aradığımız çözüm URL parametresi veya kullanıcının Internet Explorer bölge ayarları üzerinde bir şekilde verebileceğimiz değer ile raporumuzun Reporting Services sunucusunun bölge ayarlarından bağımsız olarak bölge ayarlarını tanımlayabilmekti.

Sonuç olarak hem raporumuzda minimum değişiklikle uygulayabileceğimiz hemde expression desteği ile parametre kullanabileceğimiz bir çözüm bulduk. Bu çözüm sayesinde raporunuza verebileceğiniz bölge ayarı sayesinde hiçbir tarih formatında özel olarak bir değişiklik yapmadan, rapor içerisindeki bütün tarih alanları rapora verdiğiniz bölge ayarlarındaki formatı kullanacaktır.

1. Raporunuzu Visual Studio Data Tools’da açın ve Properties penceresinden “Report” özelliklerini açın. Bunu raporun en dışdaki sarı renkdeki alana basarak sağlayabilirsiniz. Aşağıdaki ekran görüntüsünde çarpı işareti ile işaretlediğim yer.

Capture

 

2. Sağ pencerede Report özelliklerini açtıktan sonra Language özelliğini bulun. Bu özellik sayesinde bu raporun bölge ayarlarını tanımlayacağız. Aşağıdaki ekran görüntüsünde dikkat ederseniz hem Expression yazma imkanımız var hemde varolan bölgelerde statik olarak bir bölge seçebiliriz. Expression seçeneğini raporumuzun bölge ayarlarını dışarıdan gelen bir Parametre değerine göre değiştirmek istediğimiz zaman kullanıyoruz. Örnek olarak ben burada bölge ayarını URL üzerinden gelecek Language adındaki parametreye bağladım.

Capture1

Bu ayarı yaptıktan sonra raporunuz hangi sunucuda çalışırsa çalışsın sizin tanımladığınız bölge ayarlarını kullanacaktır. Bu bölge ayarlarına göre de bütün tarih formatları otomatik olarak doğru şekilde değişecektir.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s