有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
腾讯云 BI 支持通过项目变量的方式,将计算结果传递给文本等组件,满足需要动态展示文本的场景,如在标题中插入汇总数、在文本组件中,添加动态销量数据等。

版本支持:专业版

本文介绍以下操作:
创建变量
引用变量
变量语法说明


创建变量

目前腾讯云BI的项目变量作用域为当前整个项目(未来将支持仅当前页的临时变量),同一项目创建的所有变量都可被项目成员引用。
创建变量需要如下步骤:
1. 入口:进入控制台 > 页面 > 编辑 > 变量


2. 定义变量信息:


单击“+新增”来增加一个变量;
输入引用名及变量名称:引用名称是最重要的参数,必须英文及下划线格式,在变量调用时,通过该名称进行引用;
参数类型:指变量值的获取方式,目前仅提供“快捷分析”,未来将支持SQL及手动值来获取变量值。
3. 设置变量取值
通过“快捷分析”,可以取得图表分析的结果,操作同图表编辑。下面以“获取产值最高的员工名称”为例:


3.1 选择数据表:选择变量的来源数据表;
3.2 选择需要分析的字段:
选择“姓名”作为分析维度
选择“员工产值”作为分析指标
3.3 对字段进行排序:
对“员工产值”字段进行降序排列
选择“员工产值”作为分析指标
3.4 启动分析:点击“立即分析”,获得数据结果,可以表格或者json的格式展示结果;


4. 对变量结果进行格式化
获取过来的原始结果往往需要做一层格式化处理,才能符合展示要求,例如结果为列表,而我们需要再前端展示为一个汇总数据,如取得第一个员工的产值。
腾讯云BI使用 art-template 模板语言进行格式化处理,用户可以很方便的对结果进行二次加工,下面以“获取产值最高的员工名称”为例:
4.1 单击结果格式化 tab,切换到结果格式化界面


4.2 在编辑框中输入花括号"{{response[0]}}"(初始化会预填),其中“response[0]”代表分析的原始结果的第一行数据,我们需要获取的是“姓名”列,因此需要在后面指定列的key,即“key_A'”(可在表格的表头上查看列key)
4.3 单击预览查看处理结果,如需要更复杂的处理,可查阅《变量语法说明》
4.4 如符合预期,即可保存设置

引用变量

变量将可以用在多种场景,目前腾讯云BI支持在组件标题和文本组件中引用变量。变量的引用使用花括号包裹,如”{{name}}“。
1. 在标题中插入变量
1.1 打开页面》编辑组件》设置组件标题


1.2 在标题中插入花括号”{{}}“,并在中间输入变量引用名:如”{{yuangong_01}}“
1.3 保存后查看变量解析结果


2. 在文本组件中插入变量
2.1 编辑文本组件
2.2 输入文本内容,在需要替换的部分,插入变量



2.3 或者直接用花括号替换变量部分内容,如”{{yuangong_chanzhi}}“
2.4 保存设置,查看变量是否被解析


注意:
如变量解析失败,则呈现为文本,如”{{value}}“;
如对变量部分进行样式设置,请务必选择一个完整的变量引用体,如”{{name}}“,切不可选择”{{na“,否则变量无法解析。

变量语法说明

腾讯云 BI 使用模板语言进行变量的获取和处理,语法基本和JS一致。
1. 获取变量结果
response为原始数据api接口数据,用户可以通过二维数组获取方式获取行列值:
{{response[x][y]}}
获取行:代码中的”x“代表行序号,从0开始,0代表第一行
获取列:代码中的”y“代表列key,该key可以从表头中查看(该值为string,需要单引号包起来),如下:

以“按照产值倒序,获取第三名员工产值”为例,可如下:
{{response[2]['key_G']}}
以上代码将获取到结果为”114000“。

2. 语法逻辑
2.1 逻辑计算:
//数学运算:支持js的数学运算符
{{a+b}}

//逻辑运算
{{ a || b}}

//if...else
{{if a>b }} 输出结果1 {{/if}}
{{if a>b }} 输出结果1 {{else if a>2*b}} 输出结果2 {{/if}}

// 三元运算
{{ a>b ? '输出结果1':'输出结果2'}}

// 循环,下例取出所有员工名称(response为整个表)
{{each response}}
第{{$index+1}}名:{{$value['key_A']}}
{{/each}}

2.2 使用内置格式化方法
腾讯云BI内置了部分标准函数,可以对结果进行快速的格式化,如对数值进行千分位处理等,目前腾讯云BI内置了以下格式化方法:
// 百分号处理方法 percentageFunc
// 格式:{{percentageFunc A B C}},A表示小数位(默认2位),B表示千分位(默认不开启千分位),C表示进位方式(roundFive:四舍五入;roundUp:向上取整,roundDown:向下取整)
{{ response[0]['key_A'] | percentageFunc}}
{{ response[0]['key_A'] | percentageFunc 3 true 'roundFive'}}

//千分位处理方法 thousandsNumberFunc
// 格式:{{thousandsNumberFunc}}
{{ response[0]['key_A'] | thousandsNumberFunc}}

//日期处理方法 dateFormatFunc
// 格式:{{dateFormatFunc A}}, A为时间格式,默认'yyyy-MM-dd'
{{ response[0]['key_A'] | dateFormatFunc 'MM'}}
2.3 使用 js 语法
除了内置的格式化方法,腾讯云 BI 支持使用 js 语法处理数据结果,例如 string.substring() 方法,如下例通过 substring 方法获取月份
//设置临时变量temp
{{set temp = response[0]['key_A'].substring(5,7)}}
//如果10月以下去掉前面的0并展示月份
{{temp >= 10 ? temp : temp.substring(1) }}月
处理效果:


注意:
当前仅开放对字符串、数值、时间类型数据的JS函数支持。