知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > V5解决扩展问题

V5解决扩展问题

在制作报表时,经常会遇到将数据库里一列数据按照条件取值后,分为多列显示的需求,由于受到扩展格的影响,总是实现不了这样的需求。本文简单简单介绍一下如何用valueat函数和selectEx函数实现按条件取值分多列显示数据的需求。

制作报表,如图所示:

 

方法一:使用selectEx函数实现。

设置B2单元格表达式为:=ds1.selectEx( 产品ID,产品ID%2==0)

设置F2单元格表达式为:=ds1.select1( 产品ID,产品ID==B2+1),并设置其左主格为B2

其中,selectEx函数说明见文章的附录。

预览效果如下图所示:

 

方法二、使用valueat函数实现。

首先在A2单元格中用count函数计算出每列要显示的数据条数,然后在A3单元格中to函数从0扩展出展示数据所需要的单元格数量,最后用valueat函数根据指定位置返回数组或者集合表达式中的某一个元素。

设置B3单元格里的表达式:=valueat(ds1.Select(产品ID,false,产品ID%2==0),A3)

设置F3单元格的表达式:=valueat(ds1.Select(产品ID,false,产品ID%2!=0),A3)

预览效果如下图所示:

 

 

附录

1、selectEx函数说明:

        从数据集的当前行集中选取符合条件的记录

    语法:

        datasetName.selectEx( <select_exp>{filter_exp{, “sort_exp1, desc_exp1{;sort_exp2, desc_exp2{;…}}”{,rootGroupExp}}} )       

    参数说明:

        select_exp    要选择的字段列名/列号,,也可以是表达式。

                    列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推

        filter_exp    数据过滤表达式,如果全部选出,则此参数省略,仅用”,”占位。

        sort_exp1    数据排序表达式。按desc_exp1排序。

        desc_exp1    指定数据排序的顺序,true表示降序排列,false表示升序排列。

        sort_exp2    数据排序表达式。将sort_exp1相同的字段,按desc_exp2排序。

        desc_exp2    指定数据排序的顺序,true表示降序排列,false表示升序排列。

        rootGroupExp    是否root数据集表达式                              

    返回值:

        一组数据的集合,数据类型由select_exp的运算结果决定 

    函数示例:

        例1:ds1.selectEx( name,sex==’1′,”name;grade,true”)从数据源ds1中选取性别为男性(’1′)的name字段列的值并升序排列,然后把姓名相同的按grade降序排列

2、valueat函数说明:

    根据指定位置返回数组或者集合表达式中的某一个元素

    语法:valueat(arrayexp,suffixExp)     

    参数说明:

        arrayexp    数组或者集合表达式

        suffixExp    整数,用于指定返回集合中的第几个元素,以0开始计数

    返回值:

        集合中的一个元素,数据类型由集合中的元素类型决定

    示例: 例1:valueat(to(5,8),2)        返回值为:7

 

本文标签:
发布日期:2013/08/27
本文分类: 知识库