<< Click to Display Table of Contents >> 报告级别的脚本复制链接 |
用户可通过脚本来实现对整个报告的控制,如通过脚本来实现对报告的定时刷新。通过报告的脚本也可以实现对各个组件的整体控制。
报告的脚本分为装载时运行的脚本和变化时运行的脚本,两个类型的脚本的执行条件不同,装载时运行的脚本是在报告打开时运行,而变化时运行的脚本是在组件有变化时运行。
1.脚本入口
在右侧工具栏中选择【报告 > 脚本】,即可打开脚本对话框。
2.脚本对话框
【装载时运行】即在新打开报告或预览报告时运行脚本内容。装载时运行的脚本只在它第一次加载报告时执行一次。非常适合一次性初始化任务,如定义报告参数和变量。在装载时运行脚本中声明的变量具有全局范围,可以被各个组件脚本访问。要在别处声明同名的局部变量,请在声明中使用“var”关键字来消除歧义。
【变化时运行】即在组件变化时运行脚本的内容。变化时运行处理类似于装载时运行处理,在加载报告时,在装载时运行脚本之后执行。但是,与装载时运行的脚本不同的是,每次刷新报告时都会执行一次变化时运行的脚本。可以从变化时运行里添加脚本,动态修改多个元素。在变化时运行的脚本中声明的变量将具有全局范围,并且可以被各个组件脚本访问。要在别处声明同名的局部变量,请在声明中使用“var”关键字来消除歧义。
3.报告级别的脚本应用举例
例如有以下交叉表组件,组件名为“图表1”,分别统计了不同产品的销售总额以及各级市场销售占比。
我们要使用富文本组件统计销售占比信息,统一展示在报告中,得到下图效果:
•实现思路
1)先获取总销售额、东部市场占比值、南部市场占比值、西部市场占比值、中部市场占比值。
脚本写法:
var data=getViewData("交叉表1");//从交叉表1获取数据
var a=data.get(1,2);//获取第2行、第3列的数据
2)把获取到的值赋给新的参数。
脚本写法:
var b=data.get(2,6)*100;
param['南部市场']=left(b,5)+"%"//设置数据的格式为百分比,并将数据值赋予参数南部市场
3)在富文本中引用参数。
➢例如:
参数a,直接用?{a}引用。
•具体步骤
1)点击右边编辑栏【报告 > 脚本】,选择【装载时运行】。
2)分别按所在单元格获取交叉表中的东部占比、南部占比、西部占比、中部占比、销售额数据。
3)分别赋值给参数东部占比、南部占比、西部占比、中部占比、销售额。
代码如下:
4)新建一个富文本组件,点击右侧【格式 > 编辑】,在编辑区内输入文本引用前面的参数,如下图:
打开报告时,效果如下图:
4.其他
如果您不希望在查看报告时看到报错信息,您可以在bi.properties文件中配置ignore.viewer.hint控制报告报错的弹窗。
当值为true时,查看报告会屏蔽报错信息,当值为false时,查看报告会正常弹出报错信息。