sql >> Base de Datos >  >> NoSQL >> MongoDB

Genere PDF con JasperReports Library y MongoDB

Usar JRBeanCollectionDataSource no es la forma correcta de usar el conector MongoDB. Eche un vistazo a esta prueba que viene con la fuente del conector Jaspersoft MongoDB:

MongoDbDatasource/src/test/java/com/jaspersoft/mongodb/ReportTest.java

Tanto el conector binario como la fuente se encuentran en la página del proyecto .

Para mantener esta respuesta independiente, aquí hay un fragmento de código que muestra cómo completar un informe de MongoDB. Es un extracto modificado del archivo que mencioné anteriormente.

String mongoURI = "mongodb://bdsandbox6:27017/test";
MongoDbConnection connection = null;
Map<String, Object> parameters = new HashMap<String, Object>();
try {
  connection = new MongoDbConnection(mongoURI, null, null);
  parameters.put(MongoDbDataSource.CONNECTION, connection);
  File jasperFile;
  jasperFile = new File("MongoDbReport.jasper");
  JasperCompileManager.compileReportToFile("MongoDbReport.jrxml", "MongoDbReport.jasper");
  JasperFillManager.fillReportToFile("MongoDbReport.jasper", parameters);
  JasperExportManager.exportReportToPdfFile("MongoDbReport.jrprint");
}
} catch (Exception e) {
  e.printStackTrace();
} finally {
  if (connection != null) {
    connection.close();
  }
}