点击报表头实现列表排序

点击报表头,列表自动从小到大或者从大到小排序是非常常见的需求,传统的报表单纯通过写sql和页面来实现,费时费力,快逸报表作为新一代的类excel智能WEB报表开发工具,在实现这种需求时可谓轻而易举。本文通过下面的小例子介绍一下。
一:首先看一下效果图:

点击报表头实现列表排序效果

点击类别ID后,效果图如下:

点击报表头实现列表排序效果

从上面的两个图片中可以看出点击报表头时,类别ID从由小到大排序变为了从大到小排序!

二:实现思路:

快逸报表中数据集函数可以传入参数,从而控制对某一字段的排序,通过宏和参数以及超链接的结合使用,可以动态为数据集函数传入不同的参数,实现了点标题点击标题实现列表排序。

三:实现步骤:

1:首先看报表模版以及参数和宏的设置
下图是报表模版及参数设置:

点击报表头实现列表排序设置

下图为报表模版和宏的设置:

点击报表头实现列表排序设置

2:利用宏和超链接实现方法解析
快逸报表的数据集函数可以控制排序方式,此例中用到的数据集函数为:ds1.grout(),
A2单元格表达式为:=ds1.group(类别ID,${macro2},,${macro1})
${macro2}表示分组前记录的排序顺序,true为逆序,false为顺序
${macro1}表示分组前纪录的排序依据表达式,默认为类别ID
所以只要能动态传入macro2以及macro1的值,就能控制类别ID的排序。
(注:ds.group()数据集函数的说明请参考 润乾报表4.0用户手册 第八章 表达式及函数 第四节函数中的内容)
第一次访问此报表时接受的宏值为默认值,A2单元格表达式为:=ds1.group(类别ID,false,, 类别ID),所以我们看到的效果是类别ID从小到大排序。

接下来每次通过点击报表头单元格触发超链接来传递不同的宏值实现排序改变。我们在类别ID报表头单元格设置超链接,如下图:

点击报表头实现列表排序设置

超链接表达式为:”/reportJsp/showReport.jsp?raq=/点列表排序.raq&macro1=类别ID&macro2=”+order+”&order=”+if(order==”true”,”false”,”true”)

由表达式可以看出:超链接url中动态控制了macro2的值,macro2的值为报表定义的order参数(macro2=”+order+”),然后通过为参数动态赋值,进而为宏动态赋值,if(order==”true”,”false”,”true”)意思为:如果order为true,那么order赋值为false,否则order赋值为true。这样就实现了点击标题,动态控制排序方式的功能。

同样的道理,也可以设置根据销售额的大小动态实现排序的方式,同样可以通过设置超链接,为A2单元格的ds1.group()函数动态传入宏值来控制。具体的实现,可以动手做一下。

快逸报表作为新一代的企业级智能WEB报表工具,集成了参数,宏,函数等等,灵活的利用宏和参数能大大提高报表的简易度,灵活度。

热门文章