同行两组数据不受主格限制

来源:互联网 发布:网络终端机 云终端 编辑:程序博客网 时间:2024/04/29 16:26

在很多情况下客户希望同行可以展现两组数据。但是限于扩展语句的限制会造成表裂开等不正常现象。今天我以一个简单的成绩表为例子。做一个简单的demo。希望对客户看到后会有所启发。

首先我们还是要内建数据集以便做表用,数据集名称ds1具体数据如图:

然后我们设计报表,设计报表如图:


具体语句为:

A3=if(ds1.count()%2==1,to(0,(ds1.count()+1)/2-1),to(0,ds1.count()/2-1))

B3=valueat(ds1.top(学号,if(ds1.count()%2==1,(ds1.count()+1)/2,ds1.count()/2),false,int(ds1.学     )%2==1),A3)

C3=ds1.select1(姓名,学号==B3)

D3=ds1.select1(成绩,学号==B3)

E3=valueat(ds1.top(学号,if(ds1.count()%2==1,(ds1.count()+1)/2-1,ds1.count()/2),false,int(ds1.     学号)%2==0),A3)

F3=ds1.select1(姓名,学号==E3)

G3=ds1.select1(成绩,学号==E3)

 

这其中涉及到了用户不是经常用的valueat()top()函数。

Valueat()函数说明:

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

    语法:

        valueat(arrayexpsuffixExp)    

    参数说明:

        arrayexp    数组或者集合表达式

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

    返回值:

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

        

    示例:

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

        2valueat({"a","b","c"},0)    返回值为:"a"

 

top函数说明: 从数据集中符合条件的记录中选取头num条并返回

语法: datasetName.top( ,{, desc_exp{, filter_exp{,sort_exp{,rootGroupExp}}}} )

参数说明: select_exp:要选择的字段列,可以是字段列名/列号,也可以是表达式。列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 num_exp 要取得记录个数表达式,该字段计算的最终结果为整型 desc_exp 指定数据排序的顺序,true表示降序排列,false表示升序排列。 filter_exp 数据过滤表达式。 sort_exp 排序表达式。 rootGroupExp 是否root数据集表达式

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

示例:

例1:ds1.top(name,10) 返回数据集ds1中头十条记录的name字段值

例2:ds1.top(name,10,true,,score)       将数据集记录按成绩降序排列,返回头十条记录的name字段值



原创粉丝点击