گامهای لازم برای تولید گزارش توسط JasperReports
فلوچارت زیر روند کار تولید گزارش توسط JasperReports را نشان می دهد.

همانطور که در فلوچارت فوق مشخص است اولین مرحله، تولید الگوی گزارش می باشد که این الگو به صورت یک فایل XML ذخیره می شود. اگر چه الگوهای گزارشی JasperReports، بصورت فایل های XML هستند، ولی این فایلها با پسوند jrxml ذخیره می شوند. در ادامه نمونه ای از این الگوها را مشاهده می*نمایید:
کد PHP:
[LEFT]<?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
      "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
       <jasperReport name="simple_template">
              <title>
                      <band height="50">
                      </band>
[/LEFT] [LEFT]         </title>
      <pageHeader>
           <band height="50">
           </band>
      </pageHeader>
      <columnHeader>
           <band height="30">
           </band>
      </columnHeader>
      <detail>
            <band height="100">
            </band>
      </detail>
      <columnFooter>
            <band height="30">
            </band>
      </columnFooter>
            <pageFooter>
                     <band height="50">
                     </band>
            </pageFooter>
      <lastPageFooter>
            <band height="50">
            </band>
      </lastPageFooter>
      <summary>
            <band height="50">
            </band>
      </summary>
    </jasperReport>
[/LEFT]
الگوی فوق نشان دهنده تگ های اصلی این نوع فایل می باشد. اگر این الگو را کامپایل کنیم و نتیجه کار را اجرا نماییم، یک گزارش خالی «صفحه سفید» به ما نشان خواهد داد. اگر به الگوی فوق دقت کنید، خواهید دید که تگ [B]<band>[/B]، تگی است که زیاد مورد استفاده قرار گرفته است. این تگ در واقع محلی است که داده ها و فرمت نمایش آنها، در آن قرار می گیرند. در الگوی بالا تمام تگ های <band> موجود خالی می باشند. تولید الگوها از دو طریق ممکن می باشد. اول بصورت دستی و دوم به کمک نرم افزارهای موجود مانند [B] iReport .[/B]
در مرحله بعد، فایل JRXML یا همان الگوی ایجاد شده برای تولید گزارش به کمک متد های مناسب موجود در JasperReports class library مانند [B] JasperCompileManager.compileReport[/B] کامپایل می شود. نتیجه حاصل از عمل کامپایل الگو، به صورت یک فایل [B]Jasper[/B] شناخته می *شود و با پسوند jasper ذخیره می شود.
اکنون نوبت به انجام مرحله با نام [B]filling the report [/B] می رسد. در این مرحله فایل Jasper ایجاد شده آماده تولید گزارش مورد نظر بوده و فقط کافیست که با داده های مناسب پر شود. به عبارت دیگر Query مورد نظر را اجرا کرده و داده های حاصل از اجرای آن را به فایل Jasper* منتقل نماییم. در این حالت خواهید دید که به نوعی در حال پر کردن الگوی گزارش تولید شده با داده ها و در نتیجه ایجاد گزارش نهایی می باشیم.
یک فایل JRXML یا الگو، تنها باید یکبار کامپایل شود اما فایل Jasper تولید شده می تواند چندین بار برای تولید و نمایش گزارش ها filled شود. « منظور از این جمله آن است که پس از تولید و کامپایل الگوی گزارش، با ورود داده های متفاوت که حاصل از Query های متفاوت است، می توان عمل گزارش گیری را انجام داد.» گزارش های filled شده با عناون فایل های JasperPrint شناخته شده و با پسوند jrprint ذخیره می شوند. فایل های JasperPrint تنها توسط ابزارهای نمایش گزارش JasperReports قابل مشاهده می*باشند. این فایل ها می توانند به فرمت های دیگر نیز تبدیل شوند، مانند [B]PDF. [/B]بنابراین می توانند با ابزارهایی مثل PDF Viewers و Word Processors نیز نمایش داده شوند.

[B] JasperReports Viewer چیست؟[/B]
[B]JasperReports [/B]شامل یک کلاس کمکی به نام [B]net.sf.jasperreports.view.JasperViewer [/B]میباشد که از آن برای دیدن گزارشات استفاده میشود. در حقیقت از این ابزار برای مشاهده پیش نمایش گزارش استفاده می*شود.*این کلاس در مسیر [B]jasperreports-3.1.3\src\net\sf\jasperreports\view[/B] قرار دارد. در این مسیر فایلی به نام [B]JasperViewer.java[/B] وجود دارد.

در این فایل چگونگی ایجاد پنجره گزارش یا JasperViewer و تنظیمات مربوط به آن نوشته شده است.

ایجاد اولین گزارش
قبل از شروع کار، ابتدا از نصب JasperReports بر روی سیستم و راه اندازی آن در محیط Netbeans مطمئن شوید. برای کسب اطلاعات بیشتر مقاله شماره ۳۲ را مطالعه نمایید. اکنون شما آماده هستید تا یک برنامه ساده جاوا بنویسید که یک الگوی JasperReports را می خواند و گزارش مربوط به آن را تولید می کند.

حال مراحل زیر را به ترتیب انجام دهید.

1- وارد محیط NetBeans شده و File » New Project را انتخاب نمایید. از قسمت java ، Categories و از قسمت Java Application ،Projects را انتخاب کرده و گزینه Next را کلیک نمایید.
۲- در پنجره باز شده، اسم پروژه را [B] JasperReportsDemoApp[/B] تایپ کرده و دکمه Finish را کلیک نمایید.
۳- در پنجره سمت چپ محیط NetBeans که لیست پروژه ها در آن قرار دارد، پروژه [B] JasperReportsDemoApp[/B] را باز کرده و روی Libraries کلیک راست کرده و گزینه Add Library را انتخاب نمایید. سپس کتابخانه JasperReports-3.5.3 را به آن اضافه نمایید.
4- اکنون یک برنامه جاوا با نام JasperReportsDemoApp ایجاد کرده و کد زیر را در آن قرار دهید. «می توانید کد فوق را بخش دانلود انتهای مقاله دانلود نمایید»

کد PHP:
[LEFT]import java.util.HashMap;
    
import java.util.Map;
    
import net.sf.jasperreports.engine.JREmptyDataSource;
    
import net.sf.jasperreports.engine.JRException;
    
import net.sf.jasperreports.engine.JasperCompileManager;
    
import net.sf.jasperreports.engine.JasperExportManager;
    
import net.sf.jasperreports.engine.JasperFillManager;
    
import net.sf.jasperreports.engine.JasperPrint;
    
import net.sf.jasperreports.engine.JasperReport;
    
import net.sf.jasperreports.view.JasperViewer;
[/
LEFT
کد PHP:
    public class JasperReportsDemoApp {
       public static 
void main(String []args){ 
کد PHP:
[LEFT]      String reportSource "./report/templates/HelloReportWorld.jrxml";
          
String reportDest "./report/results/HelloReportWorld.jasper";
          
Map<StringObjectparams = new HashMap<StringObject>();
          try
             {
                    
JasperCompileManager.compileReportToFile(reportSource reportDest);
                   
JasperPrint jasperPrint =JasperFillManager.fillReport(reportDestparams, new JREmptyDataSource());
                   
JasperViewer.viewReport(jasperPrint);
             }
          catch (
JRException ex){
                   
ex.printStackTrace();
             }
       }
    
     }
[/
LEFT
نکات مهم در کد فوق عبارتند از:
«1» برای خوانایی بهتر برنامه و مدیریت بهتر پروژه، در پوشه اصلی پروژه، یک پوشه با نام Reports و در آن دو پوشه با نامه های templates و results ایجاد نمایید. در پوشه templates* الگوهای مورد استفاده در برنامه ودر پوشه results* نتایج اجرای برنامه را قرار می دهیم. در برنامه نیز با کمک دو خط پررنگ اول برنامه مسیر این پوشه ها را اعلام می نماییم.
«2» در مرحله بعد الگوی تعیین شده توسط کامپایلر JasperReports* کامپایل شده و بصورت یک فایل با پسوند jasper در پوشه results قرار می گیرد.
«3» سومین مرحله پر کردن الگوی کامپایل شده با داده ها می باشد. این عمل توسط متد [B] fillReport [/B]انجام می شود.
«4» آخرین مرحله، نمایش نتیجه کار توسط متد [B]viewReport [/B]یا همان پیش نمایش گزارش می باشد.
**********************************
۵- این مرحله آخرین عملی است که باید انجام دهید. در مرحله باید الگوی گزارش را ایجاد نمایید. برای این کار فایلی با نام [B] HelloReportWorld.jrxml [/B]در پوشه [B]templates[/B] ایجاد نمایید و عبارات زیر را در آن قرار دهید.
کد PHP:
[LEFT] 
[/LEFT] [LEFT]<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
    "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
[/LEFT]
کد PHP:
    <jasperReport name="HelloReportWorld">
       <
detail>
             <
band height="200">
                   <
staticText>
                         <
reportElement x="0" y="0" width="500" height="20"/>
                         <
text><![CDATA[Hello Report World!]]></text>
                   </
staticText>
              </
band>
       </
detail>
    </
jasperReport
6- حال برنامه خود را اجرا کرده و نتیجه کار را با تصویر زیر مقایسه نمایید.