zoukankan      html  css  js  c++  java
  • 不用JavaScript实现列表排序(利用钻取实现)

    实现演示的视频已经发到论坛中http://www.cognoschina.net/club/thread-10286-1-1.html

    第一次参加报表比赛时用JavaScript实现列表数值字段的排序,虽然这个很实用,但是JavaScript对不同内核的浏览器支持程度不一样,而且一般做报表的开发人员可能对JavaScript都不是很熟悉,所以虽然我认为我写的已经很详细了,但是还是有好多网友在使用的过程中遇到很多问题,问我应该怎么调试JavaScript,然而JavaScript却不是三言两语能偶说清楚的。后来我突然想到是不是可以利用追溯来实现排序呢?我试了一下午,终于有所成。后来我就因为其他事耽搁了个把月,今天利用周末整理一下。发给大伙

    排序实现的思路这里就不提了,可以参考我前两天发的博文

    用基于自身的追溯来实现排序,即:报表的钻取对象还是它自己,在钻取过程中将参数改变,实现排序。

    以前两天发的任意字段列表排序例。打开排序的列表如下图所示

     

    为了能够在追溯中改变参数,所以必须多创建几个数据项,我们先需要的数据项有5个,升序、降序(UP、DOWN)以及三个需要排序的列(A、B、C)。如下图所示:

     

    数据项表达式就是参数所要接收的值。如图所示UP数据项的表示为’UP’。

    接下来为列头增加排序显示的图片,先点击解锁,并将图像组件放到“年份”列头中,如下图所示:

     

    点击图片,在属性栏中的来源类型改为“报表表达式”,并将表达式的内容设置为

    IF ( ParamValue('sorttype') = 'UP' )

    THEN

        ('http://127.0.0.1:9300/p2pd/pat/images/sortState_ascending.gif' )

    ELSE

        ('http://127.0.0.1:9300/p2pd/pat/images/sortState_descending.gif' )

    该表达式根据传递的参数动态显示图片。

    接下来为年份创建追溯定义,为了便于理解,我们将名称定义为UP,将目标报表选中自身

     

    点击编辑设置传递的参数

     

    将方法选择为“传递数据项值”,并未参数设置相应的值,点击确定

    我们在复制一下年份,并该其追溯名称为DOWN,将sorttype传递的数据项值改为DOWN

     

    这时运行报表,看到年份列有两个年份,点击前一个会按照年份进行升序排列,点后面一个会按照降序排列。

    为了避免这种现象,我们需要用条件样式来控制显示。

    切到条件资源管理器中,新建一个布尔值变量IsUP,表达式设置为

    ParamValue('sorttype') = 'UP'

    将两个年份的样式变量都设置为IsUP,并将前一个年份为“是”时不显示(方框类型设置为空),后一个年份为“否”时不显示。

    再次运行报表就只有一个年份,点击就会进行排序,并且图片提示当前是升序还是降序

     

    再次进入条件资源管理器,创建一个字符串变量sortColumn,表达式为:

    ParamValue('sortcolumn')

    并设置3个值A、B、C

     

    选中图片,并将sortColumn设为样式变量,根据参数的值判断图片是否显示。以年份为例,随对应的参数值为A,所以需要经B、C、其他所对应的方框类型设置为空。

    此时一个字段的排序就已经完成了,我们将这三个对象复制一下啊,分别粘贴到后面几列中,然后分别设置追溯传递的值和相应的样式就可以了。

    最终效果如下图所示

     

  • 相关阅读:
    mysql 历史版本下载
    mysql 5.7 版本 You must reset your password using ALTER USER statement before executing this statement报错处理
    5.7 zip 版本的安装 以及遇到的坑
    mysql 5.6zip版本的卸载与5.7 zip 版本的安装
    mysql数据库的备份与还原
    本地Navicat连接docker里的mysql
    docker修改数据库密码
    docker 在push镜像到本地registry出现的500 Internal Server Error
    linux 没有界面内容显示不全解决办法
    json与map互相转换
  • 原文地址:https://www.cnblogs.com/interboy/p/1872026.html
Copyright © 2011-2022 走看看