-
-
1505121235 数据老手Lv5
发表于2020-2-17 20:00
楼主
本帖最后由 1505121235 于 2020-2-17 20:05 编辑
需求背景:为了提高报表计算性能,希望用户打开报表后,报表只计算某一个容器中的内容,报表的其他部分不进行立即计算(只有那一个部分是针对不同用户展现的内容不同)。
举例:如下图所示,报表模板挂在门户中供不同的用户进行访问,但是报表设计的容器比较复杂,包含的内容较多,每次进行计算整个页面会导致报表计算性能很差,这个页面只有最近浏览报表是需要即时刷新的,其他部分通过结果共享的方式就不用即时刷新,其余部分只需要一天刷新一次就行。。
解决步骤:
步骤一:设置计划任务-计算报表,将需要每天计算一次的报表设置成每晚某个时间点,执行一次计算;
步骤二:挂载报表到门户上,不带扩展参数;复制代码复制代码适用版本:bi4.2/bi4.5/bi4.7/abi5.1.4/abi5.2.2
需求背景:为了提高报表计算性能,希望用户打开报表后,报表只计算某一个容器中的内容,报表的其他部分不进行立即计算(只有那一个部分是针对不同用户展现的内容不同)。
举例:如下图所示,报表模板挂在门户中供不同的用户进行访问,但是报表设计的容器比较复杂,包含的内容较多,每次进行计算整个页面会导致报表计算性能很差,这个页面只有最近浏览报表是需要即时刷新的,其他部分通过结果共享的方式就不用即时刷新,其余部分只需要一天刷新一次就行。。
![](static/image/common/none.gif)
解决步骤:
步骤一:设置计划任务-计算报表,将需要每天计算一次的报表设置成每晚某个时间点,执行一次计算;
步骤二:挂载报表到门户上,不带扩展参数;
步骤三:在需要进行一次局部刷新的报表中,客户端脚本添加如下热区式钻取脚本即可:
- _zcalcn([['Widget1', 'HHH1', ' ']]);
其中:
(1)_zcalcn表示使用热区式钻取,执行(调度)一次热区式钻取动作;
(1)_zcalcn表示使用热区式钻取,执行(调度)一次热区式钻取动作;
(2)Widget1为一个热区的唯一标识;
(3)HHH1为需要展现时立即刷新(计算)一次的表格所在的容器的代号。
(4)第三个参数为钻取计算所用的参数,默认会用当前报表全部参数以及传递到热区内的参数(如果全局参数与传递到热区内参数有相同参数,热区内参数就近优先级较高)。
参数值格式:param1=value1;param2=value2
(5)可以刷新一个或多个热区,多个热区示例如下:
- _zcalcn([['Widget1', 'HHH1', ' '], ['Widget2', 'HHH2', '@hy=C;@bbq=201911']]);