Merhaba arkadaşlar,
Bu yazımda SSRS’te parametre kullanarak rapor oluşturmaktan
bahsetmek istedim. SSRS’e yeni başlayanlar için faydalı olabileceğini düşündüm :)
Öncelikle her zamanki gibi AdventureWorks database ini
kullandım. Sql serverda çalışanlar bilirler. Bu meşhur database i internetten
indirip kurabilirsiniz. Exe yi çalıştırınca birden fazla adventureworks
veritabanı lokal server a kurulur. Sonrasında çalışmalarınızda bu databaseleri kullanabilirsiniz.
Sql Server 2008 R2 Business Intelligence Development
Studio’da yeni bir rapor oluşturarak işe başlayabiliriz. Raporda kullanılacak
datasource tanımlanır. Burada aşağıdaki şekilde görüldüğü gibi edit diyerek
işimizi kolaylaştırabiliriz.
Datasource tanımlandıktan sonra sGetParameters adında yeni
bir dataset oluşturulup, kullanılacak parametrenin name ve value kısmını
oluşturmak için text olarak sql sorgusu yazılabilir. Burada Table ya da Stored
Procedure gibi query type lar da mevcuttur. Gerekliliğe göre istenilen tercih
edilebilir.
Parametre için kullanılacak datalar sağlandıktan sonra,
kullanılacak parametre tanımlanır. Aşağıda görüldüğü gibi name ve prompt name
verilir. Burada Prompt kısmına ekranda kullanıcının raporda göreceği şekilde
parametre adı yazılır.
Parameter kısmında yapılması gereken sadece yukarıdaki gibi
name verilmesi değildir. Parametrede görünecek dataların name ve value ları da
tanımlanması gerekir. Bunun için de aşağıdaki gibi Available Values kısmında
datanın okunacağı query tanımlanır.
Burada dataset kısmına daha önceden oluşturduğunuz
sGetParameters verilir. Bu query de iki tane kolon kullanmıştık. Bu kolonlardan
Label field kısmına raporda görünmesi istenilen kolon yazılır. Burada Name
verdik. Bu şekilde kullanıcı Product Category isimlerini listeden seçecek.
Seçilen name leri datamızı alacağımız queryde kullanabilmemiz için Value field
kısmında o kolonun ID sini tutabiliriz. Bu şekilde ID ile datanın geleceği
query yi bağlayabiliriz.
Datayı alacağımız query yi de aşağıdaki şekilde yazdım.
SELECT
PC.Name
AS ProductCategoryName,
P.Name
AS ProductName,
P.Color,
P.SellStartDate,
P.SellEndDate,
P.Style
FROM Production.Product P
INNER JOIN Production.ProductSubcategory
PSC ON PSC.ProductSubcategoryID=P.ProductSubcategoryID
INNER JOIN Production.ProductCategory
PC ON PC.ProductCategoryID=PSC.ProductCategoryID
WHERE PC.ProductCategoryID=@ProductCategoryID
ORDER BY 1
Bu query için de dataset tanımlamak gerekli. Bunun için de
aşağıdaki şekilde dataset tanımladım.
Burada az önceki datasetten farklı olarak parametreyi almamız
gerekecek. Bunun için de Parameters kısmından Parameter Name alanına datasette
kullandığım parametre adını yazdım. Parameter Value kısmında ise daha önceden
tanımlanan parametreler listenir. Buradan da tanımladığım parametreyi seçtim.
Raporda design kısmında da istenilen şekilde toolbox tan
table oluşturarak gerekli kolonları sGetData datasetinden aldım.
Artık raporu çalıştırma vakti geldi :) Aşağıdaki şekilde raporun son halini
görebilirsiniz.
Herkese kolay gelsin :)
0 yorum:
Yorum Gönder