فصل هشتم

 

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 بررسي مي‌كنيم.

 

معماري 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

 

همان‌گونه كه در شكل 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

سيستم Reporting Services جديد SQL Server 2005 شامل تنوعي مرتبط است. در اين بخش، نگاه دقيق‌تري به هر يك از اين اجزا داريم، با بخشي شروع مي‌كنيم كه مشهودتر است: Report Designer

 

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 ببينيد.

 

شكل 2-8 Reporting Services Report Designer

 

جعبه ابزار

پنجره جعبه ابزار در 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 ببينيد.

 

شكل 3-8 پنجره Report Designer Fields

 

مي‌توانيد بين پنجره Fields و جعبه ابزار با كليك كردن برگه مناسب نشان داده شده در پايين پنجره Fields حركت كنيد.

 

Output

Report Designer هم‌چنين يك پنجره Output را فراهم كرده است كه نتايج ساخت و توزيع گزارشات را نشان مي‌دهد. بعد از طراحي گزارش، بايد ساخته شده و سپس قبل از استفاده، توزيع شود. فرآيند Build يك اسمبلي .NET را ايجاد مي‌كند، در حالي كه فرآيند Deploy آن اسمبلي را گرفته و آن را در پايگاه داده ReportServer نصب مي‌كند. نتيجه اين اعمال در پنجره Output نشان داده شده است و شما مي‌توانيد آن را در پايين شكل 3-8 ببينيد.

 

OLAP Report Designer

شبيه 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 نشان داده شده است، باز خواهد شد.

 

شكل 4-8 OLAP Report Designer

 

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

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 توزيع گزارش را به تمام مقاصد تحويل از پيش‌تعريف شده مديريت مي‌كند.

 

شكل 5-8 مروري بر 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

Report Manager، همان‌گونه كه از نامش حدس زده مي‌شود، ابزار اصلي براي مديريت راه‌حل‌هاي گزارشگيري Reporting Services است. Report Manager يك برنامه مبتني بر وب ASP.NET است و با اشاره كردن مرورگر وب به http://<servername>/Reports مورد دستيابي قرار مي‌گيرد. مي‌توانيد Report Manager را در شكل 6-8 ببينيد.

 

شكل 6-8 Reporting Services Report Manager

 

اگر از Sharepoint استفاده كرده‌ايد، بنابراين شكي نيست كه به شباهت آشكار بين Reporting Services Report Manager و يك سايت Sharepoint توجه كرده‌ايد. هر دو اشتراك، ظاهر و احساس كاملاً شبيه به هم دارند. Report Manager به شما امكان مشاهده و مديريت تمام گزارشاتي را مي‌دهد كه براي Report Server توزيع كرده‌ايد. مي‌توانيد رشته‌هاي اتصال و منابع داده مورد استفاده گزارشات را ويرايش كرده و خصوصيات مختلف گزارش را اصلاح كنيد. علاوه بر اين، Report Manager به راهبر Reporting Services امكان تنظيم امنيت و اشتراك‌ها را براي گزارشاتي مي‌دهد كه مي‌توانند با استفاده از Reporting Services مورد دستيابي قرار گيرند.

 

كلاينت گزارشگيري كاربر نهايي Report Builder

براي يك تجربه گزارشگيري كاربر نهايي بهبود يافته، 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 هدايت مي‌كند.

 

ايجاد يك گزارش Reporting Services

مي‌توانيد استفاده از Report Designer را با شروع Report Wizard و استفاده از آن براي ايجاد گزارش اوليه خود يا با تنظيم شروع با يك سطح طراحي خالي و سپس افزودن عناصر تعريف گزارش خاص خود آعاز كنيد. در هر يك از اين موارد، تعريف يك مجموعه داده اولين كاري است كه براي ايجاد يك گزارش بايد انجام دهيد. در اين مثال، نحوه ساخت سريع يك گزارش را با استفاده از Report Wizard به شما نشان مي‌دهد.

براي ساخت يك برنامه Reporting Services، ابتدا Business Intelligence را باز كرده و سپس File | New | Project را براي نمايش كادر محاوره‌اي New Project انتخاب كنيد كه در شكل 7-8 نشان داده شده است.

 

شكل 7-8 ايجاد گزارشي جديد: New Project

 

براي ايجاد يك گزارش 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 نشان داده شده است.

 

شكل 8-8 كادر محاوره‌اي Report Wizard Welcome

 

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

 

شكل 9-8 Select the Data Source

 

كادر محاوره‌اي 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 كليك كنيد.

 

شكل 10-8 Query Builder

 

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 ببينيد.

 

شكل 11-8 Select The Report Type

 

در حالي كه Report Designer به شما اجازه مي‌دهد تا مقدار شگفت‌انگيري انعطاف‌پذيري را در طراحي گزارشات داشته باشيد، Report Wizard در نوع گزارشاتي كه براي شما خواهد ساخت، محدودتر است. Report Wizard يكي از دو نوع گزارش متفاوت را توليد خواهد كرد: يك گزارش شيوه جدولي يا يك گزارش شيوه ماتريسي.

 

توجه: در حالي كه شيوه‌هاي گزارشات محدود هستند، Report Wizard نقطه شروع خوبي براي ساخت يك گزارش پايه است كه بعداً مي‌توانيد آن را در Report Designer اختصاصي كنيد.

 

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

 

شكل 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 نشان داده شده است.

 

شكل 13-8 Choose The Table Style

 

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

 

شكل 14-8 Completing The Wizard

 

كادر محاوره‌اي Completing The Wizard به شما اجازه مي‌دهد تا تمام انتخاب‌هايي را كه در كادرهاي محاوره‌اي ويزارد قبلي صورت گرفته‌اند، مرور كنيد. در اين‌جا، مي‌توانيد از دكمه Back براي برگشت به صفحه قبل و انجام تصحيحاتي در مشخصه‌هاي گزارش استفاده كنيد يا مي‌توانيد Finish را براي توليد گزارش كليك كنيد. تأييد كادر انتخاب Preview موجب نمايش گزارش براي شما براي مشاهده در پنجره Report Designer Preview مي‌شود. بعد از توليد، گزارش به راه‌حل Reporting Services نشان داده شده در Business Intelligence Design Surface اضافه مي‌شود.

توزيع يك گزارش Reporting Services

بعد از ايجاد گزارش، مرحله بعدي در ايجاد يك برنامه Reporting Services، ساخت گزارش و توزيع آن به Report Server است. ساخت گزارش موجب ايجاد يك اسمبلي .NET DLL مي‌شود و توزيع گزارش موجب كپي شدن آن اسمبلي در Reporting Services Report Server مي‌شود. مي‌توانيد راه‌حل‌هاي گزارشگيري را از Report Designer با انتخاب گزينه Build/Deploy Reports توزيع كنيد كه در شكل 15-8 مشاهده مي‌كنيد.

 

شكل 15-8 توزيع راه‌حل Reporting Services

 

اگر يكي از گزينه‌هاي توزيع را انتخاب كنيد و گزارش را ذخيره كرده باشيد، Report Designer به‌طور خودكار گزارش را مي‌سازد، قبل از اين كه آن را توزيع كنيد. خروجي فرآيندهاي ساخت و توزيع در پنجره Output نشان داده شده است كه مي‌توانيد در پايين شكل 15-8 ببينيد. هر خطا يا مشكلي در اين پنجره ليست مي‌شود. ضمناً، اگر توزيع گزارش موفق باشد، آن‌گاه پيام موفقيتي در ليست Output ليست مي‌شود.

 

اجراي يك گزارش Reporting Services

گزارشات Reporting Services مي‌توانند با دستيابي به URL آن‌ها يا با تعبيه آن‌ها در برنامه‌ها اجرا شوند. مي‌توانيد با اشاره مرورگر خود به URL http://<servername>/ReportServer، به گزارشات Reporting Services خود دستيابي داشته و آن‌ها را اجرا كنيد، كه تمام گزارشات Reporting Services در آنجا ليست شده‌اند. شكل 16-8 صفحه وب ReportServer را نشان مي‌دهد.

 

شكل 16-8 دستيابي به گزارشات Reporting Services از يك URL

 

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

 

شكل 17-8 اجراي گزارشات Reporting Services

 

گزارشي كه در مرورگر نمايش داده مي‌شود، از فرمتي پيروي مي‌كند كه در فاز طراحي گزارش تنظيم شده است و با توجه به اين كه اين گزارش از پارامترها استفاده مي‌كند، فيلد param1 در بالاي صفحه نمايش نشان داده مي‌شود. كاربر نهايي بايد مقداري را در اين فيلد وارد كند و سپس دكمه View Report را براي نمايش گزارش كليك كنيد. در شكل 17-8، مي‌توانيد ببينيد كه مقدار A Bike Store براي پارامتري قابل جايگزيني وارد شده است.

علاوه بر اين، به دليل اين كه اين گزارش با استفاده از گزينه‌اي عمقي توليد شده است، يك علامت بعلاوه در جلوي خط جزييات نشان داده شده در گزارش نمايش داده مي‌شود. كليك كردن علامت بعلاوه (+) موجب نمايش خطوط جزييات رديفي مي‌شود كه به آن خط خلاصه سطح بالا منتهي مي‌شود. در اين مثال، كليك كردن علامت بعلاوه (+) موجب باز شدن نمايش مي‌شود، همان‌گونه كه در شكل 18-8 نشان داده شده است.

در شكل 18-8، مي‌توانيد جزيياتي را ببينيد كه بر خط خلاصه نشان داده شده در شكل قبل منتهي مي‌شوند. كليك كردن علامت تفريق )-( موجب كاهش نمايش جزييات و نشان دادن خط خلاصه مي‌شود.

اجراي مستقيم گزارشات از Reporting Services URL براي امتحان بسيار عالي است، ولي هنگامي كه برنامه شما زنده است، بايد URL گزارش را در برنامه خود تعبيه كنيد يا از طريق فراخواني سرويس‌هاي وب به Report Server دستيابي داشته باشيد.

 



[1]- Internet Information Services