这是我的源代码:
import com.jaspersoft.mongodb.MongoDbConnection;
import com.jaspersoft.mongodb.MongoDbDataSource;
import java.io.File;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class Generate {
public static void main(String[] args) throws UnknownHostException {
try {
// - Connexion à la base
String mongoURI = "mongodb://localhost/test";
MongoDbConnection connection = null;
Map<String, Object> parameters = new HashMap<String, Object>();
try {
connection = new MongoDbConnection(mongoURI,null,null);
parameters.put(MongoDbDataSource.CONNECTION, connection);
JasperDesign jasperDesign = JRXmlLoader.load("/home/test/gocoffee.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
File jasperFile;
jasperFile = new File("/home/test/MongoDbReport.jasper");
JasperCompileManager.compileReportToFile("/home/test/gocoffee.jrxml", "/home/test/MongoDbReport.jasper");
JasperFillManager.fillReportToFile("/home/test/MongoDbReport.jasper", parameters);
JasperExportManager.exportReportToPdfFile("/home/test/MongoDbReport.jrprint");
} catch(Exception e) {
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
蒙戈在跑。
我在名为“test”的文件夹中有gocoffee.jrxml,当我编译成功时,在“test”文件夹中没有出现pdf文件。
有趣的事实:如果我
System.out.print("123");
在这行之后:
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
它不起作用。
(我刚在这个之前修正了this error。可能是相关的)
谢谢!
你真是太棒了
最佳答案
在ireport中工作但在使用jaspereports的应用程序中失败的报表可能意味着您缺少查询执行器。创建jaspereports.properties(或编辑现有属性),确保它位于类路径上,然后添加以下行:
net.sf.jasperreports.query.executer.factory.MongoDbQuery=com.jaspersoft.mongodb.MongoDbQueryExecuterFactory
注意1:您应该查看发布到jasperforge的源代码中的工作单元测试(它使用了这个思想)。你需要的东西都应该有。
注2:我们最近发现这样做很麻烦,所以我们更新了连接器,使其具有一个jaspereports_extension.properties副本,该副本执行相同的角色。但是它包含在connector.jar文件中,所以您不必担心它。很快就会贴出来。
关于mongodb - JasperReports Library和MongoDB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9435559/