在报告生成期间是否可以在IReports/jasper报告中执行“插入查询”?在jasper报告中插入查询
回答
是的,您需要的想法是使用此语法的参数:$P!{PARAM_NAME}
。
因此,您的整个SQL查询(或其他类型的查询)可能只是$P!{SQL}
。然后你传入你需要的动态SQL。
更新: 在阅读Sharad的评论后,我意识到我的答案并不好。我写的是真的......但它没有解决核心问题。
不,您的报告无法真正执行插入语句。严格地说,我相信这不是不可能的。您可以在建立连接的.jar文件中添加scriptlet或自定义函数,并执行插入操作。但实际上,一个报告将执行一个或多个查询。 JR框架不打算执行插入或更新。
在我们的实验中,我们已经看到,如果我们使用插入或更新,IReport会给出错误...请给我们一个洞察这个... –
@mdahlman:我做了什么,创建了一个输入控件“$ P!{p_insert_sql }“并设置默认值”“INSERT INTO t_error_log(LogID)VALUES(2)”但它显示的错误:不能用executeQuery()发出数据操作语句() – Sharad
你不觉得如果我们有这个工具来插入或更新数据库通过JasperReport服务器,我们可以在任何级别做更好的报告,然后我们可以使用JasperReport Server作为入口点,也可以像Excel一样,只需在数据库中创建表格一次,然后通过Jasper插入记录并查看报告,我们不必实际上一次又一次地使用数据库来插入或更新记录。 – Sharad
是的,你可以。您想要显示报告时可以执行查询。这是一个适合我的示例。
try {
Map parameters = new HashMap();
connectionString ="jdbc:mysql://localhost/myDb", "myUsername", "myPassword"
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(connectionString);
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
JRResultSetDataSource rsdt = new JRResultSetDataSource(rs);
JasperPrint jp;
jp = JasperFillManager.fillReport("sourceFileName.jasper", parameters, rsdt);
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
} catch (ClassNotFoundException | SQLException | JRException ex) {
ex.printStackTrace();
}
- 1. 与jpa,jasper报告不同的查询
- 2. Jooq创建jasper报告查询
- 3. 在jasper报告中写入方法?
- 4. 在jasper中钻取报告
- 5. 在Jasper中钻取报告
- 6. Jasper报告NoClassDefFoundError
- 7. jasper grails报告
- 8. Jasper报告中的空白子报告
- 9. 查询插入到主报告中的子报表
- 10. jasper报告中的边框
- 11. 如何在jasper报告中包含来自SQL查询的子报表?
- 12. 白色报告与Java的Jasper报告
- 13. 嵌入javascript到jasper报告pdf?
- 14. 查看由Jasper执行的SQL报告
- 15. 在jasper报告中添加垂直线
- 16. 在java中调用Jasper子报告
- 17. 如何在jasper报告中设置REPORT_MAX_COUNT
- 18. 在NullPointerException中取消Jasper报告生成
- 19. 如何在jasper报告中传递SUBREPORT_DIR
- 20. 如何在servlet中运行jasper报告
- 21. 在eclipse中设置jasper报告
- 22. 在PHP网站中使用Jasper报告
- 23. 在jasper报告中表达时的帧
- 24. 在Jasper报告中增加infowindow大小
- 25. 在jasper报告中合并列标题
- 26. Struts2 jasper报告不在Linux中打开
- 27. 在jasper报告中显示列标题
- 28. NullPointerException - 在jasper中生成报告
- 29. 如何在jasper报告中提供dataadaptor
- 30. 输入参数在带有子报告iReport的jasper报告中显示两次?
你想达到什么结果?您可以尝试在预构建报告事件的调用应用程序中创建触发器。 –