反馈已提交
网络繁忙
将数据集中的数据列直接拖拽到单元格中使用时,如果想要「条件显示」某些数据列的值,那么可以使用数据集函数。
1)参数面板中不支持使用。
2)不支持模拟计算,模拟计算详情参见:2.4节。
3)决策报表填报事件不支持使用数据集函数。
1)概述
筛选出数据集某列中符合条件的数据,返回结果是一个数组,相同数据不会合并
注:当仅返回一条数据时,数据类型是「字符串」而不是数组。
2)注意事项
筛选条件中的判断既可以使用单等号,也可以使用双等号;
字符串也同时可以使用单引号或者是双引号,对结果均没有影响;
tablename.select() 与 sql() 的区别主要在于 tablename.select() 是从数据集取数,sql() 是从数据库取数,不需要先定义一个数据集。详情参见 SQL 函数
在公式中,以 0 开头的字符串在匹配判断时,例如:ds1.select(colname,ID="003") 结果会返回对应 ID 为 0、03、003…… 的结果。若只希望返回 003 ,可以使用 EXACT 来做匹配判断。例如:ds1.select(colname,exact(ID,"003"))
如果想要进行模糊查询,可通过与 Find 函数 嵌套实现,例如公式:ds1.select(产品名称,FIND("苹果",产品名称)!=0),如下图所示:
3)示例
例如数据集 ds1 取出内置 FRDemo 数据库中的「S产品」表,分别在单元格中输入以下公式:
返回数据集 ds1 产品名称列中的所有产品名称。
返回数据集 ds1 库存量大于 20 且订购量大于 30 的产品。
返回数据集 ds1 供应商为1或者库存量大于 30 的产品。
为布尔值,true 表示升序,false 表示降序。
注:若使用升降序参数,那么必须写筛选条件参数,若没有筛选条件,可以用 true 或者空格代替:例如=ds1.group(销售员,true,false)或者=ds1.group(销售员, ,false)
2)示例
如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表:
返回数据集 ds1 华东地区销售总额超过 200 的销售员,并且相邻数据若相同会进行合并。
返回数据集 ds1 销售员列中的值,并且其中只要数据相同就会进行合并,结果为降序排列,中间的参数为过滤条件,若没有条件,可以用空替代或者使用 true 。
返回数据集 ds1 华东地区的销售员,并且相邻数据若相同会进行合并。
表示列号。
如果tablename.select(#0)则输出数据表行号数组(数据条数)
tablename.select(#1)则输出数据库表中第一列的数组数据
填报场景下 ds1.select(#0) 这个公式如果联动计算有异常,需要检查父子格关系。例如出现下图所示的计算结果时:
remoteEvaluate(String) 方法不支持 tablename.select 函数。
例如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表:
返回数据集中的行号
返回数据集中对应列数据
表示行号
报表的图表标题不支持该函数。
决策报表里的图表块不支持该函数。
JavaScript 中不支持该函数。
在单元格中输入如下公式:
=if(条件,ds1.group(customerid),ds2.group(customerid))
并设置其扩展属性为从上到下。
公式说明:
条件为真,单元格使用数据集 ds1 中的 customerid 列,否则使用 ds2 中的 customerid 列 。
在单元格输入公式=sum(ds1.select(销量)),返回数据集 ds1 销量列的总和。
sum 求和公式也可以换用其他如 count、max 等。
直接将数据列拖拽到单元格时会自动从上到下扩展。但是使用数据集函数获得数据为一个数组,是显示在一个单元格中的,需要另外给单元格设置扩展属性,数据才会进行扩展。
例如在单元格输入公式=ds1.group(销售员,地区=="华东",true),设置扩展房方向为「纵向」,如下图所示:
预览报表如下图所示:
售前咨询电话
400-811-8890转1
在线技术支持
在线QQ:800049425
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭