报告级别的脚本

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 脚本 > 报告中使用脚本 

报告级别的脚本

复制链接

用户可通过脚本来实现对整个报告的控制,如通过脚本来实现对报告的定时刷新。通过报告的脚本也可以实现对各个组件的整体控制。

报告的脚本分为装载时运行的脚本和变化时运行的脚本,两个类型的脚本的执行条件不同,装载时运行的脚本是在报告打开时运行,而变化时运行的脚本是在组件有变化时运行。

1.脚本入口

在右侧工具栏中选择【报告 > 脚本】,即可打开脚本对话框。

2.脚本对话框

DBScriptDialog

【装载时运行】即在新打开报告或预览报告时运行脚本内容。装载时运行的脚本只在它第一次加载报告时执行一次。非常适合一次性初始化任务,如定义报告参数和变量。在装载时运行脚本中声明的变量具有全局范围,可以被各个组件脚本访问。要在别处声明同名的局部变量,请在声明中使用“var”关键字来消除歧义。

【变化时运行】即在组件变化时运行脚本的内容。变化时运行处理类似于装载时运行处理,在加载报告时,在装载时运行脚本之后执行。但是,与装载时运行的脚本不同的是,每次刷新报告时都会执行一次变化时运行的脚本。可以从变化时运行里添加脚本,动态修改多个元素。在变化时运行的脚本中声明的变量将具有全局范围,并且可以被各个组件脚本访问。要在别处声明同名的局部变量,请在声明中使用“var”关键字来消除歧义。

3.报告级别的脚本应用举例

例如有以下交叉表组件,组件名为“图表1”,分别统计了不同产品的销售总额以及各级市场销售占比。

Db_script_db4

我们要使用富文本组件统计销售占比信息,统一展示在报告中,得到下图效果:

Db_script_db5

实现思路

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)分别赋值给参数东部占比、南部占比、西部占比、中部占比、销售额。

代码如下:

Db_script_db6

4)新建一个富文本组件,点击右侧【格式 > 编辑】,在编辑区内输入文本引用前面的参数,如下图:

Db_script_db7

打开报告时,效果如下图:

Db_script_db8

4.其他
如果您不希望在查看报告时看到报错信息,您可以在bi.properties文件中配置ignore.viewer.hint控制报告报错的弹窗。

当值为true时,查看报告会屏蔽报错信息,当值为false时,查看报告会正常弹出报错信息。