پایگاه دانش:
SQL Server Reporting Service چیست؟
منتشر شده توسط , ویرایش شده توسط: شیما عزیزیان در تاریخ 1399/7/5 شنبه 10:17

در سال ۲۰۰۳ یک add-on به SQL Server نسخه 2000 به عنوان یک سرویس گزارشگیری افزوده شد. این سرویس تا نسخه 2005 خیلی کاربردی نبود. از سال 2005 مایکروسافت سرمایه گذاری خوبی را در این زمینه که قبل از آن شرکتهایی در آن فعالیت میکردند آغاز کرد. اینگونه بود که از این مقطع زمانی به بعد مایکروسافت اقدامات خوبی را در این زمینه شروع کرد و آن را از حالت یک add-on خارج کرد. 

 

نصب 

زمانی که میخواهید نسخه های 2005 و 2008 از SQL Server را نصب کنید در یکی از مراحل باید Reporting Service را برای نصب انتخاب کنید. در ادامه باید تیک مربوط به Configure کردن خودکار Reporting Server را بزنید. اگر این گزینه را انتخاب نکنبد باید عملیات پیکربندی را به صورت دستی انجام دهید. 

 

معماری SSRS 

سه کامپوننت اصلی وجود دارد که با یکدیگر کار کرده و SSRS را به یک برنامه چندلایه واقعی تبدیل میکند. این سه عبارتند از : 

 

 

1. Client 

2. Report Server 

3. SQL Server Report Databases 

 

شکل زیر یک تفکیک مفهومی از این سه بخش و اجزا آن است. 

 

در اینجا data source و SSRS databases ، ReportServer و ReportServerTempDB موجودیتهای مجزایی هستند. Data Source منبع و منشا اصلی داده ها برای پر کردن گزارشات است و Report Server Databases وظیفه ذخیره سازی اطلاعات مربوط به گزارشات را بر عهده دارند. هر دوی این دو میتوانند به صورت فیزیکی در یک SQL Server مشترک قرار گیرند، فزض کنید که data source یک پایگاه داده SQL Server است. Data source میتواند data provider های مختلف مثل SQL Server، Oracle، LDAP و یا Analysis Service را پشتیبانی نماید. این امر ممکن است که شما یک سرور واحد را هم برای SSRS Report Server Web Service و هم برای Report Server Database پیکربندی کنید. اگر چه این کار توصیه نمیشود مگر اینکه تعداد کاربر شما کم باشد. 

 

 

نصب SSRS دو پایگاه داده برای شما میسازد : 

ReportServer : این پایگاه داده اصلی است که تمامی اطلاعات را از فایل RDL منتشر شده (published) در حود ذخیره میکند. همچنین مواردی چون خصوصیات گزارش (مانند data sourceها)، پارامترها و فایلهای لاگ را در خود نگهداری میکند. 

 

 

ReportServerTempDB : این پایگاه داده کپیهای cach شده گزارشات را برای بالا بردن کارایی به جهت استفاده همزمان کاربران در خود دارد. با این مکانیزم این اطمینان را داشته باشیم که حتی در صورت restart شدن سرور باز هم گزارشات در دسترس هستند. 

SSRS Web Service Interface 

رابط برنامه نویسی که به عنوان API های .NET Web Service و متدهای دسترسی URL ظاهر میشوند، تمامی درخواستهای ورودی از client ها را خواه درخواست گزارش باشد، خواه درخواست مدیریتی، اداره میکند.با توجه به نوع درخواست، رابط برنامه نویسی با دسترسی به پایگاه داده Report Server یا ارسال آن به کامپوننت دیگر برای پردازش اقدام میکند. 

Data Processing 

SSRS چهار نوع الحاقیه برای اتصال به پایگاه داده حمایت میکند : 

 

1. SQL Server 

2. Oracle 

3. OLE DB 

4. ODBC 

 

 

وقتی که این کامپوننت یک درخواست را Report Processor دریافت میکند، یک اتصال به data source میزند و آن را به query منبع ارسال میکند. داده بازگردانده شده و به Report Processor فرستاده میشود تا با تعریف گزارش ترکیب شود. 

 

Report Rendering 

این کامپوننت وظیفه render گزارش در فرمت مورد نظ را دارد. فرمتهای مورد حمایت عبارتند از : 

 

* HTML 

* PDF 

* HTML با استفاده از کامپوننتهای وبی Office 

* Excel 

* CSV 

* MHTML 

* TIFF 

 

 

برنامه های Client 

SSRS شامل چندی برنامه است که از آن استفاده میکنند. این برنامه ها و ابزارها، مدیریت Report Server ، پیاده سازی امنیت و وظایف render کردن گزارش را برای مهیا میکنند. این ابزارها مانند زیرند : 

 

 

• Report Manager 

این یک برنامه browser base همراه با SSRS است که محیطی گرافیکی را برای کاربران مهیا میکند که توسط آن میتوانند گزارشات را ببینند یا چاپ کنند، یا اینکه گزارشات را برای بخشهای مختلف مدیریت کنند. 

 

 

 

• SQL Server Business Intelligence Development Studio (BIDS) 

اگر شما روی سیستم خود Visual Studio نداشته باشید و SSRS را نصب کنید، خود SQL Server برای شما Visual Studio IDE را برای شما نصب میکند تا شما بتوانید به راحتی به طراحی و تست گزارشات خود بپردازید. این IDE را با نام SQL Server Business Intelligence Development Studio نصب کرده و با انتخاب آن میتوانید به راحتی به آن دست یابید. البته باید بگویم برای ساخت گزارشات وجود این IDE الزامی نیست. 

 

انواع گزارشات و ساختار آنها 

به طور کلی دو نوع گزارش در RS موجود است: 

1. Client Report 

2. Server Report 

در Visual Studio 2005 به بعد کنترل جدیدی به آن افزوده شد با نام MicrosoftReportViewer که مخصوص نمایش گزارشات بود. گزارشات فایلهایی با پسوند rdl برای گزارش remote و rdlc برای گزارش clientهستند که میتوانید آن را به پروژه خود بیفزایید. پس از افزودن آن چندین ابزار به شما برای ساخت گزارش داده خواهد شد. شما میتوانید با این ابزارها گزارش مورد نظر خود را بسازید. 

RDL یک مدل بر مبنای XML است که هر عنصر گزارش مانند قالب بندی، اطلاعات dataset، grouping و sorting، پارامترها و فیلترها را تعریف میکند. همانطور که شما آیتمی را اضافه میکنید، این ساختار دچار تغییرات میشود. 

در IDE این ساختار از شما مخفیست ولی در صورت نیاز به تغییر کلی در گزارشات ، میتوانید از find and replace در این ساختار به صورت مستقیم استفاده نمایید. در VS 2005 و بعد از آن با زدن دکمه F7 در زمان کار با گزارش میتوانید این ساختار را ببینید. به تکه ای از این ساختار در یک گزارش توجه کنید : 

در نسخه ۲۰۰۵ نه ابزار برای ساخت گزارش وجود داشت که در نسخه ۲۰۰۸ کمی تغییر کردند. لیست این ابزار در تصویر زیر آمده است: 

هر گزارش شامل سه بخش ۱- Header ۲- Body ۳- Footer است که در هرکدام از برخی از این ابزار میتوان استفاده کرد. شما میتوانید از امکانات زیر در گزارشات استفاده نمایید که من فقط آنها را نام میبرم : 

• نوشتن expression برای اکثر اجزای گزارش مثلا امکان visibility و ... 

• استفاده از توابع از قبل آماده در نوشتن expression 

• نوشتن expression با زبان VB (مثلا مد تغییر تاریخ) 

• استفاده از پارامترها برای نوشتن query پویا 

• استفاده از فایلهای اسمبلی (dll) : مثلا نوشتن تابعی با زبان c# و استفاده ازآن در گزارش 

• کنترل قوی روی اجزا گزارش 

• امکان قرار دادن sorting و filter بر اساس عناصر محتلف گزارش 

• امکان استفاده از گروه بندی های داده ای تودرتو 

• امکان استفاده از stored procedure و text query به عنوان dataset 

• امکان ساخت گزارشات تعاملی مثلا استفاده از زیرگزارشات 

• استفاده از چندین dataset به عنوان تامین کننده داده 

• امکان دادن به کاربر برای ساختن گزارشات دلخواه با استفاده از report model 

تفاوتهای موجود بین دو نوع گزارش 

 

ساختار گزارشات rdl و rdlc کاملا شبیه هم است ولی در نحوه اجرا و تامین داده با هم کم متفاوت هستند. تفاوتهای موجود را به ترتیب در زیر بیان میکنم : 

 

۱- گزارشات server باید در یک پروژه از نوع report server project و در محیط BIDS افزوده شوند در صورتیکه گزارشات client در یک پروژه معمولی .NET اضافه میشوند. 

 

 

۲- گزارشات server از یک query مستقیم که به صورت stored procedure یا text است به عنوان تامین کننده داده استفاده میکنند در حالی که گزارشات client باید در کد مقداردهی شوند. مثلا داده مربوط به آنها میتواند توسط یک dataset یا یک xml data source تامین شود. در ضمن برای انجام این کار احتیاج به نوشتن مقداری کد مثلا در c# است. 

۳-برای نمایش داده شدن گزارشات server کنترل MicrosoftReportViewer صرفا وظیفه نمایش گزارش در انتهای عملیات را دارد و تمام عملیات برای تهیه گزارش و render آن در report server انجام میشود. این در حالیست که برای نمایش گزارش client کنترل MicrosoftReportViewer نقش اساسی را انجام میدهد و عملیات render شدن گزارش در این کنترل انجام میشود.

kb=169

========
#todo

1- مقاله نیاز به بررسی کارشناسی دارد.
2- دسته بندی تعیین شود.

(0 رای (ها))
مفید
مفید نیست

نظرات (0)
نظری جدید منتشر کنید
 
 
نام کامل:
ایمیل:
نظرات:
تایید کپچا 
 
لطفاً متن موجود در تصویر را در زیر وارد کنید (برای جلوگیری از ارسالهای خودکار).

سیستم پشتیبانی (تیکتینگ) فراگستر