替换数据集

<< Click to Display Table of Contents >>

当前位置:  制作可视化报告 > 报告操作与设置 

替换数据集

复制链接

1. 概述

1.1 应用场景

用户制作报表时,需要在不重新制作报表的前提下替换其他数据集。例如用户使用测试数据集制作好报表美化,再替换为实际数据集。

1.2 功能介绍

如果制作好的报告中不只一个组件的数据集需要替换为其他数据集,可以使用报告级别的替换数据集。

2. 替换数据集

1)在制作报告界面的顶部工具栏中选择【替换数据集】。

2)选择新的数据集后,编辑替换数据列为新列。

Dashboard_ReplaceDataSet_dialog

3) 点击“确定”,查看替换数据集后的报告。

Dashboard_ReplaceDataSet_Result

说明:

若多个组件都绑定了“Sales”、“Produnct Type”、“Product”、“Profit”列,替换数据集后,所有组件上的绑定的对应数据列都会替换为“产品种类”、“销售额、“产品名称”、“利润”

3. 替换结果

替换新数据集后,有两种结果:直接替换成功和弹出提示信息。原始列和新列的数据类型不匹配,弹提示信息不等于替换失败。

3.1 直接替换成功

如果报告所使用到的原始数据集的字段在新数据集中全部包含,并且结构数据类型一致,替换数据成功,数据集和数据都直接变为新数据集。

3.2 弹出提示信息

如果报告中已使用的原数据集字段在新数据集中不存在,则提示数据列不存在。

Dashboard_ReplaceDataSet_hint

注意:

替换数据集时,可以不指定新列,后台执行时会自动匹配相同列名或别名的列进行数据替换,主要有以下几种场景:

存在设置“别名”的场景

原数据集

新数据集

结果

列名

别名

列名

别名

备注

MARKET

a

MARKET


替换成功,数据更换为新数据集相同列名的数据

MARKET

a

MARKET

b


替换成功,数据更换为新数据集相同列名的数据

MARKET

MARKET_SIZE

MARKET_SIZE

查询中不存在列名为MARKET的列,也无别名为MARKET的列

替换成功,数据更换为新数据集的MARKET_SIZE

MARKET

MARKET_SIZE

MARKET_SIZE

查询中不存在列名为MARKET的列,存在别名为MARKET的列

替换成功,数据更换为新数据集的MARKET_SIZE

MARKET

MARKET_SIZE

MARKET_SIZE

查询中存在列名为MARKET的列,不管此列是否有别名

替换成功,数据更换为新数据集的MARKET

MARKET

a

MARKET_SIZE

a

查询中不存在列名为MARKET的列

替换成功,数据更换为新数据集的MARKET_SIZE

SALES

AREA_CODE

查询中存在列名为SALES和AREA_CODE的列

替换成功,数据更换为新数据集的SALES

1)当存在相同的列名时,会直接替换为同名的列;

2)若不存在相同的列名,会优先拿新数据集的列名匹配原数据集别名,若不存在相同的,再拿新数据集别名匹配原数据集别名,同名的可以直接替换成功。

存在使用“表达式”的场景

1)数据集上的表达式:

若原报告内绑定了数据集端新建的表达式列,替换数据集时会按表达式引用到的列去进行匹配,例如原数据集有:计算列1=col['SALES']-100),替换后,若新数据集存在列SALES,则绑定的表达式能正常执行,且数据会按新的SALES计算,但不会自动生成一个计算列1;若新数据集不存在列SALES,则绑定的表达式不能正常执行,会报列不存在,此时您需要修改列名或者替换其他数据集。详细场景参考下表:

原数据集

新数据集

结果

原始列

表达式列

原始列

表达式列

SALES

表达式a(例如col['SALES']-100)

SALES

报告端不会生成表达式a,若原数据集端的列绑定到了组件上,替换后能正常按原表达式显示数据,计算时表达式里面的SALES会使用新数据集里面的SALES

SALES

表达式a(例如col['SALES']/100)

替换成功,直接替换为新的表达式a

提示列不存在,继续替换后,提示所依赖的列不存在

ID

表达式a(例如col[ID']/1000)

替换成功,直接替换为新的表达式a

表达式b(例如now())

报告端不会生成表达式b,若原数据集端的列绑定到了组件上,替换后能正常按原表达式显示数据

表达式b(例如today())

替换成功,直接替换为新的表达式b

 

2)报告上的表达式:

若原报告内绑定了报告端新建的表达式列,替换数据集时会按表达式引用到的列去进行匹配,并在报告端生成一个表达式列,若存在一个同名的表达式列则不再生成。例如原报告有:计算列1=col['SALES']-100),替换后,会自动生成一个计算列1,若新数据集存在列SALES,则绑定的表达式能正常执行,且数据会按新的SALES计算;若新数据集不存在列SALES,需要编辑计算列1,把引用到的列SALES替换为一个存在的列,详细场景参考下表:

原数据集

新数据集

结果

原始列

表达式列

原始列

表达式列

SALES

表达式a(例如col['SALES']-100)

SALES

报告端会生成表达式a,计算时表达式里面的SALES会使用新数据集里面的SALES

SALES

表达式a(例如col['SALES']/100)

替换成功,直接替换为新的表达式a

提示列不存在,继续替换后,报告端会生成表达式a,表达式前面会有红色感叹号,此时需要编辑表达式内的SALES为一个存在的列才能正常执行

ID

表达式a(例如col[ID']/1000)

替换成功,直接替换为新的表达式a

表达式b(例如now())

替换成功,报告端会生成表达式b,若原数据集端的列绑定到了组件上,替换后能正常按原表达式显示数据

表达式b(例如today())

替换成功,直接替换为新的表达式b

4. 其他说明

如果制作好的报告中只需替换单个组件的的数据集,可以使用组件级别的替换数据集,详情请参考组件级别替换数据集