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