SQL SERVER REPORTING SERVICES GRAFİKLER, SPARKLINE, DATA BARS – Bölüm 5

SQL SERVER REPORTING SERVICES GRAFİKLER, SPARKLINE, DATA BARS – Bölüm 5

    Reporting Service makale dizisinin 5. Bölümünde, Grafikler, Sparkline ve Data Bar konularını göreceğiz. Raporlamada öncelik verilerin doğruluğudur, doğru verileri sağladıktan sonra, görsel olarak sunmakta raporu okuyanlar tarafından hız kazanmaktadır. Bir raporu ilk önce grafiksel olarak verip, eğer değerlerde bir sorun var ise detayına inmek en hızlı yöntem olmaktadır.

    Çoğu raporlama yazılımında olduğu gibi, Reporting Service’teki grafikleri inceleyeceğiz. Satır verilerindeki detayları daha rahat görmek içinde sparkline ve data barları kullanacağız.

    Makaledeki şekil numaraları, önceki Reporting Service makalesinin devamı olduğundan, kaldığı numaradan devam edecektir.

1 – GRAFİKLER:

1-1 Kolon Grafikleri:

    Excel tarafında aşina olduğunuz çubuk, pasta, çizgi grafikleri Reporting Service’te nasıl yapabiliriz, bunlara bakacağız. İlk olarak Report Builder’ı açarak, yeni bir rapor oluşturuyoruz. Blank report açıyoruz.

SSRS-291

Data Source olarak Adventureworks’u ekliyoruz, shared data source olarak daha önce eklediğimiz için, otomatik olarak karşımıza çıkması gerekir.

Datasets kısmında da, yeni bir veriseti ekliyoruz. Sales tablosundaki Viewleri genişleterek, vSalesPerson view’ini seçelim. Burada pazarlamacının soyadına göre satış rakamlarını seçelim. LastName, SalesYTD ve SalesLastYear alanlarını seçip, Run query’den sorgumuzu çalıştıralım.

SSRS-292

Properties ekranını da kapatıyoruz, verisetimiz hazırlanmış oldu. Insert menüsünden Chart – Chart wizard’a tıklayalım.

SSRS-293

Karşımıza hangi verisetini seçeneceğimiz ekran geldi. Daha önce oluşturulan shared bir dataset de bu ekran seçilebilmektedir. Yeni oluşturduğumuz Dataset1’i seçerek Next ile devam ediyoruz.

SSRS-294

Örneğimizde kolon grafiği kullanacağımızdan, Column chart tipini seçip devam ediyoruz.

SSRS-295

Arrange chart fields ekranında, grafikteki verilerin neye göre gruplanacağını, sayısal değerlerin hangi alanlar olduğunu bu ekrandan ayarlıyoruz.

Categories – Verilerin hangi alana göre gruplanacağının seçildiği alandır.

Series – Gruplanan verilerin, serilerine göre de gruplama yapılacak ise, bu alana ilgili veriyi sürükleyip bırakmak yeterli olacaktır. Örnek olarak, satış grafiğinin yıl serisine göre grafiğinin alınması gibi.

Values – Değerler, sayısal değerlerin olduğu alandır, rapordaki sayısal veriler bu alanda gruplanıp grafikte gösterilmektedir.

Categories kısmına Lastname, pazarlamacının adı. Values kısmına da SalesYTD, bu yılki satışları getirip ilk grafiğimizi oluşturmaya devam edelim. Geçen yılki satışlar olan SalesLastYear alanını daha sonra grafiğimize ekleyeceğiz.

SSRS-296

Choose a style, şimdilik basit görselliğe sahip generic stilini seçelim. Finish ile sihirbazı tamamlıyoruz.

SSRS-297

Grafiğimiz oluştu, report builder’a grafik sihibazından sonra varsayılan olarak grafiklerleri boyutu ufak gelmektedir. Grafiğin üzerine tıklayarak, pencereyi aktifleştiriyoruz, ardından sayfanın sağ tarafına doğru uzatarak grafiğin boyutunu büyütüyoruz.

SSRS-298

Run diyerek raporu çalıştıralım, grafiğin nasıl göründüğüne bakalım.

SSRS-299

Bu şekilde satışlar belli olmuyor ve pazarlamacı isimleri sadece 3 tane çıkmış. Şimdi grafiğin boyutunu Design’a gelerek aşağıya doğru uzatalım.

SSRS-300

Run ile raporu çalıştırıyoruz. Grafikte sadece satış rakamlarının net okunduğu gözüküyor, çok fazla pazarlamacı olduğundan isimleri grafiğe sığmamaktadır.

SSRS-301

Varsayılan olarak yeni bir rapor hazırladığınızda, alt eksendeki isimler çıkmayacaktır. Pazarlamacıların isimlerini grafikte göstermek için Axis properties’e tıklıyoruz. Grafiğin normal rapordan farkı, her alanın ayır bir properties ekranı olmasıdır, üzerine gelip seçtikten sonra sağ klik ile properties ekranları açılmaktadır. Yatay ekseni seçip sağ tıklıyoruz, Horizantal Axis Properties penceresini açıyoruz.

SSRS-302

Axis options sekmesinde, Interval’ın altındaki fx butonuna tıklıyoruz.

SSRS-303

Buradaki 0 olan değeri 1 yapıyoruz. Ok ile ekranı kapatıyoruz.

SSRS-304

Grafiklerdeki kenar boşluklarını iptal edip, daha düzenli bir grafik görüntüsü için, Side Margins’i Auto’dan Disable’a getirip, Ok ile properties ekranını kapatıyoruz.

SSRS-305

Desing ekranında pek bir değişiklik olmadı, Run diyerek raporumuzu çalıştıralım.

SSRS-306

Tüm pazarlamacı isimleri grafiğimizin yatay eksenine geldi.

Bu tarz istekler karşınıza çıkacağından makalemizde bunlara yer vermek istedim. Diğer bir örnekte, bu yılki satışların yüzde 25’ini hangi pazarlamacılar yaptı gibi bir istek gelebilir. Bunun için Chart Properties’i açmamız gerekiyor. Eğer grafik üzerinde sağ klik yaparsanız Series properties açılacaktır, grafiklerin sağ tarafındaki boşlukta sağ tıklama en uygunu olacaktır.

SSRS-307

Chart properties ekranında Filters sekmesine gelip, yeni bir filtre eklemek için Add’e tıklıyoruz.

SSRS-308

Expression bölümünde, hangi alana filtre ataması yapacak isek, ilgili alanı burada seçiyoruz. SalesYTD yani bu yılki satışların en çok yüzde 25’ini yapan pazarlamacıları bulmak için seçiyoruz. Operator kısmında Top% operatörünü seçtikten sonra, Value kısmına da 25 yazıyoruz. Böylelikle satışların en yüksek yüzde 25’ini yapan pazarlamacıların grafiğini hazırlamış olduk.

SSRS-309

Run diyerek raporumuzu çalıştırıyoruz.

SSRS-310

En çok yüzde 25 satış yapan 5 kişi olduğunu ve satış rakamları ile birlikte grafik bize çıkartmış oldu.

Bu yılki satışların yanına bir de geçen yılki satışları koyarak, iki sene arasında karşılaştırma yapalım.

Chart1’i seçerek, sağ tarafta boş bir alanda sağ tıklıyoruz.

SSRS-311

Sağ tarafta grafikte kullanılan verilerin gösterildiği bir tablo açıldı. Values kısmında SalesYTD-Bu yılki satışların olduğu tablo var, geçen seneki satışları eklemek için ister + butonuna basıp ekleyebiliriz, istersek de Datasets’in altındaki SalesLastYear verisini sürükleyip Values alanının altına bırakabiliriz.

SSRS-312

Turuncu olan kolonlar geçen yılın satışları, mavi olanlar ise vu ylki satışları temsil etmektedir. Desing ekranındaki grafik görünümleri temsili olup, bilgi amaçlıdır, gerçek değerleri göstermemektedir. BU yılki ve geçen yılki satışların değerlendirmesini görmek için Run’a tıklıyoruz.

SSRS-313

Pazarlamacı bazındaki satışların karşılaştırma grafiğini tamamlamış olduk.

Grafiğimize biraz daha görsellik katmak için, grafiğin ana penceresini yani Chart1 penceresini seçiyoruz. Ana pencereyi seçtikten sonra sağ tıklayınca açılan menüde “Change Chart Type” bölümüne giriyoruz. Eğer grafik üzerinde ana pencereyi tıklayıp seçemezseniz bu menü karşınıza gelmeyecektir.

SSRS-314

Karşımıza birçok çeşit grafik türü çıkmaktadır. Örnek olarak 3-D Clustered Column grafiğini seçiyoruz.

SSRS-315

Run diyerek grafiği görüntüleyelim. 3 Boyutlu olarak grafiğimiz aşağıdaki gibi gözükecektir.

SSRS-316

1-2 Kolon Grafiklere Ortalama ve Trend Çizgisinin eklenmesi:

    Kolon grafiklere ortalama ve trend çizgisinin eklenmesi, grafiği okuyan kişiler için oldukça faydalı olacaktır. Bir bakış ile genel bir görünüm elde ederek, trendin nereye gittiğini ve veri ortalamalarının hangi değerde olduğunu görebilirler.

Satış raporunu örnek almaya devam ederek ilerleyelim. Ortalama değer çizgisi eklemek için Chart Data üzerindeki Values’ların hangisine ortalama değer çizgisi eklemek istiyorsak, ilgili values’a sağ tıklayarak “Add Calculated Series” seçeneğine tıklıyoruz.

SSRS-317

Ortalama değer çizgisi için, General sekmesinde Formula’dan “Mean” seçeneğini seçiyoruz.

SSRS-318

Legend sekmesinden ortalama çizgisine istediğimiz ismi verebiliriz.

SSRS-319

Border sekmesinde, ortalama çizgisinin kalınlığını arttırıp, Line Style’dan kesik çizgi olarak seçiyoruz.

SSRS-320

Aynı şekilde SalesLastYear değerinide yukardaki gibi yapıyoruz. Design ekranında raporumuz aşağıdaki gibi gözüküyor.

SSRS-321

Run diyerek, her iki yılın satışlarının ortalama çzigilerine bakıyoruz.

SSRS-322

Trend çizgisi eklemek içinde, Add Calculated Series’ten Moving Avarage seçiyoruz. Burada period olarak 1 seçilir ise, her kolonda trend çizgisini tekrar eder, çok fazla veri olan bir grafikte, perioda daha fazla değer atanabilir.

SSRS-323

Run diyerek raporu çalıştıyoruz. Trend çizgisi yeşil olarak grafikte gözükmektedir, period 2 olduğu için, 2. Kolondan sonra başlamıştır.

SSRS-324

1-3 Pasta Grafikler:

    Dilim veya pasta grafik diye adladırılan grafikleri Reporting Service’te de görmek mümkün. Her veriyi kolon grafiklerde göstermek zor olabilir, daha anlaşılır ve daha basit anlatımlar için pasta grafikler tercih edilebilir. Pasta grafikler herkes tarafından bilinmektedir fakat doğru zamanda kullanılmaktadır. Karşılaştırılmalı verileri sunulacak ise pasta grafikler doğru bir tercih olabilir.

Örneğimiz için yeni bir rapor oluşturalım, Data Source olarak paylaşılan Adventureworks data source’unu ekliyoruz. Dataset olarak da, Sales tablosundaki IndividualCustomer-Bireysel Müşterleri view’ını kullanacağız. Hangi ülkeden kaç tane müşteri olduğunu gösteren bir pasta grafiği yapacağız.

Add dataset dedkten sonra, dataset properties ekranında Query Designer’ı açıyoruz. BusinessEntityId ve CountryRegionName alanlarını seçiyoruz. BusinessEntityId alanında Count yani saymasını, CountryRegionName alanında ise Group by yani gruplamasını istiyoruz. Selected Fields alanından “Aggregate” kısmından count ve group by düzenlemelerini yapabiliriz.

SSRS-325

Run Query’e tıklayarak sorgumuzu çalıştırıp kontrol ediyoruz.

SSRS-326

Verisetimizi oluşturduk. Insert menüsüne gelerek, bu sefer sihirbaz olmadan grafiğimizi oluşturalım, Insert – Chart –Insert Chart

SSRS-327

Grafik ikonu çıktıktan sonra, design alanın boş bir yerine tıklıyoruz. Karşımıza Chart Type ekranı çıkıyor. Shape sekmesinden Pie veya 3-D Pie’yı seçiyoruz. Seçile grafik türü daha sonra değiştirilebilmektedir.

SSRS-328

Grafik design ekranına geldi, sağ alt köşesinden sürükle bırak ile grafiğin boyutunu büyütüyoruz.

SSRS-329

Bu aşamaya kadar pasta grafiğimiz ile veriseti arasında bir bağlantı mevcut değil. Grafik oluşturduğumuzda otomatik olarak veriseti ile grafik arasında otomatik bir bağlantı oluşmamaktadır. Grafiğin üzerine tıklayarak Chart Data penceresi açılmaktadır, bu pencere üzerinden grafikte gösterilecek veri alanlarını seçebilmekteyiz. Grafiklerdeki veriler mutlaka sayısal değerler olmalıdır, metinsel değerleri seçince grafik çalışmayacak ve rapor hata verecektir.

Yukardaki bilgiler doğrultusunda, verisetine baktığımızda, hangi alanların sayısal hangi alanların metinsel olduğunu karar verip, grafiğe atanacak alanları belirlemeliyiz. Anlaşılması kolay olsun diye iki tane alanımız var, birisi Ülke isimleri diğeride Müşteri ID numaralarının olduğu alan, müşteri ID numaralarını Count yardımı ile toplam sayısını elde etmiştik. Grafiğe sayısal değer olan Count_BusinessEntityID alanını Values içine sürükle bırak ile getiriyoruz.

SSRS-330

Müşteri sayısını ülke bazında yapacağımızda Category Groups alanınada CountryRegionName’i sürükleyip bırakıyoruz.

SSRS-331

Raporu “Run” ile çalıştırıp pasta grafiğine bakalım.

SSRS-332

Rapor sorunsuz bir şekilde çalıştı ve pasta grafiğimiz oluşmuş oldu. Varsayılan olarak sayısal değerler pasta grafiğin üzerinde gelmemektedir. Grafik üzerinde sağ tıklayıp “Show Data Labels” diyerek değerleri grafiğe getirelim.

SSRS-333

Veri etiketleri varsayılan olarak ufak gelmektedir, görsel olarak etiketleri büyütmek için, bir tane veri etiketini seçiyoruz. Birini seçince diğerleri de otomatik olarak seçilmiş oluyor. Etiketleri seçtikten sonra sağ tıklayarak Series Lable Properties özellikler ekranını açıyoruz.

SSRS-334

Font sekmesinde puntoyu büyütüp, istediğimiz fontu seçebiliriz.

SSRS-335

Run diyerek raporun son haline bakıyoruz.

SSRS-336

Pasta grafiklerde genel olarak bizden yüzdesel değerler istenmektedir. Yüzdesel olarak değerleri göstermek için, Series label propeties’i açıyoruz. Burada dikkat edilecek husus, grafiğin properties’i değil değerlerin olduğu series’in properties’idir. SSRS-334 teki properties ekranını açalım.

General sekmesinde, label Data alanından #PERCENT yani yüzde olan değeri seçiyoruz.

SSRS-337

Percent olarak seçtikten sonra karşımıza, veriler doğru yapılandırılmamış ise False değer döndüreceğini bildiren bir uyarı geliyor. Evet diyerek burayı geçiyoruz.

SSRS-338

Series label’ın rengini de beyaz olarak değiştirelim. Run diyerek raporu çalıştıyoruz.

SSRS-339

Yüzdesel olarak değerleri hesaplayarak pasta grafik üzerine getirilmiş oldu. Müşteri sayılarının yüzdesini bulmak için normalde, kendimizin hesaplaması gerekiyordu, pasta grafiği kullanmanın bir avantajı da bu gibi hesaplamaları otomatik olarak yapmasıdır.

2- SPARKLINES:

    Sparkline’lar çizgisel küçük grafiklerdir. Bilinen çizgi grafiklerinden farklı olarak üzerilerinde veri etiketleri olmaz. Çoğunlukla veri karşılaştırılmalarında kullanılırlar, genellikle toplam sutünunun sağ tarafında yer alırlar. Veri noktalarını yakalamada veya trendlerin yükselip azaldığını göstermek için kullanılırlar.

    Yeni bir boş rapor oluşturarak, sparkline’nın kullanım örneklerine bakalım. Data source olarak paylaşılan veri seti AdventureWorks’ü seçiyoruz.

SSRS-340

Dataset olarakta, sales veritabanından SalesOrderHeader tablosundaki orderdate – sipariş tarihi ve totaldue – satış toplamı alanlarını alacağız.

Datasets – Add Dataset – Query sekmesi – DataSource’u seçiyoruz – Query Designer’ı açıyoruz. SalesOrderHeader tablosundaki OrderDate ve TotalDue alanlarını seçiyoruz.

SSRS-341

Run query diyerek sorguyu kontrol etmeyi unutmuyoruz. TotalDue – toplam tutar kısmında gruplamayı Sum ile OrderDate kısmında ise Grouped by ile yaptıktan sonra sorguyu çalıştıralım.

SSRS-342

Gruplama yapmamıza rağmen çok fazla veri getirdi. Yıllara göre bir gruplama yaparsak eğer daha özet bir verimiz olur. Görüldüğü gibi SalesOrderHeader tablosunda yıl alanı yok, sadece tarihlerle ilgili alanlar var. TSql’de uzun bir tarih formatından, o tarihin gün, ay, yıl, hafta gibi bilgilerini seçebilir ve bu bilgilere göre de gruplama yapabiliriz.

Tarihten yıl ve ay bilgisini ayırmak için biraz transact sql bilgisine ihtiyacımız olacak. Query ekranında “Edit as Text” butonuna basarak Sql kodumuzu açıyoruz.

SSRS-343

Select’ten sonra bir boşluk bırakarak YEAR – yıl ve MONTH – ay ile ilgili alanı aşağıdaki gibi yazıyoruz. AS ile alanlarımıza istediğimi takma isimleri veriyoruz.

SSRS-344

Üstteki kırmızı ünlem işareti Run Query veya Excecute anlamına gelmektedir, ünleme basıp sorguyu çalıştırıyoruz.

SSRS-345

Yıl ve ay bazında satışları gelmiş oldu. Veriler geldi fakat dağınık bir şekilde geldi, hem gruplama hem de sıralama işlemini sql kodu üzerinden yapmaya devam edelim. GROUP BY ve ORDER BY kısımlarına aşağıdaki gibi kodumuzu yazıyoruz.

SSRS-346

Veriler hem gruplandı hem de küçükten büyüğe sıralanmış oldu.

Insert menüsünden Data Visualizations – Sparkline butonua basarak yeni bir sparkline ekliyoruz.

SSRS-347

Sparkline’nın boyutunu ayarladıktan sonra, “Select Sparkline Type” ekranı otomatik olarak çıkmaktadır. Bu ekrandan line olan tipi seçiyoruz.

SSRS-348

Sparline üzerinde sağ tıkladığımızda bir menü ve Chart Data ekranları açılmaktadır. Chart data ekranında sparkline’nın hangi verileri alacağı ve hangi alanlara göre kategori edileceğini belirtebiliriz.

Satış alanını değer alanıdır, bu alanı Values kısmına, Yıl ve ay alanını da Category Groups alanlarına sürükleyip bırakıyoruz.

SSRS-349

Sparkline tek başına bir anlam ifade etmediği için, yıl ve aylara göre satış raporunu bir matrix tablosunda gösterelim. Bunun için Insert menüsünden Matrix – Insert Matrix’i seçiyoruz.

SSRS-350

Rows kısmına Yıl’ı

Columns – Ay

Data – Satış alanlarını sürükleyip bırakıyoruz.

Raporun son hali aşağıdaki gibi olacaktır, satış alanında Sum(Satış) otomatik olarak oluşuyor. Aylık satışları yıllara göre getirecek.

SSRS-351

Run diyerek raporu çalıştıyoruz.

SSRS-352

2008 yılı 6. Aydaki en yüksek satış rakamından sonra 7. Aydaki sert düşüş sparkline’a yansımış durumda. Sparkline’ı hazırlarken tüm yılları bütün olarak seçtiğimiz için tek bir sparkline oluşmuş oldu, istenirse her yıl için ayrı ayrı sparklinelar yapılabilir.

3 – DATABARS:

    Datarbarlara veri göstergeleri de diyebiliriz, tek bir veri alanını gösteren grafiklerdir. Bardağın dolu ve boş tarafını gösteren deyimlere benzerler. Data barın renkli kısmı veri olan kısım, diğer kısım ise boş olan kısımdır. Databarlar grafiği oluştururken atandığı alan üzerindeki verilerin tümüne bakarak kendisi üst limit belirler, bu üst limite göre grafiğin doluluk oranını kendisi ayarlar.

Sparkline raporunda şekil SSRS-352’de ay bazın 4 senenin satışlarını göstermiştik, eğer bunu databar olarak göstermek isteseydik, aşağıdaki adımları uygulamamız gerekecektir.

Sparkline raporu üzerinden gidelim, raporu Save as ile farklı kaydedip, adına Databar Raporu diyelim.

Tablix üzeriden en sağdaki kolonun üzerinde sağ tıklayıp, Insert Column – Outside Group Right – tablixin sağına grup dışında bir kolon ekliyoruz.

SSRS-353

Insert menüsünden Databar’ı seçip, yeni oluşturduğumuz alana tıklıyarak databar’ı bu alanda oluşturuyoruz.

SSRS-354

Databarı boş hücrede oluşturduktan sonra Select Data Bar Type ekranı çıkıyor, bu ekrandan bar olanı seçiyoruz.

SSRS-355

Bu şekilde bırakırsak, raporu çalıştırdığımızda boş gelecektir, databar’ın üzerine bir kere tıklayarak Chart Data ekranını açıyoruz.

SSRS-356

Raporun veri kısmı satış verilerinden oluştuğu için Values kısmında artı işaretine tıklayarak Satış alanını values alanına atıyoruz.

SSRS-357

Run diyerek raporu çalıştırıp databarları kontrol edelim.

SSRS-358

Databarlar yıl toplamlarına göre gelmiş oldu, 12. Aydan sonra bir toplam alanı almış olsaydık, databar grafiği gene aynı çıkacaktı, databar kendisi otomatik olarak satışları yıl bazında toplayarak getirmiş oldu.

Ay bazında bir databar grafiği istersekte, row olarak grup dışında bir alan açarak yapabiliriz.

Tüm satış verilerini databar olarak görmek istediğimizde ise, Insert – Databar’ı direk satış alanının üzerinde sürükleyip bıraktığımızda, rapordaki tüm sayısal değerler grafik databar olarak gösterilecektir.

SSRS-359

Run diyerek raporu çalıştıralım.

SSRS-360

En yüksek değer oaln 2008 yılı haziran ayı değerine göre tüm değerlerin databar grafiğini çıkarmış oldu. En düşük değer olan 2008 yılı temmuz ayı da çok küçükte olsa gösterilmiş oldu.