图片 1
sbf123官网

付费投稿计划

本文由码农网 –
小峰原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

DynamicReports是一款相当敏捷的Java报表组件,并且是完全免费开源的。和之前介绍的JFreeChart不同,DynamicReports是报表和可视化图表相结合的,可以更加直观地展现和统计数据。DynamicReports是对JasperReports的扩展,完全可以不用专门的设计器来设计。

图片 1

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报表和图表生成类库,其小巧和简单是一大亮点。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章