رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
sql server reporting services 2008
#1

با سلام خدمت دوستان

درباره نحوی گزارش گیری در SQL Server 2008 مطالبی میخواستم ولی هر چه جستجو کردم نتونستم پیدا کنم .

اگه ممکنه از دوستان به من کمک کنه تا رو این موضوع کار کنم .

اگر هم لینک مفیدی (فقط فارسی باشه) دراین مورد هست معرفی نمائید .

پیشاپیش از پاسختان سپاسگذارم

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


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

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



Client
Report Server
SQL Server Report Databases

شکل زیر یک تفکیک مفهومی از این سه بخش و اجزا آن است.
[عکس: ssrs-arc-low.jpg]
در اینجا 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 شدن سرور باز هم گزارشات در دسترس هستند.

[عکس: tempdb.jpg]

SSRS Report Server
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
SSRS چهار نوع الحاقیه برای اتصال به پایگاه داده حمایت میکند :



SQL Server
Oracle
OLE DB
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 است که محیطی گرافیکی را برای کاربران مهیا میکند که توسط آن میتوانند گزارشات را ببینند یا چاپ کنند، یا اینکه گزارشات را برای بخشهای مختلف مدیریت کنند.

[عکس: report-manager-low.jpg]

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

[عکس: bids.jpg]

• ابزارهای Command-line
شما میتوانید از چندین ابزار Command-line مانند rs ، rsconfig و RSKeyMgmt برای پیکربندی و مدیریت محیط SSRS استفاده نمایید.


• Custom Clients

• Reporting Services Configuration Manager
ابزاری برای پیکربندی به صورت گرافیکیست که از نسخه ۲۰۰۵ به بعد به وجود آمد.

[عکس: mscm-low.jpg]

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

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



Client Report
Server Report


در Visual Studio 2005 به بعد کنترل جدیدی به آن افزوده شد با نام MicrosoftReportViewer که مخصوص نمایش گزارشات بود. گزارشات فایلهایی با پسوند rdl برای گزارش remote و rdlc برای گزارش clientهستند که میتوانید آن را به پروژه خود بیفزایید. پس از افزودن آن چندین ابزار به شما برای ساخت گزارش داده خواهد شد. شما میتوانید با این ابزارها گزارش مورد نظر خود را بسازید.
RDL یک مدل بر مبنای XML است که هر عنصر گزارش مانند قالب بندی، اطلاعات dataset، grouping و sorting، پارامترها و فیلترها را تعریف میکند. همانطور که شما آیتمی را اضافه میکنید، این ساختار دچار تغییرات میشود.
در IDE این ساختار از شما مخفیست ولی در صورت نیاز به تغییر کلی در گزارشات ، میتوانید از find and replace در این ساختار به صورت مستقیم استفاده نمایید. در VS 2005 و بعد از آن با زدن دکمه F7 در زمان کار با گزارش میتوانید این ساختار را ببینید. به تکه ای از این ساختار در یک گزارش توجه کنید :

[عکس: xml-low.jpg]



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

[عکس: toolbox.jpg]

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


• نوشتن expression برای اکثر اجزای گزارش مثلا امکان visibility و ...
• استفاده از توابع از قبل آماده در نوشتن expression
• نوشتن expression با زبان VB (مثلا مد تغییر تاریخ)
• استفاده از پارامترها برای نوشتن query پویا
• استفاده از فایلهای اسمبلی (dll) : مثلا نوشتن تابعی با زبان c# و استفاده ازآن در گزارش
• کنترل قوی روی اجزا گزارش
• امکان قرار دادن sorting و filter بر اساس عناصر محتلف گزارش
• امکان استفاده از گروه بندی های داده ای تودرتو
• امکان استفاده از stored procedure و text query به عنوان dataset
• امکان ساخت گزارشات تعاملی مثلا استفاده از زیرگزارشات
• استفاده از چندین dataset به عنوان تامین کننده داده
• امکان دادن به کاربر برای ساختن گزارشات دلخواه با استفاده از report model


[عکس: expression.jpg]


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


ساختار گزارشات 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 نیازی ندارند در حالیکه گزارشات server بدون این کار قابل دسترسی نیستند.


۵- کنترل MicrosoftReportViewer در گزارشات client و در نسخه ۲۰۰۵ دارای دکمه چاپ نبودند ولی گزارشات server این مشکل را نداشتند. البته لازم به ذکر است این مشکل در نسخه ۲۰۰۸ حل شده است.


۶-گزارشات client نیازی به publish روی report server ندارند در حالیکه گزارشات server برای اجرا شدن حتما باید publish شوند.

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

منبع

منبع
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط yasamin ، NIMIX3
#3
شاید برای خیلی ها که با SQL Server Reporting Server کار میکنند این سوال پیش آمده باشد که چگونه میتوان برای گزارشات یک قالب از پیش تعیین شده ساخت؟ این دقیقا شبیه Master Page برای صفحات ASP .NET است. پاسخ این سوال به شرح زیر است:



۱- گزارش مورد نظر خود را بسازید. این گزارش باید شامل قسمتهایی باشد که در تمام گزارشات شما تکرار میشود. مثلا اگر در تمام گزارشات شما Header و Footer مورد نیاز است، میتوانید این کار را در قالب خود طراحی کنید.

۲- فایل rdl ساخته شده را با نام مورد نظر در آدرس زیر کپی کنید:

D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject

۳- Visual Studio را باز کنید و یک پروژه Report بسازید.

۴- پس از ساخته شدن پروژه روی پوشه Reports راست کلیک کنید و گزینه Add و سپس New Item را انتخاب کنید. در دیالوگ باز شده باید یک قالب با نام موردنظر خود ببینید. آن راانتخاب کنید.

در گزارش جدید باید تغییراتی که از قبل داده اید را ببینید.



نکته - از این روش شما برای ساختن قالب برای Data Source ها هم میتوانید استفاده کنید.
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط yasamin ، NIMIX3
#4
در Reporting Service چه 2005 و چه 2008 امکان تکرار فیلدها ( textbox یا هر آیتم دیگری ) در صفحات مختلف وجود ندارد و تنها عناصر موجود در Header و Footer گزارش تکرار می شوند و عملا چیزی به عنوان تکرار فیلد در هر صفحه وجود ندارد . برای مثال فرض کنید که شما اطلاعات یک شخص را می خواهید در یک صفحه بدون استفاده از یک جدول نمایش دهید ( مثلا برای صدور برگ خروج از شرکت یا هر چیز دیگری که اطلاعات آن جدولی نیست و برای هر شخص متفاوت با دیگری است ) برای این کار گزارشتان را با استفاده از textboxها در صفحه ایجاد می کنید و برای هر شخص یک پارامتر به گزارش پاس میکنید که این گزارش فقط اطلاعات آن شخص را نشان می دهد . تا اینجا مشکلی نیست ، حالا فرض کنید که شما با استفاده از همان یک پارامتر باید برای تمامی افراد سازمان یک برگ خروج یا یک گواهینامه صادر کنید . اینجاست که ایجاد گزارش یک صفحه ای امکان ندارد و از آنجا که شکل گزارش برای همه افراد ثابت است باید گزارش را به نحوی تغییر بدهید که یک ورودی بگیرد و در خروجی در هر صفحه بطور جداگانه اطلاعات هر شخص را نمایش بدهد .همانطور که گفتم در reporting services چیزی به اسم تکرار در هر صفحه وجود ندارد و عملا ایجاد یک چنین گزارشی امکان پذیر نیست . به نمونه های زیر که حالت های تکرار در ریپورتینگ سرویس هستند دقت کنید .

Header و Footer در جدول ها می تواند در هر صفحه تکرار بشود مشروط بر اینکه آیتم های خود آن جدول، از یک صفه بیشتر شود با اینکار می شود هدر و فوتر table را در هر صفحه نمایش داد . بنابراین اگر شما بخواهید از این حقه برای تکرار در هر صفحه استفاده کنید موفق نخواهید بود . برای مثال شما یک کلمه نام وبلاگ را می خواهید در هر صفحه تکرار کنید و از آنجا که هدر و فوتر یک جدول در هر صفحه تکرار می شود ، این کلمه را در هدر یا فوتر یک جدول می نویسید و ردیف های اضافی را پاک می کنید . با اینکار کلمه نام وبلاگ در اولین صفحه به درستی نشان داده خواهد شد ولی در صفحات بعدی چون آیتم های این جدول ( که متن شما در هدر آن قرار دارد ) از یک صفحه بیشتر نشده ( چون اصلا ردیفی وجود ندارد که آیتم ها زیاد بشود ) پس در نتیجه کلمه نام وبلاگ در صفحه بعدی تکرار نخواهد شد .

یک فیلد ( textbox ) ساده روی صفحه بگذارید و خصوصیت Toggle with Data Region را برابر با یک جدول بگذارید . در این صورت هم باز چیزی تکرار نخواهد شد . چون این خصوصیت در صورت بروز تکرار آن data region ( عموما لیست و جدول و ماتریس ) در صفحه جدید تکرار خواهد شد . این کار حتی اگر آیتم های جدول شما از یک صفحه هم بیشتر شود باز هم چیزی در صفحه بعد را برای شما تکرار نخواهد کرد ، چراکه لیست شما آیتم هایش زیاد شده و در چند صفحه آمده ؛ نه اینکه در صفحه بعد تکرار شده باشد .

روش دیگر آن است که از لیست استفاده کنید یعنی اینکه کلمه نام وبلاگ رادر یک لیست بنویسید . با این کار هم چیزی در صفحه بعد تکرار نمی شود چون این لیست اصلا به چیزی bind نشده و موارد موجود در آن اصلا قابل تکرار نیستند . حتی اگر page break را هم بعد از لیست بگذارید باز هم چیزی تکرار نخواهد شد .

بنابراین برای رفع این مشکل چه کار باید کرد ؟

همه فیلدهایی را که مایلید در هر صفحه تکرار شود را در List بی‌اندازید و یک گروه ایجاد کنید که این گروه بر اساس هر صفحه متفاوت باشد مثلا شماره دانشجویی یا شماره دستگاه یا یک آیتم منحصر بفرد قابل شمارش دیگر . و سپس بعد از لیست یک page break بگذارید. با این کار در صفحه اول همه چیز درست است و بعد از نمایش همه فیلدها ( که همه در لیست هستند ) یک break اتفاق می افتد با اینکار ریپورتینگ سروسی متوجه می شود که باید اطلاعات جدید را با توجه به مقدار موجود در group ایجاد شده در صفحه بعد نمایش بدهد . با اینکار تاوقتی که اطلاعات وجود داشته باشد ، یک صفحه ایجاد شده و در هر صفحه فقط اطلاعات مرتبط با آن گروه خاص ایجاد می شود . این راه حل هم در اس کیوال سرور ریپورتینگ سرویس ۲۰۰۵ و هم در ریپورتینگ سرویس ۲۰۰۸ کار می کند

توجه داشته باشید که شما می توانید از تعداد بسیار زیادی گروه استفاده کنید اما لیست شما که همه آیتم های قابل تکرار در آن هستند باید یک گروه جداگانه و مخصوص به خود داشته باشد که اطلاعات هر صفحه بسته به آن نمایش داده خواهد شد .

منبع
[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط yasamin ، NIMIX3
#5
آموزش حرفه ای Reporting Service در SQL Server 2008


فصل یکم: معرفی معماری Reporting Services (Introducing the Reporting Services Architecture)
فصل دوم: تالیف گزارش: طراحی Queryهای کارآمد (Report Authoring: Designing Efficient Queries)
فصل سوم: مقدمه ای بر Reporting Services Design
فصل چهارم: ساختن گزارش ها (Building Reports)
فصل پنجم: استفاده از کد سفارشی .NET با گزارش ها (Using Custom .NET Code with Reports)
فصل ششم: render کردن گزارش ها از برنامه های .NET (Rendering Reports from .NET Applications)
فصل هفتم: نصب گزارش ها (Deploying Reports)
فصل هشتم: مدیریت گزارش ها (Managing Reports)
فصل نهم: ایمن کردن گزارش ها (Securing Reports)
فصل دهم: تحویل Business Intelligence با استفاده از سرویس report (Delivering Business Intelligence with SSRS)
فصل یازدهم: ایجاد گزارش ها با استفاده از Report Builder، 1.0و 2.0 (Creating Reports Using Report Builder 1.0 and 2.0

Rodney Landrum
دریافت فایل
لینک دوم
رمز عبور: tahlildadeh.com

[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط yasamin ، NIMIX3
#6
آموزش چگونگی استفاده از آخرین نسخه کاراترین نرم افزار ایجاد و مدیریت Database شرکت مایکروسافت موسوم به Microsoft SQL Server

همچنین با این مجموعه به مزایای استفاده از این نرم افزار در محیط .NET Framework پی خواهید برد و قابلیت استفاده از آن ها را بدست می آورید.

انقلاب دیجیتال تب جمع آوری داده ها را در میان تمام افراد ، کسب و کارها و شرکت های کوچک و بزرگ به وجود آورده است ، همگان برای راحتی امور و یا رونق بیشتر تجارت خود از دیتابیس ها استفاده می نمایند .

به مرور زمان که حجم داده های ذخیره شده رو به ازدیاد می گذارد ، نیاز به راهکاری برای تهیه گزارشات معمول و یا سفارشی احساس می گردد ، شرکت مایکروسافت برای این منظور راهکار Microsoft SQL Server Reporting Services را ارائه می کند .







حجم برنامه:۲۷۸ مگابایت

دانلود :لینک مستقیم

پسورد فایل فشرده : www.alborzdownload.com

منبع :www.AlborzDownload.com

[عکس: <a href=www.Mojsazan.com.gif]" class="mycode_img" />
پاسخ
سپاس شده توسط yasamin ، NIMIX3


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان