通用查询页面 (cqIndex.jsp)由查询模块(cq.jsp)和报表模块(cqReport.jsp)两部分组成,模块间相互独立,互不影响。
流程图如下:
查询模块:用于对元数据JSON做自定义过滤分析;
报表模块:用于将查询模块返回的json结合单表得到数据,展现在报表页面。
下面用分步介绍的方式,让您有一个愉快的通用查询初体验。
第一步:准备元数据JSON
元数据JSON的生成方式多种多样(详见 多种JSON类型的使用 小节),本例以使用直接提供json字符串为例,初始化通用查询模块。
编辑【安装目录】\report\web\webapps\demo\raqsoft\guide\jsp\下的cq.jsp,使用json字符串生成元数据JSON:
String metadata = "[{name:'group1',fields:[{name:'EID',title:'员工编号'},{name:'GENDER',title:'性别'},{name:'SALARY',title:'工资'}]}]";
如果需要使用数据库表生成元数据json,可使用集算器脚本从数据库取数,并灵活生成所需元数据JSON,具体参考动态生成JSON小节。
第二步:通过Tag标签发布通用查询
在jsp中定义Tag标签<raqsoft:commonQuery>的属性及其值,用Tag标签完成通用查询的解析及运算,按用户配置的属性要求将HTML文件流输出到客户端。
<raqsoft:commonQuery
metadata="<%=metadata%>"
/>
安装包自带通用查询页面:【安装目录】\report\web\webapps\demo\raqsoft\guide\jsp\下的cq.jsp。
Tag标签属性介绍可参考《程序员参考》通用查询控件章节。
第三步:将查询JSON转换为报表结果数据
查询页面最终的查询结果是一个json串,通称查询JSON。完成从查询JSON到结果数据的转变,需要经过集算器脚本的处理。
查询json以参数的形式传到集算器脚本,脚本可对json串添加条件过滤、聚合运算等操作,结合数据库表查出所需数据,将结果返回给集算器类型的报表数据集。
示例:新建脚本文件QueryDS.splx,内容如下:
在【安装目录】\report\web\webapps\demo\reportJsp\下的cqReport.jsp中已将查询json赋值给了queryJSON参数,因此需在集算器脚本中定义名为queryJSON的参数,用于接收通用查询返回的查询json:
本实例中展现的是简单脚本,只完成了对数据库表的字段查询。如需完善集算器脚本做更多的过滤分析等,可参考数据查询小节。
第四步:使用报表模块展示数据查询结果
新建报表Query.rpx,这里使用集算器数据集,将QueryDS.splx返回的数据传给报表,报表模板如下:
数据集定义:
参数定义:
更多关于报表模板的制作可参考报表模板小节。
第五步:通过Tag标签发布报表
在jsp中定义Tag标签<report:html>的属性及其值,用Tag标签完成报表的解析及运算,将HTML文件流输出到客户端。
<report:html name="report1"
srcType="file"
reportFileName="<%=report%>"
/>
安装包自带报表模块展现页面:【安装目录】\report\web\webapps\demo\reportJsp\下的cqReport.jsp。
Tag标签属性介绍可参考《程序员参考》html模式发布报表章节。
第六步:访问包含查询模块和报表模块的通用查询主页面
打开浏览器,在地址栏输入:
http://localhost:6868/demo/raqsoft/guide/jsp/cqIndex.jsp?rpx=commonQuery/Query.rpx
拖拽左上角列出的元数据json中的指标到右侧,对指标进行查询、汇总、条件过滤等操作,点击查询按钮,结果如下图所示以报表的形式展现。