报表知识库
我要提问

如何选出最近几年的数据来画统计图

有客户有这样的需求,需要利用统计图显示最N年的数据,即统计图的横轴为最近N年的日期。统计图属性定义中有”仅用前N条数据记录来画统计图”的设置,这个设置的意思是选出系列值从大到小排列的前十条数据来画统计图,因此这个设置项并不能满足客户的需求。

我们可以利用top()函数来选出最近N年的数据,然后再利用选出的最近N年的数据来画统计图,即可满足客户的需求。

下面我们来看这个例子:

第一步:新建数据集,打开报表设计器,新建内建数据集如下:

第二步:设计报表,如下:

第三步:定义统计图,A7单元格中统计图定义如下:

A14单元格中统计图定义如下:

第四步:设置隐藏行,选中第5行,在右侧将是否可见的对勾去掉;

第五步:保存预览,统计图效果如下:

top()

函数说明:

从数据集中符合条件的记录中选取头num条并返回

语法:

datasetName.top( <select_exp>,<num_exp>{, desc_exp, filter_exp,sort_exp} )

参数说明:

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

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

num_exp要取得记录个数表达式,该字段计算的最终结果为整型

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

filter_exp: 数据过滤表达式。

sort_exp: 排序表达式。

返回值:

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

示例:

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

2ds1.top(name,10,true,,score)

将数据集记录按成绩降序排列,返回头十条记录的name字段值