JAVAレポート神器DynamicReports


詳細
DynamicReportsは、JasperReportsベースの無料オープンソースのレポートツールです.
特色機能:ダイナミックレポートの作成を許可し、専門のデザイナを使わずに設計することができます.
レポートの作成、ファイルの生成、表示、印刷、またはその他の多くの一般的なフォーマット(PDF、Excel、Word)に簡単にエクスポートできます.
 
MAVENプロジェクトに以下の内容を追加
  	
  		net.sourceforge.dynamicreports
  		dynamicreports-core
  		3.0.4
  	
  	
  		mysql
  		mysql-connector-java
  		5.1.22
  	

例:
public class SimpleReportDemo {

	private static Connection getConn() throws ClassNotFoundException, SQLException{
		Class.forName("com.mysql.jdbc.Driver");
		return(Connection) DriverManager.getConnection("jdbc:mysql://localhost/database", "username", "password");
	}
	
	public static void buildReport(Connection conn){
		JasperReportBuilder report=DynamicReports.report();// 
		// 
		StyleBuilder boldStl=DynamicReports.stl.style().bold();
		StyleBuilder boldCenteredStl=DynamicReports.stl.style(boldStl).setHorizontalAlignment(HorizontalAlignment.CENTER);
		StyleBuilder titleStl=DynamicReports.stl.style(boldCenteredStl).setFontSize(16);
		StyleBuilder columnTitleStl=DynamicReports.stl.style(boldCenteredStl).setBorder(DynamicReports.stl.pen1Point())
				.setBackgroundColor(Color.LIGHT_GRAY);
		report.columns(Columns.column("ID", "id", DataTypes.integerType()).
							setHorizontalAlignment(HorizontalAlignment.CENTER),// 
					   Columns.column(" ", "code", DataTypes.stringType()),
					   Columns.column(" ","service",DataTypes.stringType()),
					   Columns.column(" ","province",DataTypes.stringType()),
					   Columns.column(" ","city",DataTypes.stringType()),
					   Columns.column(" ","type",DataTypes.stringType()))
			  .setColumnTitleStyle(columnTitleStl)
			  .setHighlightDetailEvenRows(true)
			  .title(Components.text(" ").setStyle(titleStl))// 
			  .pageFooter(Components.pageXofY().setStyle(boldCenteredStl))// 
			  .setDataSource("select * from codesubinfo limit 20", conn);// 
		try {
			// 
			report.show();
			// PDF 
			//report.toPdf(new FileOutputStream("D:/test.pdf"));
		} catch (DRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String orgs[]){
		try {
			Connection conn=getConn();
			buildReport(conn);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}