SQL SERVER REPORTING SERVICES – Bölüm 3

7 – PARAMETRELER:

    Şu ana kadar oluşturduğumuz raporlarda parametre belirtmeden yaptık. Çoğu zaman raporlar için parametre diğer bir deyişle koşullar belirterek raporu almamız gerekecektir. Reporting Service de parametreler nasıl oluşturulur bunlara değineceğiz.

    Parametreler, metin, sayı ve tarih gibi kriterlere göre belirlenebilir. Bir veya birden fazla parametreyi raporumuza ekleyebiliriz. Örnek olarak, x malzemesini 2005 yılının Ocak ve Mart aylarında kaç tane ve toplam satış tutarını seçebileceğimiz parametreler olabilir.

    Parametleri VS Data Tools ile eklerken Query ekranında WHERE koşulu kullanacağız. Report Builder ile biraz daha son kullanıcıya hitap eden, filter alanından parametreleri ekleyeceğiz. Her iki arayzüz için örnek vereceğiz.

Yeni bir rapor oluşturuyoruz. Solution Explorer – Reports – Add New Reports

Data Source ekranında Edit diyerek, AdventureWorks2012 veritabanını seçiyoruz.

Design the query ekranında Query Builder’ı açıyoruz.

Üst kısımdaki boşlukta sağ tıklayarak Add Table diyoruz.

Product (Production) tablosunu ekliyoruz.

SSRS-162

ProductID, Name, Color ve ListPrice alanlarını seçelim. Aliasları aşağıdaki şekildeki yazıyoruz.

SSRS-163

Tabular seçili olarak kalıyor, devam ediyoruz.

Desing the table ekranında tüm alanları details kısmına ekleyip devam ediyoruz.

SSRS-164

Herhangi bir stil seçiyoruz.

Rapor adı yazıp, Finish ile tasarım ekranına geliyoruz.

Raporumuz oluştu, Datasets altında Dataset1’e sağ tıklayıp Query penceresini açıyoruz.

SSRS-165

Sorgu kutusuna FROM bölümünün altına WHERE koşulunu yazacağız. ProductID numarasına göre parametre vermek istediğimiz için ilk önce parametre verilecek alan adı, sonra parametre koşulu ( =, <, >, LIKE v.b.), en sona da parametre ismini yazacağız (@Parametreadi).

SSRS-166

Sorguyu kontrol etmek için Execute dediğimizde karşımıza parametre soran bir ekran getirecektir.

SSRS-167

Ok diyerek Query desinger ekranını kapatıyoruz.

Parameters kısmına baktığımızda, oluşturduğumuz parametrenin geldiğini görüyoruz.

SSRS-168

Raporu çaıştırdığımızda, parametre kutusu gelmektedir, bu alana parametreyi yazarak istediğimiz Urun ID yi yazarak çalıştırıyoruz.

SSRS-169

7 – 1 Çoktan Seçmeli Parametreler:

Bu şekilde parametreli olarak rapor almak için, Urun ID sini ezbere bilmemiz veya bir listeden bakmak gerekiyor. Çoktan seçmeli olarak parametreleri ayarlayabiliriz. Bunun için bir dataset daha ekliyoruz, bu dataset te ProductId ve İsimleri bulunacak.

Datasets – New Dataset

Dataset ismine KategoriveNo diyoruz. Eğer dataset isimlerine anlamlı bir isim vermez iseniz, daha sonradan birden çok datasetle çalıştığınızda karmaşıklık olacaktır.

DataSource1’i seçiyoruz.

SSRS-170

Query Designer’ı açıp, en üstteki alanda sağ tıklıyoruz, Add table’dan, ProductCategory (Production) tablosunu ekliyoruz.

SSRS-171

ProductCategoryID ve Name alanları seçip, Ok ile devam ediyoruz.

SSRS-172

Dataset Properties ekranında Ok ile çıkıyoruz. Datasets altına diğer dataset KategoriveNo geldi. Şimdi parametremizin özelliklerine gidip, sorgudan parametre çekme işlemini yapacağız.

SSRS-173

Report Parameter Properties – Available Values sekmesinde Get Values From a Query’i seçiyoıruz.

Dataset olarak KategoriveNo

Value Field ProductCategoryID

Label Filed olarak ta Name’i seçiyoruz.

Burada label field kısmına Name (isim) seçmemizdeki amaç, ID nolarına göre değil de, kategori isimlerine göre parametreleri seçmek istememizdir, daha öncede belirtiğimiz gibi, Id numaralarını ezberlemek veya farklı bir yerden bakmak yerine, akılda kalıcı olan isimleri parametre olarak kullanmak daha mantıklı olacaktır.

SSRS-174

Preview ile raporumuzu aldığımızda, parametre olarak kategori id leri yerine kategori isimleri geldi.

SSRS-175

7-2 Tarih Aralıklı Parametreler:

En çok gereken parametrelerden biridir, tarih aralığı raporlarda en fazla istenen parametredir.

Yapacağımız örnekte, 3 farklı tablodan veriler getirip, bu verileri tarih parametresi ile rapora nasıl yansıtacağımızı göreceğiz.

Solution Explorer- Reports – Add New report, hoşgeldin ekranını geçiyoruz.

Datasource’u ayarlıyoruz, yukarıda verisetlerinin detaylı anlatımı olduğundan her defasında detaya girmiyorum.


SSRS-176

Desing The Query – Query Builder

Üstteki alanda Add Table kısmından; SalesOrderHeader (Sales) – SalesOrderDetail (Sales) ve Product (Production) tablolarını ekliyoruz. SalesOrderID alanları otomatik olarak eşleşti, Product tablosu ile de ProductID alanı eşleşti.

SalesOrderHeader tablosundan, SalesOrderNumber, OrderData, ShipDate ve TotalDue alanlarını,

SalesOrderDetail tablosundan, OrderQty ve ProductID alanlarını,

Product tablosundan da, Name ve ProductNumber alanlarını seçiyoruz.

Alias takma isimleri aşağıdaki gibi düzenliyoruz ki raporda sütun başlıkları anlaşılır bir şekilde gelsin.

SSRS-177

Report Type’ı tabular seçiyoruz.

Design The Table ekranında, UrunNo’ya göre gruplama yapalım, geri kalan alanları Details bölümüne yerleştiriyoruz.

SSRS-178

Table Layout stepped olarak bırakalım.

Herhangi bir style seçip devam ediyoruz.

Rapora bir isim verip Finish ile sonlandırıyoruz.

Raporumuz UrunNo gruplu bir şekilde oluştu. Preview diyerek çalışıp çalışmadığını kontrol edelim.

SSRS-179

Tarih aralıklı parametremizi atamadan önce Sipariş ve Sevk Tarihini kendi bölgemizde kullandığımız şekilde, Gün/Ay/Yıl olarak ayarlayalım. Bunun için Tarih alanının üzerinde sağ tıklayarak Text Box Properties ekranını açıyoruz.

SSRS-180

Sayısal olarak istediğimiz Gün/Ay/Yıl formatı gözükmüyor. 01/31/2000 tipini seçiyoruz, daha sonra Category kısmındaki Custom’a tıklıyoruz. Aşağıdaki şekilde gösterdiği gibi, MM ile dd nin yerlerini değiştirecek şekilde düzenlemeyi yapıyoruz.

SSRS-181

Aynı işlemi Sevk Tarihi içinde yapıyoruz. Preview yaptığınızda tarihlerin gün-ay-yıl olarak geldiğini göreceksiniz.

Tarih parametresi eklemek için Dataset – Dataset üzerinde sağ tıklayarak Query penceresini açıyoruz.

SSRS-182

Sorgunun FROM kısmından sonra WHERE koşulu yazarak tarih parametresi ekleyeceğiz.

WHERE (Sales.SalesOrderHeader.ShipDate BETWEEN @BasTarih AND @BitisTarih) Where koşulunu sorgu alanına ekledikten sonra, kontrol amaçlı sağ tıklayarak Execute SQL diyoruz.

SSRS-183

Koşulu yanlış yazsaydık eğer hata verecekti, Query Parameters ekranı açıldı. 2005 yılına ait satışları sorgulamak için BasTarih’e 1.1.2005 BitisTarih’e de 31.12.2005 yazalım.

SSRS-184

Sonuç ekranına 2005 yılına ait satışlar geldi, parametrelerimiz ve sorgumuz düzgün çalışıyor.

SSRS-185

Şimdi desing ekranına gelelim, preview ile raporu çalıştıralım. Görüldüğü gibi, tarih alanları text olarak geldi, bu şekilde tarih yazmak uzun sürecektir.

SSRS-186

Takvim üzerinden tarihi seçmeli yapmak, hem görsel açıdan hem de kullanım açısından daha iyi olacaktır. Parameters alanından BasTarih parametresinin özelliklerine giriyoruz.General sekmesinde aşağıdaki şekildeki gibi Data Type’ı Date/Time seçiyoruz.

Raporda gözüken isminide Prompt kısmından değiştiriyoruz.

SSRS-187

Aynı işlemi BitisTarihi parametresi içinde yapıp, preview ile raporu çalıştırıyoruz.

Parametrelerin yanına takvim butonları otomatik olarak eklendi, takvim ekranları sayesinde istediğimiz tarihi kolay seçebiliyoruz.

Ocak – Aralık 2007 arası tarihi seçtikten sonra raporu çalıştıyoruz.

SSRS-188

 

7 – 3 Report Builder’da Parametre Ekleme:

Report Builder’da nasıl parametre eklenir buna bakacağız. Boş bir rapor açıyoruz. Datasource’u Adventureworks2012 olarak ayarladıktan sonra, Dataset’i aşağıdaki şekildeki ayarlıyoruz. Product ve ProductInventory alanlarından istediğimiz alanları seçiyoruz.

SSRS-189

Relationships sekmesi en sağdaki aşağı bakan oklara basarak genişlettiğimizde, her iki alanda da ProductID alanı ortak alan olduğundan ve AutoDetect seçili durumda olduğu için, iki tabloyu otomatik olarak birleştirdi, eğer ortak bir alan olmaz ise bu işlemi kendimiz yapmalıyız.

SSRS-190

Parametre atama işlemini Applied filters kısmından yapıyoruz. Filtre ikonuna tıkladığımızda otomatik olarak algıladığı ortak anahtar alanını filtre olarak bizlere getirecek.

SSRS-191

Bu alanda en sağda Parameter kutusunu işaretlediğimizde, bu filtre artık parametre olarak çalışacaktır. Value kısmında da istersek varsayılan bir değer atayabiliriz. Raporu her aldığımızda ilk önce bu varsayılan değere göre rapor alır, daha sonra istediğimiz parametre girerek yeniden View Report dediğimizde istenen değere göre verileri getirir. Örnek verirsek, varsayılan olarak geçen senenin raporu ilk önce gelsin diye bir istek gelebilir, Value kısmına 2013 yazarak ilk önce geçen senenin verilerinin getirilmesini sağlayabilirsiniz.

SSRS-192

Dataseti oluşturduk, boş rapor ekranında, Insert menüsünden Table Wizard ekliyoruz.

SSRS-193

Choose a Dataset ekranında oluşturduğumuz Dataset1’i seçip devam ediyorız.

Details kısmına alanları aşağıdaki ekleyip devam ediyoruz.

SSRS-194

Choose a layout ekranında seçenekler pasif geldi, çünkü satır veya kolon tarafında bir gruplama yapmadık.

Herhangi bir style seçip devam ediyoruz. Rapor oluştu, parameters klasörünü altına parametremiz geldi.

SSRS-195

 

8 – VERİLERİ SIRALAMA – İNTERAKTİF SIRALAMA:

    Raporların daha okunabilir olması için verilerin büyükten küçüğe veya küçükten büyüğe sıralanması gerekmektedir. Reporting service’te veriler ister Query ekranında Order by koşulu ile, istersek de Tablo özelliklerinden Sorting bölümünden sıralmasını yapabiliriz. Ayrıca rapor çalıştıktan sonra da interaktif olarak rapor başlıklarına atanan butonlar ile interaktif sıralama yapabiliriz.

8 – 1 Tablo İçerisindeki Verileri Sıralama:

    Tablo içindeki verileri sıralamak için ilk önce AdventureWorks veritabanındaki Person tablosundan isim ve soyisimleri kapsayan basit bir rapor hazırlayalım.

Yeni rapor dedikten sonra, Query ekranında Person (Person) tablosunu ekleyerek alanları aşağıdaki gibi ayarlıyoruz.

SSRS-196

Tabular rapor olarak seçip devam ediyoruz, Desing the table ekranında üç alanıda detail bölgesine getiriyoruz. Rapora isim verip, tasarım ekranına geliyoruz.

Preview yaptığımızda isimlerin karışık bir şekilde geldiğini görüyoruz.

SSRS-197

Tablix özelliklerini açmak için, tablonun üzerine bir kere tıkladıktan sonra, sol ve üst tarafta açılan kenarların köşesinden sağ tıklayıp, Tablix Properties penceresini açıyoruz.

SSRS-198

Sorting sekmesine gelip, Add ile boş bir alan ekliyoruz. Hangi alana göre sıralama yapılacak ise Sort by kısmından ilgili alanı seçiyoruz. Sıralamanın büyükten küçüğe olması için Order kısmında Z-A olarak, küçükten büyüğe olacak ise A-Z olarak seçiyoruz.

SSRS-199

İsime göre küçükten büyüğe sıralamayı oluşturduk.

SSRS-200

8 – 2 İnteraktif Sıralama:

    İnteraktif sıralama, raporu çalıştırdıktan sonra veri kolonlarını sıralamayı sağlayan rapor içi çalışan bir özelliktir. Üst tarafta oluşturduğumuz personel isimleri raporu üzerinde interaktif sıralamayı görelim.

    Reporting Service’te tablixlerin içindeki hücrelere bir kere tıkladığınız da Textbox’ı seçer, ikinciye tıkladığınızda da Selected Text yani hücre içindeki yazıları seçer. İnteraktif sıralama yapmak için, bir kere tıklayarak Textbox’ı seçmemiz ve sağ tıklayarak Text Box Properties özellikler penceresini açmamız gerekmektedir. HÜcreye yanlışlıkla iki kere tıkladıktan sonra sağ tıklama menüsü değişir.

    Name Text box’ına sağ tıklayarak Text box Properties özellikler ekranını açıyoruz.

SSRS-201

Interactive sorting sekmesinde, Enable interactive sorting on this textbox seçeneğini işaretliyoruz. Sort by kısmından da ilgili alanı seçiyoruz. Bu sıralamanın diğer tablo ve verisetlerini de kapsamasını istiyorsak aşağıdaki Apply this sorting to all groups and data regions in seçeneğinden ayarlamamız gerekiyor.

SSRS-202

Aynı işlemi soyadı alanı içinde yapıyoruz.

Preview ile raporu çalıştıralım, ad ve soyad alanlarının yanında yukarı ve aşağı doğru sıralama butonları geldi. İsime göre büyükten küçüğe sıralama yapalım.

SSRS-203

Soyadına göre küçükten büyüğe sıralama yapmak için Soyad’ın yanındaki butona tıklıyoruz.

SSRS-204

9 – BAĞLANTILI RAPOR OLUŞTURMA:

    Reporting Service raporlarında bir rapordan diğerine bağlantı vererek, raporlar arası geçiş yapılabilmektedir. Özet bir tablo üzerindeki satırlardan, her bir satırdaki verinin bağlı olduğu detaylı rapora ulaşmak mümkündür. Text box özelliklerinden Action menüsündeki Go to Report seçeneği kullanılarak diğer rapor geçiş sunmaktadır. Bir örnek ile daha detaylı anlamaya çalışalım.

    Solution Explorer – Reports – Add new reports.

    Dataset olarak Adventureworks veritabanını seçiyoruz.

    Query Designer – Add Table ProductCategory (Production) tablosunu ekleyip, ProductCategoryID ve Name alanlarını seçiyoruz.

SSRS-205

Report Type – Tabular

Design the table – Sadece name kısmını detail bölümüne getirip devam ediyoruz.

Table Style – Generic seçiyoruz

Rapor ismi veriyoruz – Finish

Kategoriler raporu olarak ana ürün kategorileri raporunu oluşturduk.

SSRS-206

Preview ile raporu çalıştırıp, kontrol edelim.

SSRS-207

Name alanına sağ tıklayıp, Text box özelliklerini açıyoruz. Action sekmesinden “Go to Report” seçeneğini seçip, daha yapmış olduğumuz Parametreli Raporu seçiyoruz.

SSRS-208

Use the parameters to run the report bölümünde Add diyerek, yeni bir parametre ekliyoruz. Eğer burada parametre eklemez isek, bağlantılar çalışmayacaktır. Bu parametrelere göre ikinci rapor bağlantıları çalışacaktır. Name kısmında UrunID, parameter kısmında ise ProductCategoryID yi seçiyoruz.

SSRS-209

Raporu preview ile çalıştırdığımızda, görünüşte bir fark olmadı. Kategorilerin üzerine gelince tıklanabilir özelliği aktif oldu. Kategoriler tıkladığımızda karşılık gelen parametreli rapor otomatik olarak açılıyor.

SSRS-210

Kategorilerin tıklabilir olduğunu daha iyi gösterebilmek için, web Url görünümünde, karakter rengini mavi ve alt çizgili olarak ayarlıyoruz.

SSRS-211

Kategorilerin son halini görmek için previewi çalıştırıyoruz.

SSRS-212

10 – REPORT PARTS:

    Report partlara rapor parçaları da diyebiliriz. Oluşturduğumuz raporlardaki tablo, rectangle, parametreleri v.b. publish (yayınla) yöntemi ile, farklı raporlarda da kullanabilmemizi sağlayan bir özelliktir.

    Örnek olarak, fatura üzerinde adres bilgisi içeren bir textbox’ı irsaliye ve diğer raporlarda da kullanabilmeniz için, bu adres textbox’ını report parts’a publish ederek diğer tüm raporlarınıza çağırıp kullanabilirsiniz. Daha önce oluşturduğunuz bir tabloyu farklı bir raporda da kullanmak için, tabloyu tekrardan kullanmanıza gerek kalmadan report part’tan kullanabilirsiniz.

    Birbirine benzer raporlar yapmaya başladığınızda çok sık kullanacağınız bir özelliktir. Rapor oluşturma sürecinde sizi hata yapmaktan ve zaman kaybından kurtaracaktır.

    Report part’tan eklediğiniz bir nesnenin, datasource ve dataset’i otomatik olarak oluşur, tekrardan datasource ve dataset eklemenize gerek kalmaz.

    Report partlar, Reporting Service’in Report Manager dediğimiz web arayüzünden açılan, “Report Builder” programı ile açılır, makalenin başında Report Builder ile örnekler vermiştik. Report partlarda Report Builder programı ile oluşturulduğu için Report partlar nasıl oluşturulur, nasıl kullanılır örneklerle anlatmaya çalışalım.

Report Builder programını açıyoruz. Şekil SSRS-58.

Daha önce oluşturduğumuz parametreli raporu open ile açıyoruz.

SSRS-213

SSRS-214

Raporun sağ tarafına adres bilgisi içiren bir textbox ekliyoruz.

SSRS-215

Menü butonuna tıklayarak, Publish Report Parts’ı açıyoruz.

SSRS-216

Karşımıza iki seçenek geliyor, “Publish all report parts with default settings” tüm rapor bölümlerini varsayılan ayar kullnarak yayınla. Diğer seçenek, “Review and modify report parts before publishing” rapor bölümlerini gözden geçirip ve düzenleyip yayınla seçeneği geliyor. İkinci seçenek ile devam edeceğiz, hangi bölümleri alacağımıza karar verip daha sonra yayınla diyeceğiz.

SSRS-217

Yayınlanacak bölümler ekrana geliyor, fakat burada adres textbox’ı gelmedi. Textbox’lar tek başlarına report part olamazlar. Report olabilmeleri için Rectangle içinde Insert – Textbox diyerek oluşturulmaları gerekmektedir.

SSRS-218

Adres alanında gelmesi için Close diyerek Report parts ekranını kapatıyoruz. Insert – Rectangle diyoruz, rectangle’ın içinde sağ tıklayarak Insert – Textbox diyerek adres alanını bu textboxın içine yazıyoruz.

SSRS-219

Tekrardan publish report parts – review and modify parts bölümüne gidiyoruz. Adres textbox’ı report parts olarak geldi.

SSRS-220

Report part isimlerinin yanında oka tıklayarak açıklama bölümünü ve report partı hangi klasöre kaydeceğimizi seçebileceğimiz ekranı açıyoruz. Report part hakkında bir açıklama yazarak daha sonra hatırlamansı kolay olacaktır.

SSRS-221

Publish diyerek report partları servera yüklüyoruz. Sorunsuz bir şekilde publish edildi, report partların ikonları değişti, puzzle parça ikonuna benzer bir ikon eklendi.

SSRS-222

Report partları yükledik, şimdi report partları nasıl kullanırız bunu görelim. Sol üstteki menü butonuna tıklıyoruz,New diyerek yeni bir blank-boş rapor oluşturalım.

SSRS-223

Insert sekmesine gelerek, Report Parts’a tıklıyoruz. Yan tarafta Report Part Gallery açıldı.

SSRS-224

Çok fazla report part olacağı düşünülerek, arama kutusu konulmuş, Report Part Gallery ilk açtığımızda daha önce kaydettiğimiz report partlar gelmiyor. Tüm report partları görmek istiyorsak arama butonuna tıklayarak hepsini getirebiliriz veya aradığımız report partın adını girersek ilgili report part gelecektır. Arama butonuna tıklayarak tüm report partları getirelim.

SSRS-225

Tüm report partlar geldi, table1 ve Rectangle3-adres nesnesini sürükleyip raporun içine bırakıyoruz.

SSRS-226

Table report partını sürükleyince, otomatik olarak Datasource ve Dataset oluşmuş oldu. Run’a tıkladığınızda raporun çalıştığını göreceksiniz. Report parttaki nesnelerde bu bilgiler olduğu için, tekrardan oluşturmaya gerek kalmıyor. Report partlar benzer rapor oluşturmada veya benzer nesnelerin kullanıldığı raporlarda kullanıcılara zaman kazantırmakla beraber hata yapma olasılığını da en aza indirgemektedir.

 

 

11 – SUBREPORTS:

 

    Subreports alt rapor anlamına gelmektedir. Rapor içine daha önce oluşturulmuş bir raporu ekleyebilmenize imkan verir. Daha önce yapılmış bir raporu, yeniden oluşturmak yerine subreport seçeneği ile yeni rapora dahil edip kolaylık sağlamaktadır.

    Subreport nasıl eklenir, nasıl kullanılır açıklmaya çalışalım.

Yeni bir blank report oluşturuyoruz.

SSRS-227

AdventureWorks data source’unu oluşturuyoruz.

SSRS-228

Dataset olarak Production – ProductCategory tablosundan ProductCategoryID ve Name alanlarını ekliyoruz. Kontrol amaçlı Run Query’e tıklayıp, sonuçları aşağıda görmemiz gerekiyor.

SSRS-229

Insert menüsüne gelerek rapora bir List ekliyoruz. List bulunduğu bölgedeki verileri sürekli olara sunan bir yapıya sahiptir, veri listeside diyebiliriz. List in alanını bir sayfa kadar geniş bırakırsak eğer her sayfaya bir kayıt gelecek şekilde ayarlar.

SSRS-230

Name alanını list içine sürükleyip bırakıyoruz. Yazı boyutunu biraz büyütüp, Bold yapıyoruz.

SSRS-231

Run diyerek, kategorilerin sayfada nasıl durduğuna bakıyoruz.

SSRS-232

Kategoriler arasında eşit seviyede aralık oluşturmuş olduk, bu boşluk kısma şimdi subreport ekleyeceğiz. Insert Subreport butonuna tıklıyoruz. Buton rengi turuncu oldu, Name alanının altına subreportu genişleterek ekliyoruz.

SSRS-233

Subreport alanını belirttik, önceden oluşturulmuş olan bir raporu subreport olarak belirtmemiz gerekiyor. Reporting service’te subreport mantığı bu şekilde çalışmaktadır. Eş zamanlı rapor oluşturup, birini subreport olarak ayarlanmasına izin vermiyor.

Subreport üzerinde sağ tıklayarak Subreport Properties – özellikler ekranını açıyoruz.

SSRS-234

Name kısmından subreport’a isim verebilirsiniz, birden çok subreport kullanılacak ise anlamlı bir isim vermek önemlidir.

“Use this report as a subreport” bölümünde “Browse”a tıklayarak, ekleyeceğimiz subreport’u seçiyoruz.

Daha önce kategorilerin olduğu parametreli raporu subreport olarak ekliyoruz.

SSRS-235

Daha önceden oluşturduğumuz parametreli raporu seçiyoruz.

SSRS-236

Properties ekranında Parameters sekmesine gelip, subreport’u çalıştıracak parametreyi ilişkilendiriyoruz. Ana rapor ile subreport arasında bir ilişki yok ise subreport çalışmayacaktır.

SSRS-237

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

SSRS-238

Rapor ana kategoriler üstte olmak üzere, altında da subreport gelmiş gözüküyor. Subreportlar daha önce hazır olan raporları kullandığından bizlere hız ve kolaylık sağlamaktadır, ayrıca karmaşık raporlarda tablo karışıklığınında önüne geçilmiş olur.

3. Bölüm Sonu