<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>C# kitabı &#187; Ad-Hoc Reporting</title>
	<atom:link href="http://www.ahmetkaymaz.com/wp-seo-link-holder_akaymaz.php/tag/ad-hoc-reporting/feed/?404;http://www.ahmetkaymaz.com:80/tag/ad-hoc-reporting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ahmetkaymaz.com</link>
	<description>SQL Server, C#, VB.NET, ASP.NET, AJAX ile ilgili örnek kitap ve ipuçları</description>
	<lastBuildDate>Mon, 26 Apr 2010 16:50:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sql Server Reporting Services &#8211; 7 / Report Builder</title>
		<link>http://www.ahmetkaymaz.com/2008/04/26/sql-server-reporting-services-7-report-builder/</link>
		<comments>http://www.ahmetkaymaz.com/2008/04/26/sql-server-reporting-services-7-report-builder/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 15:12:40 +0000</pubDate>
		<dc:creator>Ahmet Kaymaz</dc:creator>
				<category><![CDATA[SQL Server, Oracle]]></category>
		<category><![CDATA[Ad-Hoc Reporting]]></category>
		<category><![CDATA[Report Builder]]></category>

		<guid isPermaLink="false">http://www.ahmetkaymaz.com/?p=260</guid>
		<description><![CDATA[Bundan önceki makalelerde Report Designer, Sql Server Management Studio, Report Manager gibi araçlar kullanarak SQL Server Reporting Services ile ilgili senaryoları örneklendirdik. Bu senaryolar çoğu kullanıcıların rapor tasarlamaları gerekmeksizin sistem yöneticisi tarafından hazırlanmış olan standart raporlar aracılığıyla güncel verileri çekmesini sağlamaktadır. Microsoft son kullanıcıları da (masaüstü kullanıcılar, iş analistleri) unutmayıp SSRS&#8217;in Ad-Hoc Reporting (Anında raporlama) [...]]]></description>
			<content:encoded><![CDATA[<p>Bundan önceki makalelerde Report Designer, Sql Server Management Studio, Report Manager gibi araçlar kullanarak SQL Server Reporting Services ile ilgili senaryoları örneklendirdik. Bu senaryolar çoğu kullanıcıların rapor tasarlamaları gerekmeksizin sistem yöneticisi tarafından hazırlanmış olan standart raporlar aracılığıyla güncel verileri çekmesini sağlamaktadır. Microsoft son kullanıcıları da (masaüstü kullanıcılar, iş analistleri) unutmayıp SSRS&#8217;in <b>Ad-Hoc Reporting (Anında raporlama)</b> senaryosuna da desteklemesini sağlamıştır. İçerisine heterojen kullanıcıların bulunduğu kurumsal uygulamalar için hazırlanan Ad-Hoc Reporting, kullanıcıların anlık ihtiyaçlarına göre raporlama yapabilmeleridir. SSRS bu amaçla <b>Report Builder</b> isimli aracı sunar. Kullanıcılar bu araç sayesine farklı rapor türünde farklı kontroller kullanarak o anki ihtiyaca göre rapor tasarlayabilirler. Peki bu nasıl mümkün olacak.<span id="more-260"></span></p>
<p>Kullanıcıların anlık raporlama yapabilmeleri için rapor yöneticilerinin rapor modelleri (data model) tanımlamaları gerekir. Report Builder son kullanıcıların doğrudan VTYS&#8217;ye erişmesini engelleyip veritabanı yöneticisi tarafından  hazırlanmış olan data model isimli yapılar üzerinden rapor tasarımının yapılmasını sağlar. <b>Data Model</b>, DBA&#8217;lerin hoc reporting için uygun gördüğü tablo ve onlar arasındaki ilişkilerden oluşan kümedir. Data modelleri SQL Server Business Intelligence Development Studio aracılığıyla oluşturulur. Bununla ilgili bir örnek yapalım. VS.NET içerisinde &#8220;New Project » Business Intelligence Projects&#8221; bölümünden <b>Report Model Project</b> türünde bir proje oluşturalım. Projeye <b>Satislar</b> ismini verdim. Yeni bir proje oluşturulduğu zaman Solution Explorer içerisinde <b>Data Sources, Data Source Views</b> ve <b>Report Models</b> klasörleri hazır olarak gelir. </p>
<p><b>Data Sources</b> klasörü, veri kaynağı, bağlantı cümlesi gibi Report Builder aracının veritabanına bağlanması için gerekli bilgileri içerir. Veri kaynakları .ds uzantılı dosyalarda tutulur.</p>
<p><b>Data Source Views</b> klasörü veri kaynağının gösterdiği veritabanı içerisindeki tabloları, viewleri ve aralarındaki ilişkileri içerir. Data source view belgeleri .dsv uzantılı olarak tutulur.</p>
<p><b>Report Models</b> veri kaynağı üzerinden erişilen veritabanına ait metadatayı(üst-veriyi) içerir. Bir report model dosyası üretildiği zaman varlıkları, roller, kolon ve klasörler otomatik olarak oluşturulur. Model dosyaları .smdl olarak saklanır.</p>
<p>Solution Explorer içerisindeki Satislar projesindeki Data Sources klasörünü sağ tıklayıp &#8220;Add New Data Source&#8221; menüsünden yeni bir veri kaynağı oluşturalım. Lokaldeki SQL Server 2005&#8242;e bağlanıp <b>ETicaret</b> isimli veritabanını veri kaynağı olarak projeye ekledim. Aynı şekilde Data Source Views klasörünü sağ tıklayıp &#8220;Ad New Data Source View&#8221; menüsünden yeni bir görünüm nesnesi oluşturalım. Gelen ilk ekranda biraz önce oluşturduğunuz veri kaynağı seçelim. Bir sonraki ekranda table veya view nesnelerini seçelim. Aşağıdaki tabloları örnek olarak projeye dahil ettim.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_1.jpg"></p>
<p>&#8220;Report Models&#8221; klasörünü de sağ tıklayıp &#8220;Add New Report Model&#8221; menüsünü tıklayalım. İlk pencerede önceki adımda oluşturduğumuz data source view dosyasını seçelim. Bir sonraki ekranda varsayılan seçenekleri kullanarak rapor modelini oluşturalım.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_2.jpg"></p>
<p>Bu seçimleri yaptıktan sonra son ekrandaki Run düğmesini tıklayarak tüm varlık bilgisi ve ilişkiler üretilmiş olur. Aşağıdaki şekilde model için gerekli nesneler ve Alisveris varlığının öznitelikleri gösterilmiştir.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_3.jpg"></p>
<p>Bu aşamada rapor modeli oluşturuldu ancak son kullanıcının kullanımına açmak için deploy etmek gerekir. Data modeli sağ tıklayıp <b>Deploy</b> düğmesini tıklayarak modeli Reporting Services sunusuna dağıtalım. <i>http://localhost/Reports/</i> adresindan rapor sunucuna geçtiğimizde Models klasörünün altında ETicaret modelinin oluştuğunu görmüş oluruz.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_4.jpg"></p>
<p>Oluşturulmuş bu model üzerinde anlık raporlama yapmak için üst menüdeki <b>Report Builder</b> linkini tıklayalım.  Bu link <i>http://localhost/ReportServer/ReportBuilder/ReportBuilder.application</i> dosyasını yani Report Builder uygulamasını açacaktır. <i>Bu şekilde dışarından raporlama sunucusuna erişilmesi için IIS üzerinde ReportServer»ReportBuilder klasörüne anonymous erişim iznini verilmesi gerekir.</i>Report Builder, tipik WinForm uygulaması olduğu için kullanıcı uygulamayı doğrudan browser içerisinden çalıştırmak yerine makinesine kurarak kullanır. Fakat bu aracın ClickOnce destekli olması kullanıcı tarafındaki kurulum işletimini otomatikleştirmektedir. <i>ClickOnce teknolojisi Windows uygulamalarının web üzerinden kolay ve güvenli bir şekilde deploy edilmesini sağlar. </i> Nitekim Report Builder linkini tıkladığımızda ClickOnce kurulum ekranı çıkar.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_5.jpg"></p>
<p>İstemci tarafında .Net Framework 2.0&#8242;ın kurulu olması gerektiğini unutmamalıyız. Microsoft Report Builder aracının ilk ekranında sunucu üzerinde tanımlı model kaynakları görülür. Ayrıca dışarıdan veya doğrudan sunucu üzerindeki RDL dosyalarını da bu ekranda çalıştırabiliriz.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_6.jpg"></p>
<p>ETicaret modelini seçip &#8220;New Report&#8221; menüsünden yeni bir rapor tasarım alanı açalım. Bu tasarımın tipini <b>Report Layout</b> bölümüden Table, Matrix ve Chart olarak seçebiliriz. Örnek olarak Table seçeneğini seçtim.</p>
<p>Ekranın sol tarafındaki <b>Entities</b> penceresinde modele dahil edilmiş olan tabloların listesi görülür. Bu tablolardan birini seçtiğimizde alt taraftaki <b>Fileds</b> penceresinde o tablonun seçilmiş olan kolonları listelenir. Modeli oluştururken kullandığımız &#8220;Data Source View&#8221; içerisinde bulunan tablolar aşağıdaki gibi ilişkilendirilmiştir.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_7.jpg"></p>
<p>Bu ilişki referans alınarak aşağıdaki varlıklar oluşturulur ve aralarındaki ilişki düzenlenir.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_8.jpg"></p>
<p>Sol taraftaki kolonları kullanarak müşterilerin alışverişlerinin listelendiği table türündeki bir rapor oluşturalım. Raporu müşteri tablosundaki AdSoyad, Alisveris tablosundaki Tarih ve Urun tablosundaki UrunAd kolonlarına göre gruplandıralım. Değer olarak hangi üründen kaç tane alındığını yazdıralım. Bunun için yapmamız gereken şey soldaki kolonları tasarım alanına sürükle-bırak ile taşımamızdır.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_9.jpg"></p>
<p>Rapor üzerinde farklı bir özetleme seviyesi oluşturmak veya filte tanımlamak için üst menüdeki <b>Sort and Group</b> ve <b>Filter</b> düğmeleri kullanılır.</p>
<p>Report Builder&#8217;in diğer önemli özelliği son kullanıcıya tasarlamış olduğu bu raporu sunucuya deploy etmesini yani sunucunda saklamasına imkan tanımasıdır. &#8220;File » Save&#8221; menüsünden dosyayı sunucuya kayıt edelim. Böylece web üzerinden oluşturduğumuz rapora rahatlıkla erişilebilir.</p>
<p>Bu şekilde oluşturulan RDL dosyalarını VS.NET içerisindeki rapor projelerinde kullanabiliriz. Bu RDL dosyası data source olarak sunucu üzerindeki modeli kullandığından dolayı data source tanımlarken <b>Connection String</b> bölümünde <i>server=http://localhost/reportserver; datasource=/Models/E Ticaret</i> şeklinde tanımlama yapılır.</p>
<p><img src="http://www.ahmetkaymaz.com/wp-content/uploads/SQL_Report_Builder_9.jpg"></p>
<p>Son olarak ReportBuilder aracını command line&#8217;dan çalıştırmak için aşağıdaki gibi ReportBuilder.exe programı çalıştırılabilir.</p>
<p><i>ReportBuilder.exe /s=http://localhost/ReportServer &#8220;/model=/Models/E Ticaret&#8221;</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ahmetkaymaz.com/2008/04/26/sql-server-reporting-services-7-report-builder/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
