企业中的各种业务所涉及的数据量通常是巨大的。因此对数据进行快速的分析、根据实际业务需要简单而又高效地检索出所需要的数据至关重要。润乾报表为用户提供了通用查询标签来解决这个问题。该标签可以为每张报表生成语义层中定义的与参数无关的可查询指标及每个指标对应的条件编辑。采用通用查询标签可生成通用查询页面,用户在此页面中可选择一个或多个指标并分别设置每个指标的条件,再将这些条件联接起来(并且/或者)形成完整的查询条件,操作起来非常方便。下面就以制作带通用查询功能的订单信息报表为例,简单说明一下如何使用通用查询标签实现通用查询。
一、准备工作
1.制作订单信息报表,设置如下
2.拷贝css文件夹到demo根目录下、拷贝loadconfig.jsp、queryShowReport.jsp到demo/jsp目录下。
二、实现通用查询
1.生成通用查询页面
在JSP文件中用<prefix:commonQuery>标签来生成查询页面,prefix是用户在JSP文件头中指定tag定义文件时的前缀名。在demo/jsp目录下新建一个query.jsp,在query.jsp中按如下步骤加入代码
首先,将如下写在query.jsp的开头。
<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>
然后,在query.jsp中引入通用查询所涉及的js文件,代码如下
<script type=’text/javascript’ src=”<%=request.getContextPath()%>/reportServlet?action=10&file=%2Fcom%2Frunqian%2Freport4%2Finput%2Fcalendar.js”></script>
<script type=’text/javascript’ src=”<%=request.getContextPath()%>/reportServlet?action=10&file=%2Fcom%2Frunqian%2FcomQuery.js”></script>
最后,加入对通用查询标签的引用
<!–通用查询表单生成标签–>
<report:commonQuery
raq=”<%=report%>”
srcType=”file”
needSave=”yes”
needReload=”yes”
needQuery=”yes”
conditions=””
fieldColWidth=”15%”
setupIcon=”../css/cq_setup.png”
saveIcon=”../css/cq_save.png”
reloadIcon=”../css/cq_reload.png”
calIcon=”../css/cq_cal.png”
queryIcon=”../css/cq_query.png”
styleDefine=”../css/comQuery.css”
/>
查看query.jsp,就能看到如下查询页面
这样通用查询页面就生成了。
2.查询的实现
润乾报表给出了查询功能实现的JavaScript接口,具体功能还需要用户自己实现,下面只提供一个查询实现的例子。
首先,重写点击查询时的方法,在query.jsp中加入如下代码
<script type=’text/javascript’>
//重写点击查询时的方法
comQuery.query = function() {
var where = comQuery.genSql()//取得通用查询生成的where子句
if (where == “”) {
where = “1=1″;
}
//为查询表单中的where隐藏域赋值,并提交表单
$(”where”).value=where;
$(”queryForm”).submit();
}
</script>
然后,定义报表文件,在query.jsp中加入如下代码
<% //定义报表文件,在使用过程中可以通过参数传递后,使用request取得
request.setCharacterEncoding(”GBK”);
String report = “/dingdan.raq”;
String queryFormAction = “queryShowReport.jsp?raq=”+report;
String contextPath = request.getContextPath();
%>
然后,在query.jsp加入提交表单,这个表单需要用户自己定义,代码如下
<!–提交查询的表单,至少有where及raq两个参数–>
<form id=”queryForm” name=”queryForm” method=post action=”<%=queryFormAction%>” target=”reportPanel”>
<input type=hidden name=where>
<input type=hidden name=raq value=”<%=report%>”>
<%
//其它隐藏的参数
java.util.Enumeration em = request.getParameterNames();
while ( em.hasMoreElements() ) {
String name = ( String ) em.nextElement();
if (request.getParameter( name ) != null)
out.write(”<input type=hidden name=’” + name + “‘ value=’” + request.getParameter( name ) + “‘>”);
}
%>
</form>
这样点击查询按钮就会提交表单,交给服务器的对应的action处理。
最后,加入如下代码,指定查询结果显示的位置。
<!–结果表单所在的iframe,除这种方式外,还可以使用Frame等等–>
<iframe name=”reportPanel” FRAMEBORDER=0 width=”100%” height=”100%”></iframe>
查看发布后的query.jsp页面,可以看到如下效果
设置查询条件:运货费,大于,1000;查询结果如下
这样就利用通用查询标签成功制作了一个带有通用查询功能的订单详细信息报表。
二、使用说明
1.数据类型可选比较符
润乾通用查询模块,按照报表第一个数据集的设定生成条件名称下拉选项,再根据所选条件字段的数据类型,生成不同的比较符下拉选项以及相应的条件值设置框。下面对常用的几种数据类型的可选比较符做简单介绍。
(1)字符型可选比较符
(2)数值型可选比较符
(2)日期型可选比较符
当条件值出现下拉日历选项时,日期时间型对应的是年月日时分秒,日期型对应的是年月日,时间型对应的是时分秒。
2.高级设置
高级设置是为添加复杂查询条件而设置,使用左右括号以及逻辑符(并且/或者)来实现。如下图
点取消高级设置,返回到普通查询页面。
3.注意事项
(1)报表系统的通用查询标签只提供了一个根据语义视图数据集、sql数据集生成通用查询界面的功能,其中”查询”提供了JavaScript接口,实现如上面的例子。另外,”保存”、”载入已定义”也提供了javascript接口,具体由用户根据项目情况实现。
(2)通用查询页面中的查询条件名称是根据语义层中所定义的生成,相应的数据型也是根据语义层中的定义,不同的数据类型比较符会有相应的变化,当数据类型是日期型时,条件值中会显示下拉日历图标供选择。
润乾报表通用查询标签为用户提供了灵活地组合和自定义复杂查询条件的功能,简捷地实现了对数据的查询,而且还提供了对查询条件的保存和载入功能,方便重复使用,为用户的操作带来了极大的方便。
引自:润乾报表知识库
相关文章:可树形展开的折叠报表的制作; 在润乾参数表单中如何不点击查询按钮自动传参;关于润乾报表自定义函数报错的问题 ;决策分析解决方案 ;润乾报表填报处理类问题