下面我们通过web表格控件FineReport来介绍几个在行式报表下的典型应用示例。
工具/原料
web表格控件FineReport7.1.1
大小:148.2M 适用平台:windows/linux
添加预警,间隔背景色-条件
1、问题描述在满足一定条件下改变单元格的格式或者显示成不同的值。如运货费大于100元就红色预警,单元格背景色间隔显示等。
2、打开报表打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_2.cpt
3、间隔背景色右击订单ID数据列单元格,选择条件属性,添加一个条件属性,选择改变的属性为背景。当满足条件row()%2==0时,给这一行加上背景色。row()为获取当前行号,被2整除即偶数行有背景,奇数行没有背景。
4、红色预警右击运货费数据列单元格,选择条竭惮蚕斗件属性,添加一个条件属性,选择要改变的属性为前景色。当满足条件curre荏鱿胫协ntValue>100,当前运货费大于100的单元格前景色修改为红色。条件属性的作用是对满足条件的数据进行高亮显示如加上背景色等,从而突出显示异常数据,其中新值属性会改变单元格实际值
筛选数据-过滤
1、问题描述我们想从大量的数据当中,获取到符合条件的数据,例如网格式报表中,我们只想获得已付订单的记录:
2、解决方案方案一:直接通过SQL语句取出满足条件的的数据,如修改数据集SQL语句为:SELECT * FROM 订单 where 是否已付 = 'TRUE',查看详细SQL语法。方案二:通过数据列过滤来解决,本节详细介绍该方案的用法。
3、实现步骤打开报表打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_3.cpt
4、设置过滤选中订单ID数据列单元坼黉赞楞格,点击过滤按钮或者双击单元格,选择过滤标签,进入过滤设置对话框,设置过滤条件是否已付等于'true',如下图:注:由于单元格的计算顺序,过桦颁虍与滤条件需要设置在单元格的父格上,如这里的订单ID,先取出已付的订单号,而其子格会自动继承父格条件,将父格子作为过滤条件
排序
1、问题描述我们需要将一些数据进行排序,这样显示出来比较有层次。例如,我们订单按运货费降序排列,效果如下所示:
2、解决方案方案一:直接通过SQL语句进行排序,如修改数据集SQL语句为:SELECT * FROM 订单 order by 运货费 desc。方案二:通过设置数据列的高级属性来实现排序效果,本节详细介绍该方案的用法。
3、实现步骤打开报表打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_4.cpt
4、排序设置选中订单ID数据列单元格,点击高级按钮或者双击单元格,选择高级标签,出现高级设置对话框,在排列顺序中选择降序,公式为运货费。如下图所示注:由于单元格的计算顺序,高级排序需要设置在单元格的父格上,如这里的订单ID,在取订单ID时就根据运货费字段的值进行降序排列。
结果集筛选
1、问题描述我们只想显示其中的N条数据。例如,我们只想显示运货费最多的前10条订单记录或者最少的10条订单记录,效果如下:
2、解决方案通过设置数据列的高级属性中的结果集筛选来让其只显示N个数据。
3、实现步骤打开报表取某一范围的数据往往与排序结合使用,如取运货费字斤谯噌最大的10条数据,则先使订单记录按照运货费降序排列,然后取前10条便可。打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_5.cpt
4、设置前N个选中订单ID数据列单侍厚治越元格,点击高级按钮或者双击单元格,选择高级标签,出现高级设置对话框,在结果集筛选中选择前N个,N设为10,即显示前10条数据,如下图所示注:由于单元格的计算顺序,结果集筛选需要设置在单元格的父格上,如这里的订单ID,直接取得前10条订单ID。