[原创视频]如何让列表实现任意字段类型的排序

本资料无预览

如感兴趣请 1 金币购买后下载

立即下载

资料简介:
在第一次参加报表比赛时用JavaScript实现了列表基于数值型字段的排序
http://www.cognoschina.net/home/space.php?uid=652&do=blog&id=547
针对数值字段排序就是将列表中的一个数据项设置为升序,根据参数判断如果是升序就直接显示数值,如果是降序则执行-1*数值。
数据项的表达式为
IF ( ?sorttype? = 'UP' ) THEN
(
[职工人数]
)
ELSE
( -1*[职工人数] )
上述思路只能对数值型字段进行排序,而字符型的排序却无能为力,后来有网友也讨论过如何对字符型进行排序,那个网友得出用两个数据项来实现,本来想把讨论的帖子贴出来给大家分享的,可今天翻了半天之前的帖子,没有找到。
我这里来说一下实现思路

两个数据项在列表中分别设置为升序、降序。升序数据项的表达式思路如下:
IF ( ?sorttype? = 'UP' ) THEN
(
//根据参数判断要展现的列,比如 IF ( ?sortcol? = 'A' ) THEN([人员姓名])ELSE([职工人数])
)
ELSE ( null )
降序数据项的表达式思路如下:
IF ( ?sorttype? = 'DOWN' ) THEN
(
//根据参数判断要展现的列,比如 IF ( ?sortcol? = 'A' ) THEN([人员姓名])ELSE([职工人数])
)
ELSE ( null )
所以当传递的参数是UP时,起决定性作用的是升序的数据项,因为降序的数据项为null
当传递的参数为DOWN时,起决定性作用的是降序的数据项,因为升序的数据项为null

思路明白了后我们来看如何在ReportStudio中实现排序
我们基于Cognos式样的GO 数据仓库 (查询)包创建一个简单的list报表如下图所示:

image001.png


其中年份、组织名称(级别3)是字符型数据,工资是数值型
切换到查询资源管理器,为列表所用查询增加两个数据项升序、降序
升序的表达式为
IF ( ?sorttype? = 'UP' ) THEN
(
IF ( ?sortcolumn? = 'A') THEN
    ( [年份] )
ELSE
    ( IF ( ?sortcolumn? = 'B' ) THEN
    ( [组织名称(级别 3)] )
ELSE
    ( [工资] ) )
)
ELSE
( null )
降序的表达式为:
IF ( ?sorttype? = 'DOWN' ) THEN
(
IF ( ?sortcolumn? = 'A') THEN
    ( [年份] )
ELSE
    ( IF ( ?sortcolumn? = 'B' ) THEN
    ( [组织名称(级别 3)] )
ELSE
    ( [工资] ) )
)
ELSE
( null )

将升序和降序放到列表中,将升序所在列设置排序操作为升序,降序所在列排序操作为降序
,如下图所示:

为了方便演示,我们分别为sorttype和sortcolumn创建下拉框,并为其设置静态值,运行效果如下图所示:

2010-11-05
浏览30283
下载662

已下载用户的评价7.94分

您还未下载该资料,不能发表评价;
查看我的 待评价资源
小丫头小丫头软件开发工程师文思海辉2016-04-22
没用
没有下载下来,金钱到是花了。。。。
shao198805shao198805软件开发工程师hik2015-08-12
没用
看不到啊
白帝舞剑行白帝舞剑行IT顾问IBM2015-04-22
没用
真正需要
yunfeiyunfei软件开发工程师tdd2015-03-13
没用
学习一次
tianmi02tianmi02数据仓库工程师铁科院2015-03-13
没用
非常不错,学习一下哦,支持楼主
lilyyulililyyuli软件开发工程师合肥凯捷信息技术有限公司2014-10-27
没用
:handshake
KAKA19891111KAKA19891111商业智能工程师HighJet2014-10-27
没用
回复看看~~~
hujunyi1120hujunyi1120软件开发工程师雨润集团2014-09-25
没用
非常感谢分享!
amu0722amu0722CEO打毛党2014-09-17
没用
看看学习下
butterfly_surebutterfly_sure研发工程师创智和宇2014-08-07
没用
学习一下

贡献者

interboy软件开发工程师,北京中电普华信息技术有限公司
X社区推广