快逸报表参数查询前报表不显示
前言
大家還在為不進行條件查詢數據報表不顯示這個需求苦苦掙扎著實現嗎?以往我們用的方法都是在參數模板(參數報表)中增加一個標志位參數,主報表若能接收該參數,證明已經進行了查詢,否則認為初次加載,再拼給數據集一個恒假的sql讓其查不出數據。若需要初次加載將整個主表隱藏,則還要寫行隱藏表達式。如果存在多張這樣的報表,工作量還是有點大的~~
是否存在一種簡單、通用的方法解決上述問題呢?答案是肯定的。
分析
先了解一下潤乾報表工具的參數傳遞過程,首先在參數報表中輸入參數點擊查詢,此時在內存中創建一個存有所有參數信息的參數緩沖池,該緩沖池的id以reportParamsId變量標識,報表引擎根據reportParamsId去內存中取相應參數值,最后計算得出查詢結果。
這個過程給了我們很好的啟示,既然點擊查詢才會產生這個參數緩沖池,不查不創建,那就可以根據參數緩沖池的創建狀態來判斷是否是初次加載了。
實現
在發布報表工具的標簽前面增加如下判斷:
String reportParamsId=request.getParameter(“reportParamsId”); //取得參數緩存的標識號
if(!”".equals(reportParamsId) && reportParamsId != null){
%>
| funcBarLocation=”top” ? needPageMark=”yes” generateParamForm=”no” params=”" /> |
}
%>
當參數緩存ID為空時,不發布主報表。
說明
此方法較通用,適用于要求頁面初次加載時主報表完全不顯示的需求,若要求主表存在但不查詢數據,還應使用原始的動態宏判斷的方式。
出處:http://www.quiee.com.cn/archives/3138/
轉載于:https://blog.51cto.com/4887541/877969
總結
以上是生活随笔為你收集整理的快逸报表参数查询前报表不显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让理科生沉默,让文科生落泪的文史综合题
- 下一篇: TCP/IP 7.2 OSPF 虚链路