Makale Özeti

Günümüzde gelişmiş uygulamaların büyük kısmı raporlamaya ihtiyaç duyuyor. Ancak işlevsel ve güzel görünümlü raporlar hazırlamak oldukça yorucu ve zor olabiliyor. Yazımızda SQL Server Reporting Services ile kolay bir şekilde nasıl rapor oluşturulduğunu inceleyeceğiz.

Makale

Artık geliştirilen uygulamaların %95’inde veritabanı kullanılıyor. Bu uygulamaların büyük kısmında da raporlama çok önemli bir yere sahip. Aylık-yıllık mali raporlar, siparişler, müşterilerin coğrafi dağılımı, stok durumları… Raporlamaya her zaman ihtiyaç duymaktayız.

Uygulama geliştiriciler içinse en temel sıkıntılardan birisi raporlamadır. Rapor tasarımı yapmak ister istemez vakit alıcı ve sıkıcı bir iş olarak görülür. Ancak geliştirilen yazılımlar ve uygulama arayüzleri sayesinde raporlama neredeyse sürükle-bırak mantığına doğru ilerlemeye başlamıştır. Reporting Services aracı da işleri oldukça basite indirgeyen bir raporlama arayüzüdür. SQL Server’ın bir parçası olarak bilgisayarımıza kurulur. SQL Server ile bütünleşik olarak çalışan Visual Studio ortamını kullanarak Reporting Services çözümleri geliştirebiliriz.

Yazımızda MSSQL için hazırlanmış olan örnek veritabanı “AdventureWorks” üzerinde Reporting Services kullanarak raporlar hazırlayacağız. Eğer SQL Server’da bu veritabanını göremiyorsanız sisteminizde yüklü değil demektir. http://tinyurl.com/2xzkf7 adresinden sisteminize uygun sürümünü indirebilirsiniz. Kurulumu için yönergeleri ise http://tinyurl.com/2doe2e adresinde bulabilirsiniz.

Öncelikle Visual Studio’da “File > New > Project” yolunu izleyerek yeni bir proje başlatıyoruz. Açılan pencereden “Business Intelligence Projects” bölümünden “Report Server Project Wizard” çözümünü seçiyoruz. (Şekil-1)

Şekil 1 – Report Server Project Wizard

 

İlk adımda bizden raporumuzu çalıştıracağımız veri kaynağı isteniyor. “Type” açılır listesine baktığımızda Reporting Services’ın Microsoft SQL Server dışındaki veri tabanlarında da çalışabildiğini görüyoruz. (Şekil-2)

Bu aşamada “Edit” butonuna basarak veritabanı bağlantı özelliklerini açıyoruz. Erişim bilgilerini girdikten sonra “Test Connection” ile bilgilerin doğruluğunu kontrol ettikten sonra “Connection String” hazırlamış oluyoruz.

Şekil 2 – Veri Kaynağı

Sıra geldi SQL sorgumuzu oluşturmaya. Raporun tutarlılığı şüphesiz sorgumuzun doğruluğuna bağlıdır. Biz belirli filtrelere göre müşteri bilgilerini getirmek istiyoruz. Bunun için “AdventureWorks” üzerinde tanımlı olan “Sales.vIndividualCustomer” görünümünü kullanacağız. (Şekil-3)

Sorguyu hazırlamak için doğrudan SQL cümleciğini yazabileceğimiz gibi “Query Builder” penceresini kullanarak daha hızlı ve güvenli olarak sorgumuzu oluşturabiliriz.

Şekil 3 – SQL Sorgusu

 

Bir sonraki adımdan raporumuzun klasik tablo biçiminde mi yoksa matrissel formda mı gösterileceğini seçiyoruz. Klasik liste biçimindeki tablolar için “Tabular”, satır ve sütun bazlı gruplamalar için “Matrix” seçeneğini işaretliyoruz. Seçenekler arasında değişiklik yaptığınızda ön izlemenin anında değiştiğini göreceksiniz. (Şekil-4)

Şekil 4 – Rapor tipi

 

Şimdi veritabanımızdan gelen verilerin tabloda nasıl yerleştirileceğini belirleyeceğiz. Biz sorgumuzda veritabanından müşterilere ait ad, soyad, telefon, email, adres, şehir, eyalet, ülke bilgilerini istedik. Raporumuzda bu bilgileri ülkeye ve eyalete göre gruplamak istediğimizi düşünelim. Bu durumda ülke ve eyalet sütunlarını “Group”, diğer sütunları “Details” bölümüne atıyoruz. Eğer raporu belirli sütunlara göre sayfalara ayırmak isteseydik ilgili sütunları “Page” bölümlerine taşıyacaktık. (Şekil-5)

Şekil 5 – Rapor bölümleri

 

Tablodaki grupların tıklamayla açılır (enable drilldown) olup olmamasını ve tabloda sütun toplamlarının (include subtotals) bulunup bulunmamasını bu adımda belirtiyoruz. “Stepped” ve “Block” seçenekleri ise tamamen görsel özelliklerle ilgilidir. Bu seçenekleri değiştirerek tablonun aldığı görüntüyü önizleme yapabilirsiniz. (Şekil-6)

Şekil 6 – Rapor düzeni

 

             Sonraki adımda tablomuz için listelenen 6 temadan birini seçiyoruz. Yalnızca bu görünümlerle sınırlı değilsiniz. Rapor sihirbazı tamamlandıktan sonra “Layout” bölümünde görünüm özelliklerini dilediğiniz gibi belirleyebilirsiniz. (Şekil-7)

Şekil 7 – Tablo stili

 

Son adım raporun hangi rapor sunucusunda ve hangi klasörde “deploy” edileceğini belirtmemizi istiyor. Raporumuzu yayınlarken de bu bilgileri kullanacağımız için boşlukları doldururken dikkatli olmalıyız.

Şekil 8 – “Deploy” bilgileri

 

Raporumuz hazır. “Preview” sekmesine geçerek raporumuzu hemen görüntüleyebiliriz. (Şekil-9)

Şekil 9 – Önizleme

Reporting Services Arayüzü

Bir Reporting Services çözümünün arayüzü diğer Visual Studio çözümlerinden neredeyse farksızdır. (Şekil-10)

Şekil 10 – Reporting Services Arayüzü

Sol kısımdaki “Dataset” bölümünde sorgumuz sonucunda dönen sütunlar yer almaktadır. Bunları raporumuza sürükleyip bırakabiliriz. Sürüklediğimiz hücredeki değerleri düzenlemek için sağ tuş menüsünden “Expressions” penceresine ulaşabilirsiniz.

 

Expressions

               Expressions penceresinde yer alan pek çok hazır fonksiyonu ve operatörü kullanarak raporunuzu dilediğiniz kadar özelleştirebilirsiniz. Örneğin “FIX(AVG(Fields!alan.Value))” gibi bir formülle belirlenen hücrenin ortalamasını alıp sonucun  yuvarlatılmasını sağlayabilirsiniz. (Şekil-11)

Şekil 11 – Expression

                 Sütunun değerinin yanına statik bir metin eklemek için “"Sonuç: "+Cstr(Fields!alan.Value)” ya da sorgu sonucundaki ilk kaydı getirmek için “=First(Fields!TARIH.Value)” ifadesini kullanabilirsiniz. Burada kullanabileceğiniz tüm formüller ve operatörler alt kısımda listelenmiş halde yer almaktadır.

 “Dataset” yerine açılabilecek “Toolbox” bölümünde ise rapor tasarımda kullanabileceğimiz kontroller yer almaktadır. Görüldüğü gibi rapor tasarımı için yalnızca 9 kontrol yeterli olmaktadır. Rapor tasarımında genellikle “Textbox”, “Table”, “Matrix” ve “Chart” kontrolleri kullanılmaktadır.

Report Designer aracı üç ana kısımdan oluşmaktadır: “Data”, “Layout”, “Preview”. “Data” bölümünde veri kaynağını ve sorguyu tanımlıyoruz. “Layout” bölümünde form tasarımını yapıyoruz ve “Preview” da ise raporu görüntülüyoruz.

 

Grafikler

Tablolar halindeki raporlarımızı grafikler ile de destekleyebiliriz. Bunun için araç kutusundan “Chart” kontrolünü raporumuza sürükleyerek işe başlıyoruz. Excel’de grafikleri kullananlara kontrol hemen tanıdık gelecektir. (Şekil-12)

Şekil 12 – Grafikler

 

               Reporting Services’da bir grafik 3 ana kısımdan oluşur: “category fields”, “series fields” ve “data fields”. Kategori alanlarında “x” ekseninin alacağı değerleri, veri alanlarında ise “y” ekseninin alacağı değerleri belirliyoruz. Seri alanları ise grafikteki öğelerin isimlendirilmesinde kullanılıyor.

 

Raporun Yayınlanması

             Raporu oluşturduktan sonra sıra geldi yayınlamaya. SQL Server Reporting Services iki temel araçtan oluşur: “Report Server” ve “Report Manager”. Raporların çalışmasını “Report Server” servisi sağlar. Yönetim işlemlerini ise “Report Manager” servisinden yaparız.

            Öncelikle “Report  Manager” üzerinde raporumuz için bir klasör oluşturalım. http://localhost/Reports adresine girdikten sonra “New Folder” bağlantısına tıklayarak “Byte” isminde bir klasör açtık. (Şekil-13)

Şekil 13 – Rapor Servisi

 

          Şimdi sıra “deploy” işlemine geldi. Visual Studio’da “Solution Explorer” bölümünde rapora sağ tıklayıp “Deploy” diyoruz. Bunun sonucunda “Output” bölümünde “deploy” işleminin sonucu veriliyor. (Şekil-14)

Şekil 14 – Rapor Servisi


            İşlem başarıyla tamamlandı. Şimdi http://localhost/Reports adresinden “Byte” klasörüne giriyoruz. Raporun ismine tıkladığımızda görüntü aşağıdaki gibi olacaktır. (Şekil-15)

Şekil 15 – Raporumuzun son hali

 

Bu sayfada “Export” butonuna tıklayarak raporu excel, pdf, html, xml, tiff ve csv formatlarına çevirebilirsiniz.

 

Bir başka makalede görüşmek üzere...