-
yangm 数据达人Lv4
发表于2020-7-16 10:41
楼主
本帖最后由 yangm 于 2020-7-16 10:42 编辑
描述
在刷新SQL数据取数的分析报表时发现设置分析表属性中的"显示行数"为100行时,即使SQL数据源中SQL算出来的数据有10000行,也只能显示100行,而且找不到地方翻页,那是为什么呢?
原因
使用sql数据源的表计算时不会求总行数,此时应该使用模糊分页。SQL数据源分页,要使用totalcount数据源,在SQL数据源下建立一个totalcount的数据源,在这里返回每页的行数 。
解决步骤
1. 原SQL数据不动
2. 添加一个新的数据源,命名为:totalcount
语句为上面SQL数据源算出结果的总行数,如:
语句为上面SQL数据源算出结果的总行数,如:
select count(*) from DM_CBBM |
3. 最后还是要设置了一下报表属性中的"每页行数"。
设置名为【totalcount】的SQL数据源,并设置每页显示行数:
于是乎,分页就有了:
潜规则
如果数据源的行数大于等于totalcount数据源中得出的行数,最后一页会按照报表属性中设置的行数显示出数据,而不会截断。
【例举】
1、如果写totalcount数据源的语句为:
select count(* ) from 表名,并且设置报表属性中的显示行数为7,完全正确分页9页,第9页只显示4行数据(7行*8页)+4行=60行
2、写totalcount数据源的语句为:
select 60 from dual,并且设置报表属性中的显示行数为7,结果同1
3、写totalcount数据源的语句为:
select 30 from dual,并且设置报表属性中的显示行数为7,结果分页5页,第5页显示了7行数据,也就是实际显示了5页*7行=35行数据。
【例举】
1、如果写totalcount数据源的语句为:
select count(* ) from 表名,并且设置报表属性中的显示行数为7,完全正确分页9页,第9页只显示4行数据(7行*8页)+4行=60行
2、写totalcount数据源的语句为:
select 60 from dual,并且设置报表属性中的显示行数为7,结果同1
3、写totalcount数据源的语句为:
select 30 from dual,并且设置报表属性中的显示行数为7,结果分页5页,第5页显示了7行数据,也就是实际显示了5页*7行=35行数据。