یکی از محصولات پرکاربرد و حرفه ای مایکروسافت در زمینه تولید گزارش SQL Server Reporting Services یا به اختصار SSRS میباشد . در این پست نحوه ایحاد یک گزارش ساده به صورت والد و فرزندی ، انتشار گزارش روی وب سرور و مدیریت نمایش ستونها با استفاده از Expressionها را در محیط BIDS بیان میکنم
برای انجام این پروسه ، از ابزار BIDS استفاده خواهیم کرد . همچنین برای اطلاعات و دادهها از دیتابیس آزمایشی Adventure works استفاده میکنیم (
دانلود )
صورت مسئله : گزارش از دپارتمانهای کاری و تعداد کارمندان مرد و زن هر دپارتمان . که با کلیک روی هر سطر گزارش (بسته به جنسیت) بتوان لیست تمام افراد آن دپارتمان را دید .
بخش اول :
برای شروع BIDS را باز کرده و یک پروژه از نوع Report Server Project استارت بزنید .
نام این پروژه را در اینجا introductionPrj1 قرار دادم .
همانطور که ملاحظه میکنید ، سه پوشه در Solution explorer قرار دارد که برای تعریف پایگاه داده با پوشه Shared Data Sources و برای تعریف گزارشات از پوشه Reports استفاده خواهیم کرد
برای این منظور ابتدا یک data source تعریف میکنیم :
و سپس شروع به ساختن یک گزارش میکنیم :
مراحل را تا رسیدن به مرحله تعریف Query پی میگیریم .
انتخاب دیتا سورس :
در اینجا میخواهیم قسمت اول گزارش یعنی فهرست کردن تعداد کارمندان هر دپارتمان را به تفکیک جنسیت مشاهده کنیم :
SELECT DEPARTMENTNAME, GENDER, COUNT(1) AS COUNT FROM DBO.DIMEMPLOYEE GROUP BY DEPARTMENTNAME,GENDER ORDER BY DEPARTMENTNAME,GENDER
برای مشاهده صحت دستور میتوانید از Query Builder کمک بگیرید :
ادامه تنظیمات را مانند تصویر پی بگیرید (تعریف Tabular بودن گزارش و طراحی جدول و theme و نام گذاری گزارش )
به این ترتیب بخش اول گزارش ایجاد شد . حال باید زیر گزارش مربوطه را ایجاد کنیم :
مجددا مراحل را برای ساخت یک گزارش جدید پیگیری کنید و برای دستور کوئری از دستور زیر استفاده کنید :
SELECT EMPLOYEEKEY,FIRSTNAME,LASTNAME, MIDDLENAME,TITLE,HIREDATE, BIRTHDATE,EMAILADDRESS,PHONE,GENDER FROM DBO.DIMEMPLOYEE WHERE DEPARTMENTNAME=@DEPARTMENTNAME AND GENDER=@GENDER
و تست گزارش :
و بقیه قسمتها مانند قبل :
تا به این مرحله data source و گزارشها ایجاد شدند :
اکنون باید ارتباط بین دو گزارش را برقرار کنیم :
گزارش والد را باز کرده و روی ستون COUNT کلیک راست نموده و گزینه Popperties را انتخاب نمایید :
سپس در تب action گزینه Go to Report را انتخاب نموده و گزارش فرزند را انتخاب نمایید .
در انتها هم باید پارامترها را تعریف کنید . خروجی مانند زیر خواهد بود :
ToolTip از تب General قابل اعمال است .
و در نهایت با کلیک روی این سطر میتوانید گزارش مرتبط را مشاهده کنید :
تا به این مرحله گزارش تکمیل شد که البته برای ظاهر آن هم باید فکری کرد که در این پست اشاره ای نمیشود .
بخش دوم :
گزارش جاری فقط قابل استفاده از طریق BIDS است و با توجه به محدودیت دسترسی باید آن را در جایی قرار داد تا کاربران بتوانند از آن استفاده کننده . برای این منظور باید تنظیمات SSRS Web Application انجام شود تا بتواند روی سرور عملیاتی قرار گیرد .
در صورتی که تنظیمات SSRS برای قرار گرفتن روی وب سرور انجام نشده باشد و ما بخواهیم گزارش را Deploy کنیم خطا دریافت خواهیم کرد .
پس در ادامه نحوه تنظیم وب سرور را بیان میکنم و پس از آن گزارش را روی وب سرور قرار میدهیم :
برای این منظور باید برنامه Reporting Services Configuration Manager که در مسیر نصب SQL Server است برویم
پس از اتصال به سرور به تب Report Manager Url بروید :
در این مرحله باید سرور را تنظیم کنید تا بتوانیم پروژه را روی آن Deploy کنیم . از باز بودن پورت اطیمنان حاصل کنید . سپس وب سرویس را تنظیم کنید که هر دو فقط شامل نام Virtual Directory و Credential آن میشود . (مگر اینکه تنظیمات خاصی داشته باشید).
در صورت اجرا کردن مسیر URL باید بتوانید صفحه خانگی آن را مشاهده کنید :
که البته هنوز هیچ گزارشی روی آن قرار نگرفته است .سپس به گزارش خود باز میگردیم تا تنظیمات سرور را روی BIDS تکمیل کنیم :
برای این منظور روی پروژه کلیک راست کنید و ابتدا روی Properties کلیک کنید .
تنظمات مهم شامل مسیر سرور که برابر با همان سرویسی است که تنظیم کرده اید و مسیر پوشه ای که گزارشها روی سرور در آن قرار خواهند گرفت ، میباشد.دقت کنید که باید حتما پوشه موجود باشد . اگر به حالت پیشفرش رها کنید ، گزارشات در Root قرار خواهند گرفت .
روی OK کلیک کنید و پروژه را Deploy کنید .
اگر به سایت برگردید ، گزارشات را میتوانید مشاهده کنید
بخش سوم :
در این مرحله میخواهیم یکی از ویژگی هایی که در گزارش گیری کاربرد زیادی دارد ، یعنی نمایش ستونهای دلخواه در گزارش را به کمک SSRS و BIDS به کار ببریم.
برای این منظور به پنجره Report Data مراجعه کرده و روی Parameters کلی راست کرده و گزینه Add Parameter را انتخاب کنید :
فیلدها را مانند زیر پر کنید : (در اینجا میخواهیم یک dropdown به کاربر نشان داده شود تا انتخاب کند که ستون نمایش داده شود یا خیر . همچنین مقدار پیشفرض بله است)
گزینههای مورد نظر را انتخاب نمایید
و تعیین مقدار پیش فرض
و نتیجه در BIDS :
اکنون باید تغییر مقدار این ستون را بر روی گزارش اعمال کنیم :
برای همین منظور روی ستون BirthDate در حالت Design کلیک راست کرده و گزینه Column Visibility را انتخاب کنید :
سپس باید تنظیم کنیم که در نمایش و عدم نمایش این ستون باید بر اساس یک عبارت یا expression باشد .
عبارت زیر را وارد کنید (به این معنی که اگر مقدار 1 بود نمایش داده شود در غیر این صورت نمایش داده نشود) برای اطلاعات بیشتر در مورد دستورات Expression به
اینجا و
اینجا و
اینجا مراجعه کنید
=iif(Parameters!ShowBirthDate.Value=1,true,false)
اکنون میتوانید گزارش را deploy کنید و تنظیمات سطوح دسترسی کاربران را انجام دهید