在報告生成期間是否可以在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報告中顯示兩次?
你想達到什麼結果?您可以嘗試在預構建報告事件的調用應用程序中創建觸發器。 –