使用FineReport报表软在进行排序的时,很多时候您可能想实现根据点击的次数进行升降序排序,也就是说点击第一次点击标题升序排序,再次点击就降序,以此类推,而不是通过选择升序进行升序排列,选择降序进行降序排列。

由扩展后排序可知,可以根据参数值的不同来决定升序还是降序,这里也可以此思路进行实现,定义一个参数,如果参数值为1的时候,就升序,参数值为0的时候,按照数据列的负数进行升序排序,即数据列降序。

本文所提供的方法,只适用于排序数据列数据类型为数字型的字段。数据类型为字符型,我们下节再介绍。

下面以一个简单示例进行介绍,模板根据订单ID进行升序降序排列,第一次点击订单ID的时候升序,再次点击时降序,以此类推。

1、设置超链接

选中A1单元格,右键选择超级链接,添加一个动态参数,增加一个动态参数a,参数值为公式if($a==1,0,1),如下图:

2、排序设置

排序设置有两种设置方式,高级排序和扩展后排序,下面分别介绍着两种方式的设置方式。

(1)高级排序

双击A2单元格,选择高级,在排序顺序处选择升序,公式值为if($a==1,$,?$),如下图:

注:公式的意义是,如果动态参数值为1,那么就将订单ID按照订单ID升序排序,如果不为1,就按照订单ID的负数进行升序排序,即按照订单ID进行降序排序,由于只有数值型数据才有负数,字符型数据没有负数,故该方法只适用于数值型字段排序。

另:如果是将订单ID按照运货费进行升序降序排序,那么公式应为:if($a==1,运货费,-运货费),由于此处排序是设置数据列的排序,则公式中输入的是数据列的名称。

(2)扩展后排序

选中A2单元格,在单元格属性表>扩展属性中的扩展后选择升序,值为公式=if($a==1,A2,-A2),如下图:

注:公式意义同上,此处是根据单元格进行排序,所以公式中输入的是单元格,不是数据列名字。

另:如果需要将订单ID按照运货费进行升序降序排序,那么公式应为:if($a==1,F2,-F2)

3、效果查看

不论是根据高级排序设置,还是扩展后排序设置,设置的效果如下:

FineReport实现根据点击次数奇偶性排序的方法的更多相关文章

  1. FineReport根据点击次数奇偶性排序之字符型

    上一篇文章我们提到了字段为数据型的数据列排序方法,采用的是根据点击次数奇偶性来排序,那如果是字段为字符型,又该如何实现呢? 这里提供的解决思路是通过超级链接来实现升序降序两张模板之间的相互调用,每点击 ...

  2. easyui datagrid 点击列表头排序出现错乱的原因

    之前我的导师,也就是带我的同事,使用datagrid,发现点击列表头排序出现乱序,按理说只有顺序和逆序两种排序结果.因为他比较忙,当时没解决,把排序禁掉了,后来又要求一定要排序,所以他交给我. 一开始 ...

  3. SharePoint 2010 文档管理之点击次数

    前言:很多场景下,我们都需要对一篇文章或者文档的点击次数进行统计,然而SharePoint本身并没有给我们设计这样一个字段,所以我们需要通过简单的字段开发来实现这样一个功能. 一.创建项目: 1. 创 ...

  4. 网页上记录鼠标的点击次数和一段有用的php代码,自己学习使用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. datagridview 点击列标题排序

    开发winform中,平时经常用到数据列表,我们大多选用datagridview,但是此控件本身没有排序的功能.参阅网上资料.留下标记,以后备用. datagridview的数据显示一般是通过数据绑定 ...

  6. DataGrid 使用模型列后实现点击列名称排序

    DataGrid 使用模型列后实现点击列名称排序 代码如下: <DataGridTemplateColumn Header="型 号" SortMemberPath=&quo ...

  7. [WPF]ListView点击列头排序功能实现

    [转]   [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...

  8. QT中Qtableview视图表格中点击表头进行排序

    用QT写了一个小工具,主要是对Excel中大量的数据进行计算和显示. 写了有一段时间,然后断断续续的做一些修改和完善. 因为要显示的数据有多列,很自然的会想到要能够对显示的数据进行排序.如果直接操作m ...

  9. Google2015校招在线測试题1----扫雷最少点击次数

    Problem Minesweeper is a computer game that became popular in the 1980s, and is still included in so ...

随机推荐

  1. jQuery动画

    一.显示和隐藏 hide().show() 1.show():显示被选的元素 2.hide():隐藏被选的元素 3.toggle():对被选元素进行隐藏和显示的切换 语法: $(selector).h ...

  2. Windows 10 内置管理员无法打开Metro应用方法

    前言 在windows 10中,由于权限原因,使用了内置管理员账户.虽然这样权限获取了,但是不能打开Metro应用,Microsoft Edge浏览器等,有点不太好.那有没有方法可以修改呢?这是本文要 ...

  3. GitHub-版本控制

    GitHub的使用:注册,登录,邮箱激活,创建第一个repository.如果branch是master,修改,提交,master直接改变. 稳妥起见创建另一个branch,修改,提交,再发出pull ...

  4. 固定在网页顶部跟随滚动条滑动而滑动的DIV层

    在一个页面放2个悬浮框,悬浮框随页面的上下滚动有上下波动的效果,最终固定在同一位置 体验效果:http://hovertree.com/texiao/jsstudy/1/ 代码如下: <!DOC ...

  5. 异步编程系列06章 以Task为基础的异步模式(TAP)

    p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...

  6. wpf模仿QQ表情

    效果图: style: <Style x:Key="LBXITEM_VERTICAL" TargetType="ListBoxItem"> < ...

  7. php设置手机访问浏览器版apache配置

    我们开发项目的时候经常会开发到浏览器版本的网页,这样我们就经常需要用手机连接局域网以方便测试,那么怎么配置服务器文件呢. 1.首先关闭电脑的windows防火墙   右击我的网络/windows防火墙 ...

  8. Lind.DDD.IoC依赖注入与面向方面的实现

    回到目录 IoC是解耦的灵魂,很难想像一个框架中没有IoC会变成什么样子,Lind.DDD里的IoC是通过Unity实现的,由依赖注入(unity)和方法拦截组成(Interception),依赖注入 ...

  9. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  10. OS.js – 开源的 Web OS 系统,赶快来体验

    OS.js 是一个开源的 Web OS 系统,可以在浏览器中运行,提供了窗口管理器,应用程序API,用户界面开发套件和抽象的文件系统等.可以部署在 Node 或者 PHP 环境中运行.OS.js is ...