【发布时间】:2019-05-04 23:02:28
【问题描述】:
使用DynamicJasper 5.1.1创建报告时,我从数据源获取结果集,如果生成后我的 pdf 为空,不知道为什么我的 pdf 会变空。
我从here 获取了代码参考。以下是我的代码:
import ar.com.fdvs.dj.core.DynamicJasperHelper;
import ar.com.fdvs.dj.core.layout.ClassicLayoutManager;
import ar.com.fdvs.dj.domain.DynamicReport;
import ar.com.fdvs.dj.domain.builders.FastReportBuilder;
import net.sf.jasperreports.engine.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class DynamicJDBCReportHandler {
static String username = "mnbfmwemf";
static String password = "fwfwfwf";
public static void main(String[] args) {
DynamicJDBCReportHandler drh = new DynamicJDBCReportHandler();
drh.getResultSet();
}
public Map<String, Object> getResultSet() {
Connection connection = null;
Statement statement = null;
JasperReport jreport;
JasperPrint jprint;
ArrayList<Object> list = new ArrayList<Object>();
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection("jdbc:oracle:thin:@wfwfwf:1521:fwefw", username, password);
statement = connection.createStatement();
String query = "SELECT * FROM USER ORDER BY CREATE_DATE";
ResultSet rs = statement.executeQuery(query);
JRResultSetDataSource dataSource = new JRResultSetDataSource(rs); // Here associate the resultSet with JasperReport
FastReportBuilder drb = new FastReportBuilder();
DynamicReport report = drb.build();
try {
jreport = DynamicJasperHelper.generateJasperReport(report, new ClassicLayoutManager(), new HashMap());
jprint = JasperFillManager.fillReport(jreport, new HashMap<>(), dataSource);
JasperExportManager.exportReportToPdfFile(jprint, "/report.pdf");
rs.close();
} catch (JRException e) {
e.printStackTrace();
}
}catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (statement != null) {
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
}
我不想创建 .jrxm 文件或 .jasper 文件,如果您在我做错时可以指出我,我相信应该有人这样做,非常感谢您的帮助。
【问题讨论】:
-
@Alexk 你能帮忙吗?
-
您使用的是什么版本的 DynamicJasper?
-
我正在使用 5.1.1
ar.com.fdvs DynamicJasper 5.1.1 跨度> -
@AlexK 你觉得我使用的版本有问题吗?我没有 .jrxm 文件或 .jasper 文件,我需要创建一个吗?
标签: java jdbc jasper-reports dynamic-jasper