웹 응용 프로그램에서 데이터베이스로 MongoDB를 사용하고 있습니다. 내 응용 프로그램에서 보고서 생성 기능을 사용하여 사용 가능한 레코드 및 필드 목록이 표시되고 사용 가능한 필드의 전체 또는 일부를 선택한 다음 선택한 사용자의 데이터가 포함 된 PDF 보고서가 생성됩니다. 전지.MongoDB 용 프로그램 보고서 생성
따라서 사용자가 선택한 필드를 기반으로 런타임에 프로그래밍 방식으로 보고서를 생성해야합니다. 나는 mysql에 대한 비슷한 예제를 발견했다 here.
MySQL 대신 MongoDB에 대한 데이터 소스를 어떻게 추가해야합니까? 이 작업을 수행하는 다른 방법이 있습니까?
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");
} catch (SQLException e) {
e.printStackTrace();
return;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
JasperReportBuilder report = DynamicReports.report();
report
.columns(
Columns.column("Customer Id", "id", DataTypes.integerType()),
Columns.column("First Name", "first_name", DataTypes.stringType()),
Columns.column("Last Name", "last_name", DataTypes.stringType()),
Columns.column("Date", "date", DataTypes.dateType()))
.title(Components.text("SimpleReportExample")
.setHorizontalAlignment(HorizontalAlignment.CENTER))
.pageFooter(Components.pageXofY())
.setDataSource("SELECT id, first_name, last_name, date FROM customers",
connection);
try {
report.show();
report.toPdf(new FileOutputStream("c:/report.pdf"));
} catch (DRException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}