iReport應用總結1

關於如何使用iReport通過各種數據源生成報表模板,網上資料很多,我不再綴述。以下僅是記錄了簡單的編程步驟;
1,採用了javabean作爲數據源

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;

import com.known.pojo.ProductBean;



/**
 * Servlet implementation class ReportThree
 */
public class BaseReport extends HttpServlet {
    private static final long serialVersionUID = 348226870594216833L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        try {
            // 生成測試數據
            ArrayList<ProductBean> data = new ArrayList<ProductBean>();
            for (int i = 1; i <= 100; i++) {
                ProductBean bean = new ProductBean();
                bean.setProductName("Product號 " + i);
                data.add(bean);
            }
            JRDataSource dataSource = new JRBeanCollectionDataSource(data);

            // 生成JasperPrint
            JasperReport report = (JasperReport) JRLoader
                    .loadObject("D:\\Program Files\\JasperSoft\\iReport-3.0.0\\report_javabean.jasper");
            JasperPrint jasperPrint = JasperFillManager.fillReport(report,
                    null, dataSource);

            // 設定輸出格式
            resp.setCharacterEncoding("utf-8");
            PrintWriter ouputStream = resp.getWriter();

            HttpSession session = req.getSession();
            int page = 0;

            JRHtmlExporter html1 = new JRHtmlExporter();// HTML的導出工具
            html1.setParameter(JRHtmlExporterParameter.JASPER_PRINT,
                    jasperPrint);
            html1.setParameter(JRHtmlExporterParameter.PAGE_INDEX, page);
            html1.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER,
                    ouputStream);
            html1.exportReport();
            System.out.println("當前頁:" + page);
            ouputStream.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章