Passing an entire sql query as a parameter in jasper reports

一曲冷凌霜 提交于 2020-04-08 18:04:20

问题


I want to pass an entire sql query as a parameter into a jasper report. I tried using $P{QUERY}, but it gave me a mysql syntax error exception. And I want it to be passed during run time. Does anyone know how to do it?

Example code:

try {
        Map<String, Object> map = new HashMap<>();
        Connection conn = DatabaseConnection.getInstance().getConnection();

        map.put("QUERY", "Select u.name, u.status from user_info u where u.user_name = 'Thanuj'");

        JasperReport report = JasperCompileManager.compileReport("report1.jrxml");
        JasperPrint jp = JasperFillManager.fillReport(report, map, conn);
        JasperViewer.viewReport(jp, false);
    } catch (JRException ex) {
        Logger.getLogger(ReportTest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(ReportTest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(ReportTest.class.getName()).log(Level.SEVERE, null, ex);
    }

回答1:


I figured out the answer with some help from my colleague. I had to change the parameter ($P{QUERY}) into ($P!{QUERY}) in the jasper report's xml file (ex; report.jrxml)

enter image description here



来源:https://stackoverflow.com/questions/31283720/passing-an-entire-sql-query-as-a-parameter-in-jasper-reports

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!