通用查詢是業務系統中很常見的需求,相較于普通的、固定的查詢,它可以讓用戶自由的增删查詢字段,靈活的設置過濾條件,更精細準确的查出自己想要的數據
商用報表工具大部分都提供這個功能,應用中可以通過集成報表工具來獲取相應的能力
我們就以潤乾報表為例來看一下如何在應用中添加通用查詢功能
為什麼以潤乾報表為例呢,因為潤乾報表 3 高! 專業報表 20 年,功能好,手藝高;用的人多,市場占有率高;價格低、性價比高
整體說明潤乾通用查詢頁面由通用查詢模塊(上半部分) 和報表模塊(下半部分) 兩個獨立部分組合而成
) 通用查詢模塊(上半部分)的核心包括元數據 JSON 和查詢 JSON
如上圖中,通用查詢模塊的左邊部分是由 “元數據 json 通用查詢标簽(commonQuery)”生成,用戶拖拽完後生成的右邊部分最終會生成“查詢 JSON”, 然後報表模塊解析後輸出報表
把潤乾标準的 j2ee 應用包,拷貝到自己的應用目錄下
注意:web.xml 文件不能拷貝,而是打開潤乾的 web.xml 文件,把其中的内容拷貝到您的 web.xml 文件中并按要求的順序合并
打開 [WEB 應用根目錄]/WEB-INF/raqsoftConfig.xml 文件,配置授權和數據源信息
分别在安裝目錄下找到以下三個 jsp 文件,後續步驟會陸續用到這些文件,
1、通用查詢頁面 cqIndex.jsp(路徑:demo\raqsoft\guide\jsp);
2、查詢模塊頁面 cq.jsp(路徑:demo\raqsoft\guide\jsp)
3、報表模塊頁面 cqReport.jsp(路徑:demo\reportJsp)
通用查詢頁面 (cqIndex.jsp)由查詢模塊(cq.jsp)和報表模塊 (cqReport.jsp) 兩部分組成,模塊間相互獨立,互不影響
2 準備元數據 JSON 并配置标簽元數據 JSON 的生成方式有很多種,本例以使用直接提供 json 字符串為例,初始化通用查詢模塊
編輯 cq.jsp,使用 json 字符串生成元數據 JSON:
String metadata = “[{name:‘group1’,fields:[{name:‘EID’,title:‘員工編号’},{name:‘GENDER’,title:‘性别’},{name:‘SALARY’,title:‘工資’}]}]”;
然後在 jsp 中定義 Tag 标簽raqsoft:commonQuery的屬性及其值,用 Tag 标簽完成通用查詢的解析及運算,按用戶配置的屬性要求将 HTML 文件流輸出到客戶端
<raqsoft:commonQuery
metadata=“<%=metadata%>”
/>
3 解析查詢 JSON點擊查詢後會生成一個 json 串,通稱查詢 JSON,通過集算器腳本(潤乾獨有的開源計算引擎)解析該 json,然後把結果傳遞給報表
示例:新建腳本文件 QueryDS.dfx,内容如下:
在 cqReport.jsp 中已将查詢 json 賦值給了 queryJSON 參數,因此需在集算器腳本中定義名為 queryJSON 的參數,用于接收通用查詢返回的查詢 json:
新建報表 Query.rpx,使用上一步的集算器腳本作為數據集,報表模闆如下:
數據集定義:
參數定義:
在 cqReport.jsp 中定義報表标簽
<report:html name=“report1”
srcType=“file”
reportFileName=“<%=report%>”
/>
然後浏覽器中訪問通用查詢的主頁面 cqIndex.jsp
http://localhost:6868/demo/raqsoft/guide/jsp/cqIndex.jsp?rpx=commonQuery/Query.rpx
到此一個完整的通用查詢功能就集成完畢了,可以自由定義查詢條件了
拖拽左上角列出的元數據 json 中的指标到右側,對指标進行查詢、彙總、條件過濾等操作,點擊查詢按鈕,結果報表就出來了
更多的,數據庫數據怎麼生成 json,動态元數據 json 怎麼做,集算器腳本還能做什麼,可以參考: 通用查詢控件使用方法 - 乾學院
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!