在报告生成期间是否可以在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. 在jasper报告中写入方法?
- 2. 在jasper中钻取报告
- 3. Jasper报告中的空白子报告
- 4. 查询插入到主报告中的子报表
- 5. 如何在jasper报告中包含来自SQL查询的子报表?
- 6. 嵌入javascript到jasper报告pdf?
- 7. 查看由Jasper执行的SQL报告
- 8. 在NullPointerException中取消Jasper报告生成
- 9. 在jasper报告中合并列标题
- 10. 在PHP网站中使用Jasper报告
- 11. 在java中调用Jasper子报告
- 12. NullPointerException - 在jasper中生成报告
- 13. 在Jasper报告中增加infowindow大小
- 14. 如何在jasper报告中传递SUBREPORT_DIR
- 15. 在java jasper的主要报告中加载子报告netbeans
- 16. Jasper Sub报告没有在主要报告中显示
- 17. Jasper报告使用参数的动态查询
- 18. 子报告内容未显示在Jasper报告的主报告中
- 19. 来自Jasper的excel报告
- 20. Jasper报告拆分类型
- 21. Jasper报告数据过滤
- 22. Jasper报告组和列
- 23. Jasper Reports主详细报告
- 24. Java jasper报告valueAxis位置
- 25. Jasper报告布尔值
- 26. 如何调试jasper报告?
- 27. SQL查询在SSRS报告
- 28. Grails插件:Jasper插件 - 无此类报告规格错误
- 29. Jasper在导出时报告OutOfMemoryError
- 30. Ruby on Rails中的Jasper报告
你想达到什么结果?您可以尝试在预构建报告事件的调用应用程序中创建触发器。 –