Reporting
Services
يكي از مهمترين بهبودها در SQL Server 2005، زير سيستم Reporting Services
جديد است. Reporting
Services ابتدا به عنوان يك
برنامه افزودني به SQL
Server 2000 معرفي شد و حفره
مهمي را در خط توليد SQL Server
پر كرد. SQL Server
از زمان معرفي، هميشه يكي از سادهترين محيطهاي پايگاه داده رابطهاي از لحاظ
پيادهسازي بوده است و اين سهولت كاربرد، آن را براي پيادهسازيهاي سطح بخش اداري
و يك محيط پايگاه داده براي تجارتهاي كوچك و متوسط محبوب كرده است. هرچند، هنگام
نصب SQL
Server، اگر بخواهيد
بازيابي اطلاعات از پايگاه داده را با توليد گزارشات شروع كنيد، آنگاه بايد از آن
خارج شده و محصول ديگري را با قابليتهاي گزارشگيري تعبيه شده براي ارسال آن داده
به خروجي به عنوان يك گزارش قابل مشاهده يا چاپي امتحان كنيد. SQL Server هيچ ابزار تعبيه شدهاي نداشت كه بتواند گزارشات را توليد كند
(متداولترين و مورد انتظارترين خروجي يك سيستم پايگاه داده رابطهاي، گزارشات
هستند). براي داشتن مقدار گزارشات اوليه خارج از SQL Server، بيشتر شركتها استفاده از ابزارهاي گزارشگيري دسكتاپ، نظير Microsoft Access را شروع كردند، ولي سازمانهاي متوسط و بزرگ محصولات گزارشگيري
شخص ثالث قويتر، نظير Crystal Reports
از Business
Object پذيرفته شد.
معرفي Reporting Services در SQL Server 2000
همه چيز را تغيير داد. Reporting Services
يك راهحل گزارشگيري را فراهم كرد كه خارج از حيطه قابليتهاي راهحلهاي
گزارشگيري ساده نظير Access
است. Reporting
Services يك سيستم
گزارشگيري جهاني است كه تنها توانايي گزارشات طراحي گرافيكي را فراهم نميكند،
بلكه همچنين به شما امكان ميدهد تا اين گزارشات را در سراسر جهان با تنوعي از
فرمتهاي مختلف از جمله گزارشات HTML
مبتني بر وب، گزارشات كلاينت غني مبتني بر Windows
و گزارشاتي براي نمايش روي وسايل همراه به صورت ايمن توزيع كنيد. SQL Server 2005 Reporting
Services به همهگير شدن در
استاندارد جديدي براي گزارشگيري جهاني SQL Server
ادامه ميدهد. در اولين بخش اين فصل، مروري بر معماري و اجزاي سيستم مورد استفاده SQL Server 2005 Reporting
Services داريم. سپس، در
بخش دوم اين فصل، نگاهي مفصلتر خواهيم داشت و نحوه طراحي و توزيع گزارشات را با
استفاده از Reporting
Services بررسي ميكنيم.
SQL Server 2005 Reporting Services تنها يك ابزار طراحي گزارش نيست. در عوض، يك محيط گزارشگيري است
كه نه تنها ايجاد گزارشات را ممكن ميسازد، بلكه همچنين تعريف گزارشات را ذخيره
ميكند، دستيابي ايمن به گزارشات را فراهم ميكند، گزارشات را در تنوعي از فرمتهاي
خروجي متفاوت نمايش ميدهد، تحول گزارش را با استفاده از يك مكانيزم تحويل push يا pull
زمانبندي ميكند و توزيع اين گزارشات را ممكن ميسازد.
Reporting Services
يك جزء نصب اختياري است كه نياز به وجود IIS[1] دارد كه بايد نصب
شده باشد. اگر IIS روي سيستم وجود نداشته باشد، گزينه نصب Reporting Services در كادرهاي محاورهاي نصب SQL Server 2005
ارايه نميشود. در حالي كه Reporting Services
ميتواند، ولي سيستم سرور مشابه با موتور داده SQL Server نصب شود، براي مقياسپذيري بهبود يافته، معمولاً بهتر است Reporting Services را روي سرور مجزايي نصب كنيد.
نكته: Reporting Services به عنوان بخشي از Reporting Services
تثبيت شده است و نياز به هيچ ثبت مجزايي براي استفاده در يك سيستم نيست. هرچند،
اگر آن را در سيستم مجزايي پيادهسازي كنيد، نياز به يك ثبت اضافي داريد.
SQL Server 2005 Reporting Services بيش از يك برنامه تنهاست. Reporting Services
يك زيرسيستم مبتني بر سرور است كه براي فعال كردن ايجاد، مديريت و توزيع گزارشات
در سراسر جهان طراحي شده است. Reporting Services
ميتواند براي ايجاد گزارشات جدولي، گرافيكي و ... استفاده شود كه ميتواند با استفاده
از يك اتصال مبتني بر وب مشاهده و مديريت شود. اين گزارشات ميتوانند در يك پايگاه
داده Reporting
Services و هر منبع پايگاه
داده سازگار با ODBC يا OLE DB
اجرا شوند. ميتوانيد مروري از معماري Reporting Services
را در شكل 1-8 ببينيد.

همانگونه كه در شكل 1-8 ميبينيد،
گزارشات Reporting
Services با استفاده از Report Designer ايجاد ميشوند. Reporting Services Report Designer يك سطح طراحي كاملاً گرافيكي و برنامهاي با رابط كاربر است كه به
شما امكان طراحي محاورهاي و امتحان گزارشات را ميدهد. برخلاف طراح گزارش بانددار
كه بخشي از برنامه Microsoft
Access آشناست، Reporting Services
Report Designer كاملاً بدون باند
است كه اين مسأله انعطافپذيري زيادي به آن ميدهد. يك طراح گزارش بانددار نواحي
خاصي از طراح گزارش را براي كاربردهاي از پيشتعريف شده محدود ميكند؛ مثلاً، بخش
بالاي صفحه هميشه عنوان است، بخش مياني صفحه، بدنه گزارش و بخش پاييني صفحه، براي
پاورقي گزارش ميباشد. در حالي كه گزارشات مختلف از اين شيوه پيروي ميكنند،
انعطافپذيري براي انجام چيزي غير از اين نداريد. چيدمان بدون باند Reporting Services
Report Designer آزادي
بيشتري به شما ميدهد: مثلاً، به سادگي ميتوانيد گزارش را در چهار قسمت صفحه
طراحي كنيد كه هر قسمت از داده و فرمتبندي خود استفاده كند. يك ظاهر بسيار مفصلتر
در Reporting
Services Report Designer
در بخش دوم اين فصل ارايه ميشود.
بعد از طراحي يك گزارش با استفاده از Report Designer، تعاريف گزارش در پايگاه داده ReportServer ذخيره ميشود. گزارشات Reporting Services
در يك فرمت داده مبتني بر XML
جديد به نام RDL ذخيره ميشود. بهطور پيشفرض، اين تعاريف RDL در پايگاه داده
SQL
Server 2005 ReportServer
ذخيره ميشوند. علاوه بر مشخصههاي RDL
گزارش، پايگاه داده ReportServer
همچنين اطلاعاتي درباره امنيت و مقصد يك گزارش ذخيره ميكند.
Reporting Services Report Server كه جزء اصلي در معماري Reporting Services
است، يك برنامه ASP.NET است كه تحت IIS Windows
اجرا ميشود. مسئوليت اصلي Report Server،
پردازش فايلهاي تعريف گزارش ذخيره شده و سپس نمايش گزارشات به فرمتي مناسب براي
مكانيزم تحويل مشخص شده است. علاوه بر گزارشات چاپي استاندارد، Reporting Services
Report Server ميتواند اين فرمتهاي
خروجي مختلف را نمايش دهد:
ü HTML
ü Excel
ü Web
archive
ü PDF
ü TIFF
ü CSV
ü XML
Reporting Services
با استفاده از Report
Manager مديريت ميشود. Report Manager يك برنامه تحت وب است كه به DBA يا راهبر گزارشگيري امكان كنترل امنيت و ويژگيهاي مديريتي كلي
گزارشات ايجاد شده با استفاده از Reporting Services
را ميدهد. اين امر شامل مشخص كردن فردي است كه ميتواند يك گزارش را ايجاد كرده و
تغيير دهد و فردي كه بتواند گزارش معيني را اجرا كند. Report Manager همچنين ميتواند زمانبنديهاي تحويل push و pull را براي گزارشات Reporting Services
تنظيم كند.
در بخش بعد، نگاهي عمقيتر به عملكرد
فراهم شده توسط هر يك از اين اجزا مياندازيم.
سيستم Reporting Services جديد SQL Server 2005
شامل تنوعي مرتبط است. در اين بخش، نگاه دقيقتري به هر يك از اين اجزا داريم، با بخشي
شروع ميكنيم كه مشهودتر است: Report Designer
Reporting Services Report Designer به شما امكان ميدهد تا گزارشات را بهطور ويژوال طراحي كنيد و
توزيع آنها را كنترل نماييد. برخلاف برنامه افزودني Reporting Services براي SQL Server 2000
كه براي طراحي گزارشات نياز به Visual Studio
داشت، SQL
Server 2005 Reporting Services،
Report
Designer را به عنوان بخشي
از Business
Intelligence Development Studio
فراهم كرده است. براي شروع، Report Designer،
ابتدا SQL
Server 2005 Business Intelligence Studio
را باز كرده و سپس گزينه File | New | Project
| Report Progect را براي ايجاد يك
پروژه Report
Services جديد انتخاب كنيد.
سپس، براي باز كردن Report Designer،
گزينه Project
| Add Item | Report را انتخاب كنيد.
ميتوانيد مثالي از Reporting Services Report Designer
را در شكل 2-8 ببينيد.

جعبه
ابزار
پنجره جعبه ابزار در Reporting Services
Report Designer در سمت چپ شكل 2-8
نشان داده شده است. جعبه ابزار براي كشيدن و انداختن اجزا در سطوح طراح مربوط به
آنها استفاده ميشوند.
كنترلهاي
گزارش
جعبه ابزار Report Designer حاوي اين كنترلهاست:
ü
Textbox: كنترل Textbox
به شما امكان نمايش داده متني را روي گزارش ميدهد. Textbox ميتواند هر جايي در گزارش قرار گيرد و ميتواند حاوي داده ستوني،
برچسبها و فيلدهاي محاسباتي باشد.
ü
Line: كنترل Line
به شما امكان رسم يك خط را روي چيدمان گزارش ميدهد.
ü
Table: Table
به شما امكان انقياد يك جدول به چيدمان گزارش را ميدهد.
ü
Matrix: ميتوانيد از كنترل Matrix
براي نمايش مشبكي در چيدمان گزارش استفاده كنيد. ميتوانيد كنترل Matrix را به مجموعه داده گزارش مقيد كنيد.
ü
Rectangle: كنترل Rectangle
در اصل به عنوان كانتينري براي ساير عناصر گزارش استفاده ميشود. همچنين ميتواند
به عنوان يك عنصر گرافيكي توسط كنترل Line
استفاده شود.
ü
List: كنترل List
به شما امكان ميدهد تا ليستي را در چيدمان گزارش خود قرار دهيد. اين ليست ميتواند
به فيلدها در مجموعه داده شما مقيد شوند.
ü
Image: كنترل Image
به شما امكان ميدهد تا تصاوير باينري را به چيدمان گزارش مقيد كنيد. از اين فرمتها
پشتيباني ميشود، bmp، jpg، gif و png.
ü
Subreport: كنترل Subreport
براي لينك كردن بخشي از گزارش به گزارش تعريف شده قبلي ديگري استفاده ميشود. Subreport ميتواند يك گزارش مستقل باشد يا براي اجرا در گزارش ديگري طراحي
شود.
ü
Chart: كنترل Chart
نموداري را در چيدمان گزارش رسم ميكند. كنترل Chart ميتواند به مجموعه داده گزارش مقيد شود و از تعداد
زيادي از انواع نمودار مختلف پشتيباني ميكند، از جمله: ستونها، ميله، خط، پاي،
پخشي، حبابي، ناحيهاي، دوناتي، راداري، سهامي و قطبي.
Design
Surface
در مركز صفحه نمايش در شكل 2-8، ميتوانيد
Report
Designer Design Surface را ببينيد. Report Designer Design Surface
محلي است كه چيدمان گزارش خود را ايجاد ميكنيد. Design Surface سه برگه را ارايه ميدهد: Data،
Layout و Preview. براي ايجاد يك گزارش، ابتدا بايد مجموعه دادهاي را تعريف كنيد و
ميتوانيد اين كار را با استفاده از برگه Data
انجام دهيد. مجموعه داده با مشخص كردن اتصال پايگاه داده با وارد كردن دستي رشته
اتصال مناسب يا با پر كردن اعلانهاي نمايش داده شده در كادر محاورهاي Data Link ساخته ميشود. هنگامي كه اتصالي تنظيم ميشود، آنگاه پرسوجوي
خود را با وارد كردن عبارت SQL
يا با استفاده از Query
Designer گرافيكي تعريف
كنيد. Query
Designer به شما امكان ميدهد
تا بهطور ويژوال يك پرسوجوي SQL
را با كشيدن و انداختن جداول بسازيد و سپس ستونهاي مناسب را انتخاب كنيد و بهطور
ويژوال هر تلفيق مورد نياز و معيار انتخاب رديف را تعريف كنيد. هنگامي كه پرسوجو
طراحي شد، يك نمايش سازنده پرسوجوي گرافيكي آن پرسوجو در برگه Data نشان داده خواهد شد.
برگه Layout محلي است كه گزارش خود را طراحي ميكنيد. گزارش را با كشيدن و
انداختن آيتمها از جعبه ابزار به پنجره Layout
و سپس انتقال و تغيير اندازه آنها طراحي كنيد. همانگونه كه در شكل 2-8 ميبينيد،
پنجره Layout تمام كنترلهاي Reporting Services
را كه به گزارش اضافه ميشوند و انقياد آنها را نشان ميدهد. برگه Preview به شما اجازه پيشنمايش آن چيزي را ميدهد كه گزارش نمايش داده
شده شبيه آن خواهد بود.
هنگامي كه برنامه Preview را كليك ميكنيد، Report Designer
گزارش را اجرا خواهد كرد و آن را در برگه Preview
نمايش ميدهد. Preview به شما اجازه نميدهد تا تغييري در ظاهر گزارش بدهيد. براي تغيير
گزارش، بايد از برگه Layout
استفاده كنيد.
Solution
Explorer
ميتوانيد Report Designer Solution
Explorer را در گوشه سمت
راست بالاي شكل 2-8 ببينيد. Solution Explorer
يك نماي درختي سلسله مراتبي از فايلها و پروژههاي متفاوتي كه در يك راهحل Business
Intelligence Developmant Studio
هستند، فراهم ميكند. آيتم بالا در سلسله مرتبه Solution Explorer نام راهحل است. در شكل 2-8، ميتوانيد ببينيد كه راهحل ADWReports ناميده شده است. تحت اين راهحل، ميتوانيد يك يا چند پروژه داشته
باشيد. در شكل 2-8، ميتوانيد ببينيد كه در اين مثال، راهحل داراي يك پروژه Reporting Services است كه reports
ناميده ميشود و تحت آن پروژه گزارشي به نام Personal.rdl است. هر پروژه Reporting Services
ميتواند حاوي چندين گزارش باشد.
Properties
ميتوانيد پنجره Report Designer Properties را در گوشه سمت راست پايين شكل 2-8 ببينيد. پنجره Properties ميتواند براي تنظيم صفات آيتمهاي چيدمان گزارش در زمان طراحي
استفاده شود.
Fields
Report Designer
همچنين يك پنجره Fields را فراهم كرده است كه محتويات مجموعه دادهاي را نشان ميدهد كه
در حال استفاده است. ميتوانيد فيلدهاي ليست شده در پنجره Fields را بكشيد و در سطح طراحي Report Designer
بيندازيد تا در گزارش قرار گيرند. ميتوانيد پنجره Fields را در گوشه سمت چپ بالاي شكل 3-8 ببينيد.

ميتوانيد بين پنجره Fields و جعبه ابزار با كليك كردن برگه مناسب نشان داده شده در پايين
پنجره Fields حركت كنيد.
Output
Report Designer
همچنين يك پنجره Output را فراهم كرده است كه نتايج ساخت و توزيع گزارشات را نشان ميدهد.
بعد از طراحي گزارش، بايد ساخته شده و سپس قبل از استفاده، توزيع شود. فرآيند Build يك اسمبلي .NET را ايجاد ميكند، در حالي كه فرآيند Deploy آن اسمبلي را گرفته و آن را در پايگاه داده ReportServer نصب ميكند. نتيجه اين اعمال در پنجره Output نشان داده شده است و شما ميتوانيد آن را در پايين شكل 3-8
ببينيد.
شبيه Reporting Services Report Designer
به شما امكان ميدهد تا گزارشاتي را براي پايگاههاي داده رابطهاي طراحي كنيد، OLAP به شما امكان ميدهد تا گزارشاتي را براي پايگاههاي داده Analysis Services بسته به نوع منبع داده منتخب خود طراحي كنيد، Report Designer بهطور خودكار به عنوان Report Designer
رابطهاي يا OLAP
Report Designer باز ميشود. اگر
منبع دادهاي كه انتخاب ميكنيد، يك منبع داده ODBC يا Native SQL Client
باشد، آنگاه Report
Designer رابطهاي كه قبلاً
در شكل 3-8 نشان داده شد، باز خواهد شد. اگر منبع داده منتخب شما يك منبع داده Microsoft SQL
Server Analysis Services باشد،
آنگاه OLAP
Report Designer جديد كه در شكل
4-8 نشان داده شده است، باز خواهد شد.

OLAP Report Designer براي ساخت گزارشات بر طبق مكعبهاي Analysis Services بهينه ميشود. بهجاي نشان دادن جداول و ستونها،
طراح به شما فوق داده مكعبهايي را نشان ميدهد كه ميتوانيد براي ساخت گزارشات
خود استفاده كنيد.
Metadata
در سمت چپ شكل 4-8، ميتوانيد پنجره OLAP Report
Designer Metadata را ببينيد. پنجره Metadata تمام صفات مكعب را ليست ميكند. در بالاي ليست، اندازه مكعبها را
مييابيد كه بعد از آنها KPIها آمده است و سپس
تمام ابعاد مختلف را داريم. ميتوانيد فيلدهاي ليست شده در پنجره Fields را كشيده و در پنجرههاي Dimesions
و Measures بيندازيد.
پنجره
Dimansions
پنجره Dimansions كه در بخش سمت راست بالاي شكل 4-8 نشان داده شده است، براي مشخص
كردن تمام ابعادي استفاده ميشود كه در گزارش استفاده ميشوند. براي افزودن يك بعد
به پنجره Dimansions، بعد مناسب را براي پنجره Metadata
كشيده و آن را در پنجره Dimansions
بيندازيد.
پنجره
Measures
پنجره OLAP Report
Designer Measures در بخش پايين شكل
4-8 نشان داده شده است. معمولاً از پنجره Measures
خيلي بيش از پنجره Dimansions استفاده ميكنيد (با كشيدن و انداختن اندازهها از پنجره Metadata در پنجره Measures).
OLAP
Report Designer بهطور خودكار
هدرها را در سراسر بالاي پنجره Measures
ميسازد و بقيه پنجره را با مقادير داده مناسب از مكعب پر ميكند.
Report Server
موتور نمايش و توزيع اصلي Reporting Services
است. Reporting
Services فايلهاي RDL توليد شده توسط Report Designer
را مصرف كرده و گزارش را به فرمت خروجي مناسب نمايش ميدهد. Report Server علاوه بر نمايش گزارشات، امنيت و توزيع گزارشات را مديريت ميكند.
شكل 5-8 مروري از عملكرد فراهم شده توسط Reporting Services Report Server
را نشان ميدهد.
Report Server
يك برنامه مبتني بر ASP.NET
است و يك نقطه انتهاي HTTP SOAP
را نشان ميدهد كه براي مديريت و دستيابي سرور استفاده ميشود. Report Server قلب SQL Server 2005 Reporting Services
است و تمام وظايف الزامي توليد و توزيع گزارش را مديريت ميكند و هنگامي كه كاربري
درخواست يك گزارش ميكند يا گزارشي به يك كاربر نهايي توزيع ميشود، Report Server صفات امنيتي گزارش را بررسي ميكند تا اطمينان يابد كه كاربر
داراي مجوزهايي براي خود گزارش و اشياي پايگاه داده مورد استفاده گزارش است. اگر
كاربر داراي مجوزهاي مورد نياز باشد، آنگاه Report Server تعريف گزارش را از پايگاه داده ReportServer بازيابي كرده و گزارش را برطبق فرمت مشخص شده در RDL نمايش ميدهد. هنگام نمايش گزارش، Report Server به تمام منابع داده مورد نياز دستيابي دارد، داده را بازيابي كرده
و گزارش را ميسازد. هنگامي كه گزارشي ايجاد شده باشد، Report Server توزيع گزارش را به تمام مقاصد تحويل از پيشتعريف شده مديريت ميكند.

Report Server
نتايج بازيابي شده را به فرمت واسطهاي براي يك مقدار زمان از پيشتعريف شده
بازيابي ميكند. اين كش كردن، يك ويژگي عالي براي مقياسپذيري است، زيرا درخواستهاي
تكراري را براي پردازش سريع گزارش ممكن ميسازد. هنگامي كه گزارشات كش ميشوند،
تمام بازيابي داده مورد نياز و مراحل نمايش تكميل شده و Report Server بايد گزارش كش شده را به كاربر نهايي توزيع ميكند.
تحويل
گزارش
يكي از نكات كليدي در ايجاد راهحل
گزارشگيري، تعريف نحوه تحويل گزارشات به كاربر نهايي است. Report Server مسئول تحويل گزارشات و پشتيباني از گزارشات طبق تقاضا به شيوه Pull و شيوه Push
و گزينههاي تحويل مبتني بر اشتراك است.
ü
تحويل طبق تقاضا: Reporting Services دو نوع تحويل گزارش طبق تقاضا را فراهم كرده است: دستيابي گزارش
مبتني بر URL و دستيابي گزارش مبتني بر سرويسهاي وب. با دستيابي URL، كاربر نهايي مستقيماً يك URL
را در مرورگر وارد كرده يا روي لينكي كليك ميكند كه به Report Server دستيابي دارد. هر پارامتر مورد نياز به عنوان بخشي از URL ارسال ميشود. Report Server
گزارش را به فرمت HTML در مرورگر در كاربر نمايش خواهد داد. كاربران نهايي همچنين ميتوانند
با صادر كردن درخواستهاي SOAP
براي Reporting
Services Report Server، به گزارشات دستيابي داشته باشند. در اين روش، كاربر معمولاً
گزينهاي را از برنامه خود انتخاب ميكند كه واقعاً درخواست SOAP را واگذار مينمايد. يك مزيت اين روش اين است كه SOAP روشهاي اكتشافي را فراهم ميكند كه به برنامه امكان كشف پوياي هر
پارامتر گزارش مورد نياز را ميدهد. همانگونه كه در بخش بعدي خواهيد ديد، دستيابي
Reporting
Services SOAP تنها محدود به
تحويل گزارشات نيست. همچنين دستيابي كاملي به توابع مديريتي Reporting Services فراهم ميكند.
ü
تحويل اشتراكي: علاوه بر تحويل
گزارش شيوه pull، Reporting
Services همچنين از تحويل
اشتراكي شيوه push پشتيباني ميكند. در مقايسه با تحويل گزارش pull كه كاربر توليد گزارش را با تحويل گزارش شيوه push مبتني بر اشتراك شروع ميكند، موتور Report Server گزارشات را بر طبق يك زمانبندي از پيشتعريف شده به كاربران
نهايي تحويل ميدهد. اشتراكها ميتوانند بر طبق زمانها باشند يا ميتوانند مبتني
بر داده باشند. براي نمونه، ميتوانيد Report Server
را براي تحويل يك گزارش معين يا مجموعهاي از گزارشات در انتهاي روز، هفته يا ماه
پيكربندي كنيد. براي تحويل گزارشات بر طبق يك زمانبندي معين، Reporting Services از SQL Agent
استفاده ميكند. اشتراكهاي مبتني بر داده متفاوت از اشتراك عادي هستند كه در آن،
اشتراكهاي مبتني بر داده، اطلاعات اشتراك را در زمان اجرا به دست ميآورند.
اشتراكهاي مبتني بر داده براي مديريت موقعيتهايي طراحي شدهاند كه دريافت
كنندگان گزارش بتوانند بين اجراهاي مختلف گزارش تغيير دهند. مكانيزمهاي تحويل طبق
تقاضا و مبتني بر اشتراك، هر دو گزينههاي خروجي گزارش مشابهي را به اشتراك ميگذارند.
Report Manager،
همانگونه كه از نامش حدس زده ميشود، ابزار اصلي براي مديريت راهحلهاي
گزارشگيري Reporting
Services است. Report Manager يك برنامه مبتني بر وب ASP.NET
است و با اشاره كردن مرورگر وب به http://<servername>/Reports مورد دستيابي قرار ميگيرد. ميتوانيد Report Manager را در شكل 6-8 ببينيد.

اگر از Sharepoint استفاده كردهايد، بنابراين شكي نيست كه به شباهت آشكار بين Reporting Services Report Manager
و يك سايت Sharepoint توجه كردهايد. هر دو اشتراك، ظاهر و احساس كاملاً شبيه به هم دارند.
Report
Manager به شما امكان
مشاهده و مديريت تمام گزارشاتي را ميدهد كه براي Report Server توزيع كردهايد. ميتوانيد رشتههاي اتصال و منابع داده مورد
استفاده گزارشات را ويرايش كرده و خصوصيات مختلف گزارش را اصلاح كنيد. علاوه بر
اين، Report
Manager به راهبر Reporting Services امكان تنظيم امنيت و اشتراكها را براي گزارشاتي ميدهد كه ميتوانند
با استفاده از Reporting
Services مورد دستيابي قرار
گيرند.
براي يك تجربه گزارشگيري كاربر نهايي
بهبود يافته، Reporting
Services همچنين شامل Report Builder است كه بر طبق فناوري ActiveViews
است. مايكروسافت فناوري Report Builder
را در سال 2004 از شركت ActiveViews
گرفت. وجود Report
Builder يك گزارش مبتني بر
وب را به SQL
Server 2005 ميدهد كه يك
ابزار پرسوجوي كاربر نهايي را تأليف ميكند. Report Builder مستقيماً مشكل درخواستهاي گزارش كاربر خاتمه نيافته را با فراهم
كردن ابزاري كه به كاربران نهايي امكان تأليف گزارشات خاص آنها را ميدهد، حل
كرده است. Report
Builder برطبق چارچوب كاري
.NET
مايكروسافت است و از ابتدا طراحي شده است تا بهطور كامل با Reporting Services يكپارچه شود. استفاده از ابزار گزارشگيري كاربر نهايي Report Builder بسيار آسان است؛ جزييات گزارشات ميتوانند مستقيماً در پنجره Report Builder مشاهده شوند، هنگامي كه گزارش ايجاد ميشود. بعد از تأليف گزارشات
Report
Builder، ميتوانند در يك
مرورگر شبيه هر گزارش Reporting Services
ديگر توزيع شوند.
در اولين بخش اين فصل، مطالبي درباره
اجزاي مختلفي آموختيد كه SQL Server 2005 Reporting Services
را تشكيل ميدهند. در نيمه دوم اين فصل، نگاهي مفصلتر به مراحل مورد نياز براي
طراحي و توزيع يك گزارش ساده مياندازيم.
فرآيند ساخت يك برنامه Reporting Services با استفاده از Report Designer
براي تعريف چيدمان و منابع داده گزارش شروع ميشود. سپس، بايد گزارش را براي Report Server بسازيد و توزيع كنيد. بالاخره، بايد گزارش را با تعبيه كردن گزارش
در يك برنامه يا افزودن اشتراكها به گزارش، در دسترس كاربران نهايي قرار دهيد.
طراحي
راهحل گزارشگيري
در ايجاد راهحلهاي گزارشگيري با
استفاده از Reporting
Services، ابتدا مجموعه
دادهاي را انتخاب كنيد كه دادهاي را تعريف كند كه در گزارش استفاده خواهد شد و
سپس فيلدهاي داده مجزا را روي گزارش بچينيد. براي مديريت گزارشات سهامي كه به يك
شكل جدولي يا ماتريسي ارايه ميشوند، مايكروسافت يك Report Design
Wizard را فراهم كرده است
كه شما را در فرآيند ايجاد يك منبع داده و طراحي گزارش به صورت گام به گام هدايت
ميكند.
ساخت
و توزيع راهحل گزارشگيري
هنگامي كه گزارشي طراحي شد، بايد گزارش
را ساخته و سپس آن را به Report Server
توزيع كنيد. ساخت گزارش موجب ايجاد يك اسمبلي .NET ميشود كه گزارش را اجرا خواهد كرد. توزيع گزارش، لزوماً اين
گزارش را گرفته و آن را در Reporting Services Report Server
كپي ميكند. در حالي كه ميتوانيد اين كار را به صورت دستي انجام دهيد، Report Designer داراي گزينههاي تعبيه شدهاي براي ساخت و توزيع گزارشات براي Report Server است.
در
دسترس ساختن گزارش براي كاربر نهايي
بعد از توزيع گزارش به Report Server، سپس ميتوانيد گزارش را از طريق چندين مكانيزم مختلف، در دسترس
كاربر نهايي قرار دهيد. ميتوانيد دستيابي به گزارشات را با تعبيه آنها در يك
برنامه، از طريق URLها يا با ايجاد
اشتراكي كه گزارش را به كاربر نهايي تحويل ميدهد، ميسر سازيد. اشتراك گزارشات ميتواند
براي تحويل در زمان خاصي تنظيم شود، يا ميتوانند مبتني بر داده باشند.
حال كه مروري بر فرآيند ساخت داشتيد، بخش
بعد شما را از طريق مراحل ساخت و توزيع يك گزارش ساده با استفاده از SQL Server 2005 Reporting Services
هدايت ميكند.
ميتوانيد استفاده از Report Designer را با شروع Report Wizard
و استفاده از آن براي ايجاد گزارش اوليه خود يا با تنظيم شروع با يك سطح طراحي
خالي و سپس افزودن عناصر تعريف گزارش خاص خود آعاز كنيد. در هر يك از اين موارد،
تعريف يك مجموعه داده اولين كاري است كه براي ايجاد يك گزارش بايد انجام دهيد. در
اين مثال، نحوه ساخت سريع يك گزارش را با استفاده از Report Wizard به شما نشان ميدهد.
براي ساخت يك برنامه Reporting Services، ابتدا Business Intelligence
را باز كرده و سپس File
| New | Project را براي نمايش
كادر محاورهاي New
Project انتخاب كنيد كه در
شكل 7-8 نشان داده شده است.

براي ايجاد يك گزارش Reporting Services جديد با استفاده از Report Wizard،
ابتدا گزينه Business
Intelligence Projects
را از ليست Project
Types انتخاب كنيد. سپس،
در ليست Templates كه در سمت راست اين صفحه نشان داده شده است، گزينه Report Project
Wizard را انتخاب كنيد.
سپس كادرهاي پايين اين كادر محاورهاي را پر كنيد. در كادر متني Name، نام پروژه جاري را وارد كنيد. كادر Location محل فايلهاي منبع پروژه گزارش را مشخص كنيد. كادر Solution Name به شما اجازه ميدهد تا راهحل Reporting Services را نامگذاري كنيد. در اينجا، ميتوانيد ببينيد كه مقدار AdWReports به عنوان نام پروژه و راهحل استفاده ميشود. كليك كردن OK موجب شروع كادر محاورهاي Report Wizard
Welcome ميشود كه در شكل
8-8 نشان داده شده است.

كادر محاورهاي Report Wizard
Welcome، مروري از مراحلي
را به شما ميدهد كه Report Wizard
در طي ايجاد پروژه طي ميكند. ابتدا منبع دادهاي را انتخاب كنيد، سپس پرسوجويي
را طراحي ميكنيد، سپس نوع گزارش مورد نظر خود را انتخاب كنيد و بالاخره فرمتبندي
را براي گزارش مشخص كنيد. كليك كردن Next
موجب نمايش كادر محاورهاي Select The Data Source ميشود كه ميتوانيد آن را در شكل 9-8 ببينيد.

كادر محاورهاي Select the Data
Source به شما اجازه
تعريف كردن اتصال به پايگاه داده را ميدهد. براي ايجاد Data Source، ابتدا نامي به آن بدهيد. نام ميتواند هر چيزي باشد. اين نام
براي تعيين منبع داده به كار ميرود. سپس، از كادر بازشوي Type براي انتخاب نوع سيستم پايگاه داده مورد استفاده منبع داده
استفاده كنيد. مقدار پيشفرض، Microsoft SQL Server است، ولي همچنين ميتوانيد OLE DB، Microsoct
SQL Server Analysis Services،
Oracle يا ODBC
باشد. سپس، در كادر Connection String،
رشته اتصالي را وارد كنيد كه براي اتصال به پايگاه داده مقصد مورد نياز است. اگر
با مقادير رشته اتصال آشنا نيستيد، ميتوانيد Edit را براي نمايش كادر محاورهاي Data Link كليك كنيد كه شما را در مراحل ايجاد Data Source راهنمايي ميكند. سپس، با استفاده از كادر انتخابي كه در پايين
صفحه نمايش است و به شما اجازه ميدهد تا منبع داده را با گزارشات ديگر به اشتراك
گذاريد، آن را يك منبع داده مشترك كنيد. ميتوانيد يك منبع داده مشترك هم ايجاد
كنيد كه ميتواند گزارشات مختلف مورد استفاده قرار گيرد يا منبع دادهاي را ايجاد
كنيد كه تنها توسط گزارشي استفاده خواهد شد كه بهطور صحيح ايجاد كردهايد. اگر
قصد داريد چندين گزارش را ايجاد كنيد كه همگي از پايگاه داده يكساني ميآيند،
ايجاد يك منبع داده مشترك، ايده خوبي است، زيرا ميتواند به راحتي توسط تمام
گزارشات در راهحل شما استفاده شده و آن را براي ايجاد يك منبع داده منحصر به فرد
براي هر گزارش غيرضروري ميكند. كليك كردن Next
موجب نمايش كادر محاورهاي Design the Query
ميشود.
از كادر محاورهاي Design the Query، ميتوانيد بهطور دستي يك عبارت SQL را وارد كنيد كه مجموعه داده مورد استفاده گزارش را تعريف خواهد
كرد يا در غير اين صورت ميتوانيد دكمه Query Builder
را براي نمايش Query Builder
نشان داده شده در شكل 10-8 كليك كنيد.

Query Builder
يك ابزار طراحي پرسوجوي محاورهاي است كه به شما امكان ساخت پرسوجوهاي SQL را بدون نياز به يك كارشناس SQL ميدهد. هرچند، براي كاربرد مؤثر ابزار Query Design باز هم بايد دانش پايه خوبي از طراحي و الگوي پايگاه داده داشته
باشيد. ميتوانيد جداولي را از پايگاه داده خود با كليك راست روي قسمت بالاي Query Builder و سپس انتخاب Add Table
از منوي بازشو براي نمايش كادر محاورهاي Add Tables
انتخاب كنيد. ميتوانيد يك يا چند جدول را انتخاب كنيد (چندين جدول با نگه داشتن
كليد CTRL و كليك كردن روي جدول مناسب، انتخاب ميشوند). Query Builder بهطور خودكار روابط بين جداول را برطبق مواردي نظير نام ستونها
و انواع داده تشخيص داده و لينكهاي بين جداول را بهطور ويژوال با نشان دادن
روابط رسم خواهد كرد.
بعد از انتخاب جداول، ستونهاي مناسب را
از هر جدول با قرار دادن يك علامت تأييد در كادر انتخاب قبل از نام ستون، انتخاب
كنيد. همانگونه كه ممكن است حدس زده باشيد، تأييد ورودي
* (All Columns)،
بهطور خودكار تمام ستونها را از جدول انتخاب ميكند. هنگامي كه بهطور محاورهاي
جداول و ستونها را انتخاب كرده و روابط بين جداول را تعريف ميكنيد، Query Designer بهطور خودكار عبارت SQL
را ميسازد و ميتوانيد آن را در پايين شكل 10-8 ببينيد.
چشمپوشي كردن از اين واقعيت كه Query Builder همچنين ميتواند براي ساخت پرسوجوهاي پارامتري استفاده شود،
آسان است كه كاربر نهايي مقداري را براي پرسوجو در زمان اجرا تأمين ميكند. براي
ساخت يك پرسوجوي پارامتري با استفاده از Query Builder،
يك علامت سؤال را در ستون Filterاي تايپ كنيد كه در
رديفي از نام ستون پايگاه داده است كه بايد با يك پارامتر استفاده شود. Query Builder بهطور خودكار كاراكتر علامت سؤال را به مقدار =@Param
تبديل ميكند و ميتوانيد آن را در وسط شكل 10-8 ببينيد.
ميتوانيد پرسوجو را با كليك كردن آيكن
تعجب (!) در نوار ابزار امتحان كنيد. بعد از تكميل طراحي پرسوجو، ميتوانيد
پرسوجو را ذخيره كرده و با كليك كردن OK
ادامه دهيد. عبارت SQL اي كه توسط Query Builder
ايجاد شده بود، در كادر محاورهاي Design The Query
نوشته خواهد شد. كليك كردن Next
موجب نمايش كادر محاورهاي Select The Report Type ميشود كه ميتوانيد آن را در شكل 11-8 ببينيد.

در حالي كه Report Designer به شما اجازه ميدهد تا مقدار شگفتانگيري انعطافپذيري را در
طراحي گزارشات داشته باشيد، Report Wizard
در نوع گزارشاتي كه براي شما خواهد ساخت، محدودتر است. Report Wizard يكي از دو نوع گزارش متفاوت را توليد خواهد كرد: يك گزارش شيوه
جدولي يا يك گزارش شيوه ماتريسي.
توجه: در حالي كه
شيوههاي گزارشات محدود هستند، Report Wizard
نقطه شروع خوبي براي ساخت يك گزارش پايه است كه بعداً ميتوانيد آن را در Report Designer اختصاصي كنيد.
گزارش جدولي از چيدمان طراحي متداول شما
پيروي ميكند كه هدرها در بالاي صفحه و اطلاعات تفصيلي در زير در بدنه گزارش ليست
شدهاند. شيوه گزارش ماتريسي يك گزارش شيوه crosstab را ارايه ميكند كه هدرها در سراسر بالاي صفحه و پايين سمت چپ
صفحه قرار دارند. در شكل 10-8، ميتوانيد ببينيد كه شيوه جدولي گزارش انتخاب شده
است. اگر در پايين اين كادر محاورهاي به دقت نگاه كنيد، دكمه Finish را خواهيد ديد. كليك كردن Finish
به شما اجازه ميدهد تا به سرعت فرمتبندي گزارش را با انتخاب تمام مقادير پيشفرض
كامل كنيد. كليك كردن Next
موجب نمايش كادر محاورهاي Design The Table
ميشود كه در شكل 12-8 نشان داده شده است.

در ابتدا، تمام ستونهاي موجود از پرسوجو
در ليست Available
Fields نشان داده ميشوند
كه ميتوانيد آن را در سمت چپ شكل 12-8 ببينيد. از آن ليست فيلدهاي موجود، ميتوانيد
فيلدها را بهطور انتخابي به ناحيهاي از گزارش بكشيد كه ميخواهيد ظاهر شوند. اگر
بخواهيد فيلدي در هدر صفحه نمايش داده شود، آن را به بخش Page بكشيد كه در سمت راست بالاي صفحه نمايش نشان داده شده است. اگر
بخواهيد فيلدي براي جمع كل گروهها استفاده شود، آن را به بخش Group بكشيد. و چنانچه بخواهيد فيلد يك فيلد داده باشد، آن را بخش Details بكشيد. در شكل 12-8، ميتوانيد ببينيد كه فيلد Name به عنوان هدر صفحه استفاده ميشود؛ فيلد CustomerID به عنوان هدر گروه استفاده ميگردد و فيلدهاي SalesOrderID، OrderDate، DueDate، OrderQty، ProductID، UnitPrice و LineTotal در ناحيه جزييات استفاده ميشوند. هنگامي كه فيلدهاي مورد استفاده
در گزارش را طراحي كرديد، كليك كردن Next
موجب نمايش كادر محاورهاي Report Wizard
بعدي ميشود كه در شكل 13-8 نشان داده شده است.

كادر محاورهاي Choose The Table
Style به شما اجازه ميدهد
تا طراحي كلي گزارشي را كه توسط Reporting Services
توليد خواهد شد، انتخاب كنيد. شيوههاي جدولي متفاوت مشابه هستند، ولي هر شيوه از
الگوي رنگ متفاوت و فرمتبندي كاملاً مختلفي استفاده ميكند. در شكل 13-8، ميتوانيد
ببينيد كه شيوه Corporate انتخاب شده است. كادر محاورهاي Choose The Table
Style كادر محاورهاي
ايجاد گزارش نهايي است كه توسط Report Wizard
نمايش داده ميشود. كليك كردن Next
موجب نمايش صفحه Completing
The Wizard ميشود كه در شكل
14-8 نشان داده شده است.

كادر محاورهاي Completing The
Wizard به شما اجازه ميدهد
تا تمام انتخابهايي را كه در كادرهاي محاورهاي ويزارد قبلي صورت گرفتهاند، مرور
كنيد. در اينجا، ميتوانيد از دكمه Back
براي برگشت به صفحه قبل و انجام تصحيحاتي در مشخصههاي گزارش استفاده كنيد يا ميتوانيد
Finish را براي توليد گزارش كليك كنيد. تأييد كادر انتخاب Preview موجب نمايش گزارش براي شما براي مشاهده در پنجره Report Designer Preview ميشود. بعد از توليد، گزارش به راهحل Reporting Services نشان داده شده در Business Intelligence Design Surface
اضافه ميشود.
بعد از ايجاد گزارش، مرحله بعدي در ايجاد
يك برنامه Reporting
Services، ساخت گزارش و
توزيع آن به Report
Server است. ساخت گزارش
موجب ايجاد يك اسمبلي .NET
DLL ميشود و توزيع گزارش موجب كپي شدن
آن اسمبلي در Reporting
Services Report Server
ميشود. ميتوانيد راهحلهاي گزارشگيري را از Report Designer با انتخاب گزينه Build/Deploy Reports توزيع كنيد كه در شكل 15-8 مشاهده ميكنيد.

اگر يكي از گزينههاي توزيع را انتخاب
كنيد و گزارش را ذخيره كرده باشيد، Report Designer
بهطور خودكار گزارش را ميسازد، قبل از اين كه آن را توزيع كنيد. خروجي فرآيندهاي
ساخت و توزيع در پنجره Output
نشان داده شده است كه ميتوانيد در پايين شكل 15-8 ببينيد. هر خطا يا مشكلي در اين
پنجره ليست ميشود. ضمناً، اگر توزيع گزارش موفق باشد، آنگاه پيام موفقيتي در
ليست Output ليست ميشود.
گزارشات Reporting Services ميتوانند با دستيابي به URL
آنها يا با تعبيه آنها در برنامهها اجرا شوند. ميتوانيد با اشاره مرورگر خود
به URL http://<servername>/ReportServer، به گزارشات Reporting Services
خود دستيابي داشته و آنها را اجرا كنيد، كه تمام گزارشات Reporting Services در آنجا ليست شدهاند. شكل 16-8 صفحه وب ReportServer را نشان ميدهد.

ReportServer URL
تمام گزارشاتي را كه به Report Server
توزيع شدهاند، ليست ميكند. هر راهحل متفاوت در زير فهرست خاص خودش ذخيره ميشود.
براي امتحان گزارشاتي كه توزيع شدهاند، روي لينك كليك كنيد تا Report Server گزارش را در مرورگر نمايش دهد. شكل 17-8 گزارش نمونهاي را در
مرورگر نشان ميدهد.

گزارشي كه در مرورگر نمايش داده ميشود،
از فرمتي پيروي ميكند كه در فاز طراحي گزارش تنظيم شده است و با توجه به اين كه
اين گزارش از پارامترها استفاده ميكند، فيلد param1 در بالاي صفحه نمايش نشان داده ميشود. كاربر نهايي بايد مقداري
را در اين فيلد وارد كند و سپس دكمه View Report
را براي نمايش گزارش كليك كنيد. در شكل 17-8، ميتوانيد ببينيد كه مقدار A Bike Store براي پارامتري قابل جايگزيني وارد شده است.
علاوه بر اين، به دليل اين كه اين گزارش
با استفاده از گزينهاي عمقي توليد شده است، يك علامت بعلاوه در جلوي خط جزييات
نشان داده شده در گزارش نمايش داده ميشود. كليك كردن علامت بعلاوه (+) موجب نمايش خطوط
جزييات رديفي ميشود كه به آن خط خلاصه سطح بالا منتهي ميشود. در اين مثال، كليك
كردن علامت بعلاوه (+) موجب باز شدن نمايش ميشود، همانگونه كه در شكل 18-8 نشان داده
شده است.
در شكل 18-8، ميتوانيد جزيياتي را
ببينيد كه بر خط خلاصه نشان داده شده در شكل قبل منتهي ميشوند. كليك كردن علامت
تفريق )-( موجب كاهش نمايش جزييات و نشان دادن خط خلاصه ميشود.
اجراي مستقيم گزارشات از Reporting Services
URL براي امتحان بسيار عالي است، ولي
هنگامي كه برنامه شما زنده است، بايد URL
گزارش را در برنامه خود تعبيه كنيد يا از طريق فراخواني سرويسهاي وب به Report Server دستيابي داشته باشيد.