如何在jasper报告中使用db name作为输入控件/参数

时间:2015-10-05 10:07:21

标签: jasper-reports

我正在使用jasper报告,并希望让用户选择数据库名称作为输入控件,并希望在查询中使用它。 使用的工具是ireport / jasper soft studio 6.x

2 个答案:

答案 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);