1. 程式人生 > >使用ireport生成jasperreport報表模板

使用ireport生成jasperreport報表模板

下載jasperreports-5.5.1-project.zip和iReport-5.5.0-windows-installer.exe即可。

      注意:使用ireport新增chart元件時,一定不要新增到Detail區,否則會出現多個重複圖片的問題

3、生成pdf報表程式碼:

package com.csljc.jasper;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

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.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

public class JasperMain {
	
	public static final String driver = "com.mysql.jdbc.Driver";
	public static final String url = "jdbc:mysql://192.168.53.196:3306/zabbix";
	public static final String user = "root";
	public static final String password = "";
	

	public static Connection getConnection(){
		Connection conn = null;
		
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
		
		return conn;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Connection conn = null;
		try {
		    //載入jasperreport模板檔案
			JasperDesign jd = JRXmlLoader.load("report1.jrxml");
			
			//編譯模板檔案為JasperReport物件
			JasperReport jr2 = JasperCompileManager.compileReport(jd);
			
			//存放需要傳給JasperReport的引數
			HashMap<String,Object> parameter = new HashMap<String,Object>();
			//獲取資料連線
			conn = getConnection();
			//將資料和引數填充到JasperReport中
			JasperPrint jp = JasperFillManager.fillReport(jr2, parameter, conn);
			
			//匯出為pdf檔案
			JasperExportManager.exportReportToPdfFile(jp, "D:\\test.pdf");
		} catch (JRException e) {
			e.printStackTrace();
		}finally{
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}

}
4、關於匯出pdf報表不顯示中文的問題

    1)把iTextAsian.jar亞洲語言包放到專案中 
    2)在用iReport做模板設計,在設計pdf報表模板時注意,把所有涉及到的中文顯示設定如下:

      <textElement>

<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>

      </textElement>

當前版本中pdfFontName屬性已經廢棄,但依舊可以使用,目前還不明白所謂的建議改為font extention如何設定