آشنایی کامل با SQL Server Reporting Services
SSRS چیست و چه مزایایی دارد؟
در هر سازمانی واحد های مختلفی وجود دارند که در تلاشند تا گزارشات مختلفی از دادههای خود بدست آورند.
برای مثال، ممکن است که واحد فروش بخواهد بررسی کند که روند فروش در هفته گذشته به تفکیک مشتری، روزهای فروش، تخفیفات و غیره به چه شکل بوده است. چنین گزارشاتی عموما از لحاظ حجمی بسیار سنگین بوده و تحلیل خروجی های بدست آمده و توزیع آنها توسط برنامه های پایه ای تری همچون اکسل امکان پذیر نیست.
Microsoft SQL Server Reporting Services – SSRS در یک کلام؟
SSRS یک ابزار تولید گزارش است که کمک می کند تا افراد مختلف از سطوح و حتی مکان های مختلف سازمان به گزارشات متعددی که توسط این برنامه طراحی شده اند دسترسی داشته. از آنجایی که SSRS یکی از اجزاء مجموعه SQL Server است، بنابراین، قاعدتا این نرم افزار مبتنی بر سرور کار می کند و دادههای خود را از دیگر اجزاء SQL Server دریافت خواهد کرد.
اما میدانیم که خیلی از شرکت ها از SQL Server استفاده نمی کنند. به همین دلیل SSRS این قابلیت را دارد که دادههای خود را از دیگر پایگاه های داده رابطه ای (Relational Databases) همچون Oracle و همچنین دیگر منابع داده ای مثل SQL Server Analysis Services (SSAS)، Teradata، انبارهای داده موازی (Parallel Data Warehouse) و حتی فایل های XML و غیره دریافت کند.
نصب SSRS
زمانی که میخواهید نسخه های ۲۰۰۵ و ۲۰۰۸ از SQL Server را نصب کنید در یکی از مراحل باید Reporting Service را برای نصب انتخاب کنید. در ادامه باید تیک مربوط به Configure کردن خودکار Reporting Server را بزنید. اگر این گزینه را انتخاب نکنبد باید عملیات پیکربندی را به صورت دستی انجام دهید.
از چه عناصری می توان در گزارشات SSRS استفاده کرد؟
SSRS تقریبا امکان استفاده از تمامی عناصر متداول در تهیه گزارشات همچون جداول، نمودار، بخصوص نمودار روند (Sparkline) و همچنین نقشه را به تمامی کاربران می دهد.
SSRS این قابلیت را دارد که افراد از طریق سیستمی به نام Subscription یک اشتراک سفارشی دریافت کنند و طبق زمان های مشخص شده برای مثال، ساعتی، روزانه، هفتگی، ماهانه و غیره گزارشات مورد نیاز خود در پوشه ای تعریف شده دریافت کنند. SSRS کمک می کند تا بتوانیم گزارشات را در نرم افزارهای تحت وب یا ویندوز دریافت کنیم یا از طریق SharePoint به کاربران توزیع کنیم. ( اگر با شیرپوینت آشنایی نداری توصیه میکنم مقاله ساختار مفهومی شیرپوینت رو از دست ندی.)
اجزاء یک گزارش در SSRS
نه تنها در SSRS بلکه در هر ابزار یا نرم افزار گزارش گیر دیگری که ممکن است شما با آن سر و کار داشته باشید، بایستی سه عنصر را به هم وصل کنید تا یک گزارش خلق شود.
- عنصر اول: چگونه به دادهها دسترسی پیدا کنیم؟
اول از همه، اینکه دادههای گزارشی که می خواهیم طراحی کنیم از کجا خوانده می شوند یا اصلاحا منبع دادههای ما (Data Source) کجاست؟
به بیانی ساده تر، پایگاه داده ما دقیقا بر روی چه سرور یا کامپیوتری قرار گرفته است. چگونه می شود به آن دسترسی داشت؟
مسلما بر روی هر سرور یا کامپیوتری، چندین پایگاه داده وجود دارد. هدف ما دقیقا کدام یکی از پایگاه های داده است؟
در نهایت، برای اینکه به پایگاه داده مورد نظر خود وصل شویم، چه اجازه هایی را نیاز داریم؟
- عنصر دوم: کدام بخش از دادهها را می خواهیم؟
بعد از اینکه منبع دادههای خود را مشخص کردیم، حالا باید انتخاب کنیم که دقیقا چه بخشی از پایگاه داده را می خواهیم یا اصطلاحا Data Set مد نظر ما چیست.
کدام جداول، ستون ها و سطرها را نیاز داریم و بر اساس چه شرایط و ترتیبی. یادمان باشد که ما برای تهیه گزارش عموما به تمامی جداول و دادهها سر و کار نداریم، بنابراین باید آنچه را که مد نظر است انتخاب و استفاده کنیم.
- عنصر سوم: چگونه دادهها را نمایش دهیم؟
حال که هم به منبع دادهها وصل شده ایم و دقیقا هم می دانیم که چه بخشی از دادهها را می خواهیم گزارش دهیم، این سوال مطرح می شود که چگونه دادهها را نمایش دهیم که بیشتر تاثیر گذار باشند.
سوالاتی همچون اینکه از چه فونت و رنگی استفاده کنیم یا اینکه چه نموداری را بکار گیریم تا مفهوم به بهترین شکل رسانده شود، بسیار ابتدایی بنظر می رسند اما در عمل اهمیت آنها پررنگ خواهد شد. همچنین، آیا به کاربر اجازه بدهیم که با گزارشات تعامل داشته باشد یا خیر.
معماری SSRS
سه کامپوننت اصلی وجود دارد که با یکدیگر کار کرده و (SSRS (SQL Server Reporting Services را به یک برنامه چندلایه واقعی تبدیل میکند. این سه عبارتند از :
- Client
- Report Server
- SQL Server Report Databases
- عنصر اول: چگونه به دادهها دسترسی پیدا کنیم؟
نصب SSRS دو پایگاه داده برای شما میسازد :
ReportServer
این پایگاه داده اصلی است که تمامی اطلاعات را از فایل RDL منتشر شده در حود ذخیره میکند. همچنین مواردی چون خصوصیات گزارش (مانند data sourceها)، پارامترها و فایل های لاگ را در خود نگهداری میکند.
ReportServerTempDB
این پایگاه داده کپی های cach شده گزارشات را برای بالا بردن کارایی به جهت استفاده همزمان کاربران در خود دارد. با این مکانیزم این اطمینان را داشته باشیم که حتی در صورت restart شدن سرور باز هم گزارشات در دسترس هستند.SSRS Report Server مهمترین نقش را در مدل SSRS ایفا میکند.
برای هر درخواست از سمت client برای render کردن یک گزارش یا برای انجام یک درخواست مدیریتی مانند ساخت یک subscription مسئول است.
شما متوانید یک report server را با توجه به عملیات های مختلف به چندین زیربخش تفکیک کنید :
- Programming interface
- Report processing
- Data processing
- Report rendering
- Report scheduling and delivery
- SSRS Web Service Interface
رابط برنامه نویسی که به عنوان API های .NET Web Service و متدهای دسترسی URL ظاهر میشوند، تمامی درخواست های ورودی از client ها را خواه درخواست گزارش باشد، خواه درخواست مدیریتی، اداره میکند. با توجه به نوع درخواست، رابط برنامه نویسی با دسترسی به پایگاه داده Report Server یا ارسال آن به کامپوننت دیگر برای پردازش اقدام میکند.
Report Processor :
این کامپوننت مسئول تمامی درخواست های گزارش است. مانند رابط برنامه نویسی، مستقیما به پایگاه داده ReportServer متصل میشود تا اطلاعات مربوط به تعریف گزارش را دریافت کند که این اطلاعات بعدا برای ترکیب با اطلاعات data source و ساخت گزارش به کار میرود.
Data Processing
Data Processing چهار نوع الحاقیه برای اتصال به پایگاه داده حمایت میکند :
- SQL Server
- Oracle
- OLE DB
- ODBC
وقتی که این کامپوننت یک درخواست را Report Processor دریافت میکند، یک اتصال به data source میزند و آن را به query منبع ارسال میکند. داده بازگردانده شده و به Report Processor فرستاده میشود تا با تعریف گزارش ترکیب شود.
Report Rendering
این کامپوننت وظیفه render گزارش در فرمت موردنظر را دارد. فرمت های مورد حمایت عبارتند از :
- HTML
- Excel
- CSV
- MHTML
- TIFF
برای یادگیری SSRS از پکیج زیر استفاده کنید
ابزارهای SSRS
Report Manager
این یک برنامه browser base همراه با (SSRS (SQL Server Reporting Services است که محیطی گرافیکی را برای کاربران مهیا میکند که توسط آن میتوانند گزارشات را ببینند یا چاپ کنند، یا اینکه گزارشات را برای بخش های مختلف مدیریت کنند.
SQL Server Business Intelligence Development Studio (BIDS)
اگر شما روی سیستم خود Visual Studio نداشته باشید و SQL Server Reporting Services)SSRS) را نصب کنید، خود SQL Server برای شما Visual Studio IDE را برای شما نصب میکند تا شما بتوانید به راحتی به طراحی و تست گزارشات خود بپردازید.
این IDE را با نام SQL Server Business Intelligence Development Studio نصب کرده و با انتخاب آن میتوانید به راحتی به آن دست یابید. البته باید بگویم برای ساخت گزارشات وجود این IDE الزامی نیست.
ابزارهای Command-line: شما میتوانید از چندین ابزار Command-line مانند rs ، rsconfig و RSKeyMgmt برای پیکربندی و مدیریت محیط SSRS استفاده نمایید.
Reporting Services Configuration Manager: ابزاری برای پیکربندی به صورت گرافیکیست که از نسخه ۲۰۰۵ به بعد به وجود آمد.
انواع گزارشات و ساختار آن ها
به طور کلی دو نوع گزارش در RS موجود است:
- Client Report
- Server Report
در Visual Studio 2005 به بعد کنترل جدیدی به آن افزوده شد با نام MicrosoftReportViewer که مخصوص نمایش گزارشات بود.
گزارشات فایل هایی با پسوند rdl برای گزارش remote و rdlc برای گزارش client هستند که میتوانید آن را به پروژه خود بیفزایید.
پس از افزودن آن چندین ابزار به شما برای ساخت گزارش داده خواهد شد. شما میتوانید با این ابزارها گزارش مورد نظر خود را بسازید.
گزارش از نوع RDL
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 شدن گزارش در این کنترل انجام میشود.
گزارشات client به نصب (SSRS(SQL Server Reporting Services نیازی ندارند در حالیکه گزارشات server بدون این کار قابل دسترسی نیستند.
کنترل MicrosoftReportViewer در گزارشات client و در نسخه ۲۰۰۵ دارای دکمه چاپ نبودند ولی گزارشات server این مشکل را نداشتند. البته لازم به ذکر است این مشکل در نسخه ۲۰۰۸ حل شده است.
گزارشات client نیازی به publish روی report server ندارند در حالیکه گزارشات server برای اجرا شدن حتما باید publish شوند.
دوره های مرتبط
آموزش ویدیویی هوش تجاری در SQL
شما در این دوره آموزشی با مفاهیم و اصول هوش تجاری در SQL آشنا می شوید و متوجه می شوید که برای ساخت یک داشبورد در هر نرم افزاری نیاز به چه مراحل و اصول و پایه هایی دارید همچنین با سیستم های هوش تجاری بزرگ آشنا شده و خود را برای تحلیل طراحی و پیاده سازی یک سامانه هوش تجاری آماده می کنید.
دوره کامل مقدماتی آموزش هوش تجاری
شما در این دوره آموزشی (دوره کامل مقدماتی آموزش هوش تجاری) با مفاهیم و مقدمات هوش تجاری در SQL آشنا می شوید و متوجه می شوید که برای ساخت یک داشبورد در هر نرم افزاری نیاز به چه مراحل و اصول و پایه هایی دارید همچنین با سیستم های هوش تجاری بزرگ آشنا شده و خود را برای تحلیل طراحی و پیاده سازی یک سامانه هوش تجاری آماده می کنید.
دوره آموزش SSAS یا سرویس آنالیز ماکروسافت
دوره آموزش SSAS شامل آموزش کامل تمامی مباحث آنالیز داده و ساخت کیوب در سرویس آنالیز
دوره آموزش SSIS یا سرویس یکپارچه ساز ماکروسافت
دوره غیر حضوری SSIS شامل آموزش کامل تمامی مباحث ای تی ال (ETL ) داده ها به صورت کاملا عملی در محیط عملیاتی و مطابق با تکنولوژی های روز دنیا
6 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام
من سرویس SSRS رو نصب کردم ولی Visual Studio ندارم . و SQL Server Business Intelligence Development Studio هم یرا نصب نشده
چطوری میتونم به محیط طراحی این سرویس درسترسی پیدا کنم ؟؟؟؟
با سلام و وقت بخیر و تشکر از ارتباطتتون با این مرکز
ببینید هنگام نصب اس کیو ال سرور باید تیک Reporting Service زده بشه و بعد از اون به کمک یو آیی که خودsql server reporting service configuration manager در اختیار شما قرار می ده می تونید به محیط SSRS دسترسی پیدا کنید.
در ضمن به منظور طراحی گزارشات و آپلود در این محیط به جهت هاست کردن گزارش باید از نرم افزار Report Builder استفاده کنید که قابل دانلود و استفاده است
با سلام و وقت بخیر.
یک سوال داشتم در مورد ssrs
من یه گزارش با ریپرت بیلدر دارم که یکسری پارامتر هم داره،
الان گفتن یه کاری کنید که دفعه اول گزارش را run میکنیم همه آیتمهای گزارش نشون داده بشه «یعنی بدون اعمال پارامترها»
ممنون میشم راهنمایی کنید.
سلام وقت بخیر
این مورد در دوره های SSRS ما صحبت شده است. اگر اونها رو تهیه کنید قطعا به راحتی می تونید اینکار رو انجام بدید. به صورت خلاصه باید بگم باید طوری به سیستم بقبولونید که وقتی در ابتدای کار فرم لود شد یه خط کد اس کیو ال با مقدار خالی اجرا بشه.
دوره های SSRS محتوای ویدئویی هست یا نوشتاری؟
با سلام
تمامی محتویات سایت ویدیویی می باشد. همچنین دمویی از آنها در بخش فروشگاه => دوره های رایگان قابل مشاهده می باشد.