【BUG】online报表使用多数据源搜索问题
1.jeecg项目使用的是mysql数据库,多数据源配置中配置了oracle数据源2.online报表中配置sql,来查询oracle数据库中的数据。code字段设置为可查询
3.查询后得到报表,首页默认10条数据。但使用code进行筛选的时候出现bug。当报表首页存在目标数据的时候,条件查询生效。如果首页没有目标数据,查询不到结果。
截图看下具体问题 admin 发表于 2018-4-16 13:58 static/image/common/back.gif
截图看下具体问题
查询结果,首页:
查询首页中有的基金代码,正常:
查询首页中没有的基金代码,无法搜索到结果。数据库中有这条数据。
admin 发表于 2018-4-16 13:58 static/image/common/back.gif
截图看下具体问题
可能是翻页查询的时候有问题 首页指的是第一页? admin 发表于 2018-4-16 15:27 static/image/common/back.gif
首页指的是第一页?
对。报表默认查出的第一页。 你的意思跑到第二页,点击查询有问题? 本帖最后由 akacd 于 2018-4-16 18:01 编辑
admin 发表于 2018-4-16 17:43 static/image/common/back.gif
你的意思跑到第二页,点击查询有问题?
搜索第二页的内容有问题,搜索不到。
搜索当前页已有内容可以得到结果。搜索未展示出来的内容,无法搜到。 本帖最后由 akacd 于 2018-4-23 13:45 编辑
admin 发表于 2018-4-16 17:43 static/image/common/back.gif
你的意思跑到第二页,点击查询有问题?
多数据源动态报表使用到了SqlUtil.java中的jeecgCreatePageSql方法,其中oracle数据库先进行了分页,再加的查询条件。导致无法查询第二页内容。
if(DATABSE_TYPE_ORACLE.equalsIgnoreCase(databaseType)) {
sql = MessageFormat.format(ORACLE_SQL, sqlParam); //sqlParam是分页参数
sql=getFullSql(sql,params);//前端用户输入的参数
查了一下, sql=getFullSql(sql,params);//前端用户输入的参数是我手动加进去的。不加这一行无法进行输入条件的查询 admin 发表于 2018-4-16 17:43 static/image/common/back.gif
你的意思跑到第二页,点击查询有问题?
在CgReportController.java 中增加即可解决该问题:
if(StringUtils.isNotBlank(dbKey)){
querySql=SqlUtil.getFullSql(querySql,queryparams);//duchao 20180423 add to support query
result= DynamicDBUtil.findList(dbKey,SqlUtil.jeecgCreatePageSql(dbKey,querySql,queryparams,p,r));
Map map=(Map)DynamicDBUtil.findOne(dbKey,SqlUtil.getCountSql(querySql,null));
if(map.get("COUNT(*)") instanceof BigDecimal){
BigDecimal count = (BigDecimal)map.get("COUNT(*)");
size = count.longValue();
}else{
size=(Long)map.get("COUNT(*)");
}
}else{
result= cgReportService.queryByCgReportSql(querySql, queryparams, p, r);
size = cgReportService.countQueryByCgReportSql(querySql, queryparams);
}
页:
[1]
2