DynamicReports:Java快速報表元件

2014-10-19    分類:開源軟體、報表/圖表元件、程式設計開發、首頁精華0人評論發表於2014-10-19

本文由碼農網 – 小峰原創,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

DynamicReports是一款相當敏捷的Java報表元件,並且是完全免費開源的。和之前介紹的JFreeChart不同,DynamicReports是報表和視覺化圖表相結合的,可以更加直觀地展現和統計資料。DynamicReports是對JasperReports的擴充套件,完全可以不用專門的設計器來設計。

DynamicReports的特點

  • 使用非常方便
  • 可繼承的報表設計
  • 無需視覺化設計工具
  • 可混合動態報表和靜態報表

DynamicReports的使用方法

這裡我們以MAVEN專案為例,你可以在專案中加入以下XML檔案:

<dependency>
<groupId>net.sourceforge.dynamicreports</groupId>
<artifactId>dynamicreports-core</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.22</version>
</dependency>

Java程式碼如下:

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();
}
}

DynamicReports作為一款Java報表和圖表生成類庫,其小巧和簡單是一大亮點。

本文連結:http://www.codeceo.com/article/dynamicreports-java.html
本文作者:碼農網 – 小峰
原創作品,轉載必須在正文中標註並保留原文連結和作者等資訊。]

相關文章