若是你曾經出國旅遊,尤爲是去歐洲自由行,有沒有在餐館點菜的慘痛經歷?(固然金拱門、K 記不算……),面對菜單上一個個似是而非的單詞,有沒有憂桑? 有沒有惆悵?有沒有很……呃,飢餓?javascript
一樣,在作前端業務查詢時,若是你不清楚 SQL 這種「點菜」的語言,那麼怎麼去找那些字段、設那些條件?是否是也有一樣的憂桑、惆悵……和飢餓感?html
不過,如今不同了,由於咱們有了潤乾報表 V2018 查詢控件!TA 就像自助餐廳裏琳琅滿目的鍋碗瓢盆,把深藏在數據庫(後廚?)裏的數據清清楚楚地呈如今你面前,任由你挑選組合,隨時隨地能夠飽餐一頓數據的饕餮大宴!前端
且看結構以下圖的訂單數據。java
咱們來看看怎麼利用潤乾報表 V2018 的查詢控件從訂單數據中查詢到僱員 ID 爲 3 的銷售人員所作的全部訂單信息吧:web
我能夠很自豪的告訴你,上面的查詢結果徹底不須要寫任何 SQL 語句,只是經過拖拽字段就能查詢到想要的數據,而且支持多種數據庫,支持外部存儲的數據,這像不像自助取餐,並且多種口味,甚至能夠自帶酒水?!最重要的是,查詢控件還能作到哪裏須要嵌入哪裏,簡直就是把自助餐廳開到了本身的家裏、單位裏同樣!數據庫
爲了作到這一點,使業務人員可以垂手可得地從數據庫查詢數據,咱們但是耗盡了洪荒之力呢,還不來快快爲咱們打 call?瀏覽器
下面咱們就來詳細介紹一下如何使用潤乾報表 V2018 查詢控件,以及如何將潤乾報表 V2018 查詢控件集成到本身的系統中。服務器
爲了方便開發者使用,潤乾報表利用 tag 標籤對一些特定功能進行了封裝。app
下面的例子中,咱們在潤乾報表 demo 應用下的 reportJsp 目錄中新建一個 JSP 文件:test.jsp,添加 tag 標籤發佈訪問,jsp 內容以下:webapp
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri=」/WEB-INF/raqsoftQuery.tld」 prefix=」raqsoft」 %> <title>My Test Jsp</title> <raqsoft:detailQuery qyx="" dataSource="DataLogic" dictionary="" visibility="" ></raqsoft:detailQuery> <script> guideConf.analysePage = "raqsoft/guide/jsp/analyse.jsp";//分析界面,用來顯示分析查詢結果 </script>
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri=」/WEB-INF/raqsoftQuery.tld」 prefix=」raqsoft」 %> <title>My Test Jsp</title> <raqsoft:detailQuery qyx="" dataSource="DataLogic" dictionary="" visibility="" /> <script> guideConf.analysePage = "raqsoft/guide/jsp/analyse.jsp";//分析界面,用來顯示分析查詢結果 </script>
簡單說明一下,在這個 jsp 中用 <prefix:detailQuery> 標籤來展現,其中:
qyx 用來設置須要缺省展現的 qyx 文件名 (查詢控件的拖拽結果能夠保存爲文件,文件擴展名爲 qyx)。
dataSource 定義數據源名稱。
dictionary 定義字典文件 ( 字典文件在《當多維分析碰到預約義語義》已經提過,這裏就很少說了 )。
visibility 定義可視文件 (可視文件會在以後的文章中講,這裏先不解釋)。
注:qyx 和 dataSource 屬性名必須都有,且其中至少一個不爲空,當 qyx 存在時,dataSource 設置將被忽略。
咱們將 test.jsp 文件保存在【安裝目錄】/report/web/webapps/demo/reportJsp 下。
使用查詢控件,須要用到《當多維分析碰到預約義語義》中講到的語義層。
打開 DQL 元數據層設計器,在系統菜單下選擇【數據源】,配置好數據源並鏈接,鏈接以前需保證所鏈接數據庫已啓動。例子中的演示數據來自潤乾自帶的 dqldemo 數據庫,因此該數據庫不用配置。
經過【服務 - 啓動示例數據庫】菜單啓動數據庫後,在數據源對話框中鏈接 dqldemo 數據源。使用「導入數據庫表」功能將訂單明細,僱員,客戶和訂單等數據庫表導入到新建的元數據文件中,( 元數據文件在《當多維分析碰到預約義語義》已經提過,這裏就很少說了 ),並保存爲訂單.lmd,內容以下:
將【安裝目錄】/report/services/datalogic/service.xm 中的修改成,並把訂單.lmd 放到【安裝目錄】/report/services/datalogic/conf 目錄下。最後啓動 DQL 服務器和 Tomcat。
·訪問示例 jsp,展示查詢控件
打開瀏覽器,輸入 url:http://localhost:6868/demo/reportJsp/test.jsp,由此咱們逐漸揭開了查詢控件的面紗……
如上圖所示,左側爲指標列表,右側爲指標查詢區。
·拖拽表字段
查詢時只須要把指標列表中須要查詢的字段拖拽到指標查詢區。例如這裏拖拽左側指標列表中的「訂單 ID」、「僱員 ID」和「訂單金額」到右邊指標查詢區,指標列表區會自動列出相關表。
咳咳,若是須要查詢整張表的數據,不會要把全部字段挨個拖拽過去吧,固然不會啦,get 一個小技巧,只須要拖拽表名就能夠噢,不信你能夠試試。
·數據過濾
若是要查詢僱員 ID 是 3 的銷售人員所作的全部訂單信息,能夠點擊「僱員 ID」那行的條件列中的「過濾條件」
輸入過濾條件:3
點擊保存按鈕。
·查詢數據
點擊查詢數據按鈕,跳轉到 DQL 查詢結果頁面,報表中顯示的數據就是過濾後的數據啦。
若是你還想對訂單金額進行過濾查詢,只須要對訂單金額添加過濾條件,例如:查詢金額大於 10000 的訂單狀況:
結果就變成了:
怎麼樣,經過上面的步驟,是否是很輕鬆的就完成了查詢?全程不涉及任何手動編寫 SQL 語句,而且操做靈活、樣式美觀,數據也一目瞭然。是否是頓時以爲清涼一夏了?
接下來,咱們還能夠把查詢獲得的數據以 TXT,CSV,Excel,Word,TXT,PDF 等文件的形式保存到本地,固然也可使用 pdf 直接打印。
·分析數據
除了查詢數據以外,咱們還能夠對查詢結果進行靈活分析。點擊分析數據按鈕,跳轉到 DQL 分組分析頁面,此時獲得一個數據集,其中存放着過濾後的數據,並在報表中顯示。經過在數據分析控件中設定不一樣的條件,咱們就能夠對數據盡情分析了。
這個頁面仍然支持把查詢的數據以 TXT,CSV,Excel,Word,TXT,PDF 文件的形式保存到本地,或者經過 pdf 直接打印。
不過這裏須要注意的是,若是查詢分析結果數據量很大,報表中的數據可能會顯示不全,只能截取一部分數據,而且會出現展現比較慢,消耗內存特別大等狀況,甚至形成應用崩潰。若是出現此種狀況,莫急莫慌,解決辦法咱們已想好了,看一下《給一句 SQL 就能作多維分析》吧。
看到這裏,你是否是有點躍躍欲試了,不要着急,接下來讓咱們關注一下面子問題,嘻嘻,也就是查詢界面的樣式啦。
使用 Tag 標籤屬性只能控制一些初始的指標數據的顯示,若是要對查詢界面的樣式作修改,那麼就須要經過潤乾報表提供的 JS API 來實現了。js 代碼的位置在 jsp 的尾部。
若是想要只對一個表作查詢,不列出其它表該怎麼作呢?難道要從新制做元數據文件麼?No! never!。只須要一行 Javascript 代碼:
guideConf.fixedTable = "訂單";//只顯示訂單表
guideConf.fixedTable = "訂單";//只顯示訂單表
添加 Tag 標籤後會顯示默認的菜單欄,若是以爲菜單欄不夠美觀,可使用下面這行代碼隱藏菜單欄:
guideConf.showToolBar = "no";//不顯示工具條
guideConf.showToolBar = "no";//不顯示工具條
菜單欄隱藏以後就能夠自定義按鈕啦,爲了方便使用自定義按鈕,咱們特地提供了 JS 方法供用戶在按鈕中直接調用:
保存:queryApi.saveQyx(); 打開:queryApi.openQyx(); 撤銷:queryApi.undo(); 重作:queryApi.redo(); 查詢:queryApi.submitQuery();
保存:queryApi.saveQyx(); 打開:queryApi.openQyx(); 撤銷:queryApi.undo(); 重作:queryApi.redo(); 查詢:queryApi.submitQuery();
示例代碼:
<a href="javascript:queryApi.openQyx();">自定義打開按鈕</a>
<a href="javascript:queryApi.openQyx();">自定義打開按鈕</a>
不只如此,在查詢界面初始化以後咱們還能夠修改編輯風格。
示例代碼:
$(document).ready(**function**(){ queryApi.setEditStyleDef({name:'_date',type:3,dateFormat:'yy/mm/dd'}); });
$(document).ready(**function**(){ queryApi.setEditStyleDef({name:'_date',type:3,dateFormat:'yy/mm/dd'}); });
修改後的效果麼,你就本身試一試吧。
好啦,關於潤乾報表 V2018 查詢控件咱們就先講這麼多,更多更深刻的學習請移駕 JS API(/raqsoft/guide/js/raqsoftApi.js) 和《分析教程》。