<< Click to Display Table of Contents >> 如何实现图表的翻页 |
某零售商报表,通过柱状图和表格展示了利润的详细情况。该表包含了上千行数据。受限于报表和屏幕的尺寸,只能通过鼠标滑动,查看数据。可是,对表格进行翻页,无法联动图表,大大限制了我们对数据的多维度分析。
通过脚本,我们就可以对报告进行翻页,翻页时,表格和图表中的数据都会发生变化。
以下面的简单报告为例。我们对它进行分页。
1.为报告中的条形图和表格,添加排名。
1.1为表格添加排名计算。
1.2为图表添加排名计算
1.2.1为图表添加一个新的度量字段,并设置为“排名计算”
1.2.2设置标记的重叠方式为“重叠”。
1.2.3因为排名的标记,我们不需要在图表中体现出来。所以设置排名标记的颜色为背景色。此时,就看不到图表中的排名标记了。
2.添加文本组件、文本参数组件、提交组件,为报告增加输入页码的文本框和上下翻页的按钮。其中,可以输入数字的组件,为本文参数组件。
3.对“跳转”、“上页”、“下页”分别设置脚本,实现跳转到指定页,跳转到上一页,跳转到下一页的功能。
3.1设置“上页”提交按钮的脚本。
例如:
if(文本参数3.value>1){
文本参数3.value=integer(文本参数3.value-1)
param['a']=(文本参数3.value-1)*文本参数1.value+1
param['b']=文本参数1.value*文本参数3.value
}
说明:文本参数3组件,显示了当前报告处于哪一页。用户也可以在该组件中输入新的页码,点击“跳转”,就可以跳转到新的页面。如果用户用来显示当前页码的组件不是文本参数3组件,那么需要在脚本中改成相应的组件名称。
参数a和参数b,用来控制图表和表格中显示多少条数据。具体的用法,请参考步骤4。
3.2设置“下页”提交按钮的脚本。
例如:
if(文本参数3.value<文本1.data){
文本参数3.value=integer(parseInt(文本参数3.value)+1)
param['a']=(文本参数3.value-1)*文本参数1.value+1
param['b']=文本参数1.value*文本参数3.value
}
说明:文本参数3组件,显示了当前报告处于哪一页。文本1组件,显示报告共有多少页。文本参数1组件,显示每页中每个组件显示多少条数据。用户需要根据报告中实际的组件名称,在脚本中改成相应的组件名称。
参数a和参数b,用来控制图表和表格中显示多少条数据。具体的用法,请参考步骤4。
3.3设置“跳转”提交按钮的脚本。
例如:
if(文本参数3.value<=文本1.data&&文本参数3.value>=1){
param['a']=(文本参数3.value-1)*文本参数1.value+1
param['b']=文本参数1.value*文本参数3.value
}else{
文本参数3.value=integer(1)
debug("请输入正确的页数")
}
说明:文本参数3组件,显示了当前报告处于哪一页。文本1组件,显示报告共有多少页。文本参数1组件,显示每页中每个组件显示多少条数据。用户需要根据报告中实际的组件名称,在脚本中改成相应的组件名称。
参数a和参数b,用来控制图表和表格中显示多少条数据。具体的用法,请参考步骤4。
4.设置图表和表格的过滤条件,通过过滤条件,控制数据的显示行数。
表格与图表的过滤设置方法相同,下文以表格为例。
4.1选中表格,点击右侧窗格中的设置>过滤。
4.2在过滤中的汇总过滤,设置过滤条件,如下图。
该条件会筛选出排名在a和b之间的数据。参数a和b的值,取决于步骤3的脚本,也就是取决于文本参数1组件和文本参数3组件。假如参数a的值为1,b的值为4,那么表格中将显示预算利润最多的4项数据。
对报告中所有需要翻页的图表、表格设置过滤条件,就可以实现报告的翻页。