我正在使用jasper报告,并希望让用户选择数据库名称作为输入控件,并希望在查询中使用它。 使用的工具是ireport / jasper soft studio 6.x
答案 0 :(得分:1)
得到上述问题的解决方案我使用了输入控件列表,然后将参数值用作
$P!{parametername}
与在jasper中使用表名作为参数/输入控件相同。
答案 1 :(得分:0)
如果我理解正确,以下代码可能会对您有所帮助。 当然“foo DB”和“baz DB”应该有相同的表格。
Connection conn;
// Change the DB depend on input value.
if (userInput.equals("foo")){
conn = DriverManager.getConnection("jdbc:mysql://localhost/foo", "user", "password");
}
else if (userInput.equals("baz")){
conn = DriverManager.getConnection("jdbc:mysql://localhost/baz", "user", "password");
}
else{
// error
}
JasperReport jasper = (JasperReport)JRLoader.loadObject(your_jasper_filePath);
Map paramMap = new HashMap();
paramMap.put("param1", "some_param1");
paramMap.put("param2", "some_param2");
JasperPrint print = JasperFillManager.fillReport(jasper, paramMap, conn);
JasperExportManager.exportReportToPdfFile(print, PdfPath);