若是你曾经出国旅游,尤为是去欧洲自由行,有没有在餐馆点菜的惨痛经历?(固然金拱门、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) 和《分析教程》。