[B]تاریخچه JasperReports[/B] در سال ۲۰۰۱ فردی با نام [B]Teodor Danciu[/B] روی پروژه* ای که نیازمند ابزارهای گزارش گیری بود، شروع به فعالیت کرد و نتیجه این تحقیقات سبب معرفی ابزاری با نام JasperReports گردید.

در آن زمان بروز مشکل بالا بودن هزینه توسعه پروژه نرم افزاری، سبب متوقف شدن آن گردید. با این وجود او کار روی JasperReports را در اوقات فراغتش آغاز کرد. سرانجام او پروژه ی خود را در سپتامبر ۲۰۰۱ در سایت [برای نمایش لینک باید عضو شوید. ] ثبت کرد. مدتی بعد، (با وجود اینکه او هنوز هیچ کدی از محصول خود را منتشر نکرده بود) email هایی را از کاربران علاقه مند به JasperReports* دریافت نمود.
نسخه ی ۰٫۱٫۵ JasperReports در نوامبر ۲۰۰۱ منتشر شد. از آن پس JasperReports محبوب شد و هنوز هم یکی از محبوب ترین ابزارهای گزارش*گیری جاوا می*باشد. سپس در April سال ۲۰۰۵ شرکت JasperSoft ( توسعه دهنده ابزارهای مانند iReport Visual Designer) تصمیم به پشتیبانی همه جانبه از این ابزار گرفت و با بستن یک قرارداد همکاری با Teodor Danciu از آن تاریخ به بعد توسعه JasperReports* را از طرف شرکت فوق صورت می پذیرد. شرکت مذکور در ادامه حدود ۸ میلیون دلار روی JasperReports سرمایه گذاری نمود. با توجه به آمارهای ارائه شده توسط شرکت JasperSoft* در هر ماه حدود ۲۰۰۰۰ بار ابزار JasperReports دانلود می شود. [B]JasperReports چیست؟[/B] JasperReports یک ابزار قوی گزارش گیری می باشد که توسط زبان جاوا پیاده سازی شده است و در واقع متشکل از تعدادی کتابخانه جاوا و بصورت کد باز یا open source می باشند. هدف از تولید این ابزار آن است که توسعه دهندگان جاوا قادر به اضافه کردن قابلیت های گزارش گیری در برنامه های خود گردند. به دلیل*اینکه JasperReports یک ابزار مستقل نیست، نمی*تواند به تنهایی نصب شود، ولی با معرفی مسیر قرارگیری کتابخانه JasperReports در CLASSPATH می توان از آن در برنامه های خود استفاده نمود. در آغاز کار JasperReports برای اضافه کردن قابلیت های گزارش گیری به برنامه های مبتنی بر وب (ایجاد شده با تکنولوژی Servlet API) استفاده می شود، ولی هیچگونه وابستگی به Servlet API یا هر کتابخانه Java EE ندارد و به هیچ وجه به برنامه*های وب محدود نمی*شود. JasperReports چیزی نیست جز یک کتابخانه جاوا که دارای یک رابط برنامه نویسی کاربر برای آسان کردن توانایی تولید گزارشها از هر نوع در Java Application ها می باشد. JasperReports نیاز به ۱٫۳ JDK یا نسخه ی جدیدتر آن دارد تا بتواند برنامه هایی که شامل کلاس های JasperReports هستند را بطور موفقیت آمیز کامپایل کند و همچنین نیاز به Java Runtime Environment 1.3 یا نسخه ی جدید تر آن دارد تا بتواند این برنامه ها را به طور موفقیت آمیز اجرا نماید. [B]نسخه های مختلف JasperReports [/B] [TABLE="align: center"]
[TR]
[TD](2009-07-03 )[/TD]
[TD]JasperReports 3.5.2[/TD]
[/TR]
[TR]
[TD](2009-05-04 )[/TD]
[TD]JasperReports 3.5.1[/TD]
[/TR]
[TR]
[TD](2009-03-26 )[/TD]
[TD]JasperReports 3.5.0[/TD]
[/TR]
[TR]
[TD](2009-02-10 )[/TD]
[TD]JasperReports 3.1.4[/TD]
[/TR]
[TR]
[TD](2009-01-12 )[/TD]
[TD]JasperReports 3.1.3[/TD]
[/TR]
[TR]
[TD](2008-11-04 )[/TD]
[TD]JasperReports 3.1.2[/TD]
[/TR]
[TR]
[TD](2008-09-17 )[/TD]
[TD]JasperReports 3.1.0[/TD]
[/TR]
[TR]
[TD](2008-08-08 )[/TD]
[TD]JasperReports 3.0.1[/TD]
[/TR]
[TR]
[TD](2008-05-19 )[/TD]
[TD]JasperReports 3.0.0[/TD]
[/TR]
[TR]
[TD](2008-03-12 )[/TD]
[TD]JasperReports 2.0.5[/TD]
[/TR]
[TR]
[TD](2008-01-11 )[/TD]
[TD]JasperReports 2.0.4[/TD]
[/TR]
[TR]
[TD](2007-12-11 )[/TD]
[TD]JasperReports 2.0.3[/TD]
[/TR]
[/TABLE]

شما می توانید نسخه های جدیدتر این محصول را از سایت sourceforge.net دانلود نماید.
[B]ویژگی های [/B] [B] JasperReports[/B] علاوه بر داده های متنی، JasperReports قادر است تا گزارش های حرفه ای که شامل تصاویر، نمودارها و گراف ها باشند را تولید نماید. بعضی از ویژگی های اصلی این محصول عبارتند از: [B]·[/B] محیط صفحه آرایی در این محصول دارای انعطاف پذیری زیادی می باشد. [B]·[/B] قادر است داده ها را به صورت متنی یا گرافیکی نمایش دهد. [B]·[/B] می تواند داده ها را از چندین منبع داده بپذیرد. مثلاً می توان یک متن ثابت را تنظیم کرد تا در گزارش نشان داده شود. پس در این صورت از یک empty datasource استفاده شده است. یا می توان از یک منبع داده مثل database استفاده کرد و اطلاعات ذخیره شده در پایگاه داده را به صورت یک گزارش نشان داد و … [B]·[/B] قادر است تا گزارش ها را به شکل های مختلف نمایش دهد. مثلا می تواند از تکنیک Watermarks استفاده نماید و یا قادر به تولید زیر گزارش (subReports) می باشد. گزارش های تولیدی توسط JasperReports را می توان در قالب های مختلفی ارائه نمود. از جمله: [B]·[/B] PDF ( Portable Document Format ) [B]·[/B] XLS ( Excel ) [B]·[/B] RTF ( Rich Text Format ) [B]·[/B] HTML ( HyperText Markup Language ) [B]·[/B] XML ( Extensible Markup Language ) [B]·[/B] CSV ( Comma-Separated Values ) [B]·[/B] plain text ( متن ساده ) در ادامه تصویری از خروجی یک گزارش که توسط JasperReports ایجاد شده و به صورت یک فایل PDF می باشد را مشاهد می نمایید. [برای نمایش لینک باید عضو شوید. ] برای مشاهده تصویر در ابعاد بزرگتر، روی آن کلیک کنید [B] Flexible Report Layout[/B] همانطور که گفته شد، JasperReports دارای یک محیط صفحه آرایی انعطاف پذیر می باشد. ابزار فوق به ما اجازه می دهد تا داده های مختلف خود را در بخش ها جداگانه محیط قرار دهیم. بخش های مختلف محیط گزارش گیری JasperReports عبارتند از: «1» [B][U]عنوان گزارش[/U][/B] که فقط یکبار و در ابتدای هر گزارش قرار می گیرد. «2» [B][U]بخش سر صفحه (Page Header)[/U][/B] که در بالای هر صفحه از گزارش قرار می گیرد.
«3» [B][U]بخش جزئیات (Detail Sections)[/U][/B] که شامل داده های مورد نظر ما جهت نمایش بوده و بین دو بخش 2 و ۳ قرار می گیرد. «4» [B][U]بخش پایین صفحه (Page Footer)[/U][/B] که در پایین هر صفحه از گزارش قرار می گیرد. «5» [B][U]بخش خلاصه وضعیت (Summery Sections)[/U][/B] که در انتهای هر گزارش قرار می گیرد. «تذکر» JasperReports بجز پنج بخش فوق، شامل بخش های دیگری نیز می باشد که در مقالات بعدی به آنها خواهیم پرداخت. ویژگی دیگر وجود امکان گروه بندی داده های بر اساس یک فیلد یا مجموعه ای از فیلدها می باشد. این ویژگی یکی از پر کاربردترین ویژگیهای JasperReports میباشد که به کمک آن می توان گزارش های متنوعی را ایجاد نمود. در حین گروه بندی داده ها وجود امکان subTotal سب می شود تا در پایان هر گروه و در صورت نیاز بتوان یک جمع بندی از دادهای گروه فوق بدست آورد. مثلا می خواهیم طی گزارشی بفهمیم فروشنده های یک فروشگاه (به تفکیک هر فروشنده) چه کالاهایی را فروخته و مجموع درآمد حاصل از این فروش چقدر است. ایجاد چنین گزارشی به کمک دو ویژگی فوق امکان پذیر است. [B]Multiple Ways to Present Data[/B] داده*های مورد نیاز یک گزارش از طرق مختلفی قابل دسترس و ارسال به گزارش می*باشند. به عنوان نمونه می*توان داده*های مورد نیاز را از یک بانک اطلاعات یا از یک فایل متنی دریافت نمود. راه دیگر ارسال داده های بصورت دستی و به کمک عبارات متنی می باشد. اما روش دیگری نیز وجود دارد و آن بدست آوردن داده های مورد نیاز از طریق انجام محاسبات بر روی فیلدهای عددی یا ترکیب مقادیر فیلدهای متنی و … می باشد. [B]Multiple Ways to Supply Data[/B] توسعه دهندگان نرم افزار، برای ارسال داده های مورد نیاز به گزارش می توانند از پارمترهای موجود در محیط ایجاد گزارش استفاده نمایند. این پارامتر ها در حقیقت نمونه*هایی از کلاس*های جاوا می*باشند که بر اساس نوع داده مورد استفاده قرار می*گیرند. یکی از انواع ویژه کلاس ها برای ارسال داده ها به گزارش، datasource ها می باشند. از جمله datasource های معروف می توان به موارد زیر اشاره نمود: [B]۱- XML files[/B] [B]2- Plain Old Java Objects (POJOs)[/B] [B]3- Any class implementing the java.util.Map interface[/B] [B]4- And any class implementing the javax.swing.TableModel interface[/B] [B]5- JDBC datasources[/B] [B]6- custom datasources[/B] [B]custom datasources : [/B]اگر قرار باشد از یک منبع داده ای که توسط JasperReports پشتیبانی نمی شود استفاده کنیم، باید یک datasources ایجاد نموده و از آن جهت انتقال داده ها به JasperReports استفاده نماییم. [B]Watermarks[/B] یکی از ویژگی های JasperReports استفاده از امکان Watermarks می باشد. به کمک این ویژگی در گزارش می توان به عنوان نمونه از یک تصویر در زمینه کار سود جست. مزایای انجام چنین کاری عبارتند از : اول آنکه ممکن است شرکتی تمایل به قرار دادن آرم یا لوگوی شرکت خود در زمینه گزارشات خود باشد. دومین کار آن است اگر تصویری در زمینه گزارش قرار بگیرد، به راحتی نمی توان از روی گزارش فوق جعل نمود و یک گزارش جعلی ایجاد کرد.