1. 概述
1.1 问题描述
已有的补足空白行功能,只能将数据补足到指定行数的最小整数倍数。如果想要满足一定条件下才补足,如何实现呢?
如下示例:当数据行数小于 7 时,补足到 7 行;当数据大于等于 7 行时,显示扩展行数。
1.2 解决思路
方法一:使用补充空白数据功能,当数据大于 7 行时,设置条件属性隐藏行高。
方法二:小于 7 行时,使用公式扩展至 7 行,大于 7 行时不扩展。
2. 示例
2.1 准备数据
新建普通报表,新建数据查询 ds1,SQL 语句如下:
SELECT * FROM 销量 ${if(len(数量)=0,"","limit "+数量)}
注:此处参数为数量,配合 limit 使用,限制数据查询的行数。
2.2 表格设计
设计表格,将对应字段拖入到单元格中,设置地区所在 A2 单元格的数据设置为「列表」,如下图所示:
2.3 添加控件
将参数数量添加进参数面板,设置「数量」的控件为「数字控件」,控件值为 3 ,如下图所示:
2.4 方法一:补充空白数据
1)选中 A2 单元格,右边属性面板点击「单元格元素>高级」,勾选「补充空白数据」,设置数据倍数为 7,如下图所示:
2)选中 A2 单元格,右边属性面板点击「条件属性」,添加一个「行高」条件属性,设置公式条件为&A2>7&&LEN(A2)=0时,行高为 0,如下图所示:
注:公式的含义是隐藏所有 7 行以上补充的空白数据。
2.5 方法二:使用公式补足行数
1)在表格前面插入一列空白列, A3 单元格设置为纵向扩展,且插入公式:if(count(B2) < 7, RANGE(1, 7 - COUNT(B2)), 0)
2)选中 A3 单元格,添加一个「行高」条件属性,设置普通条件:如果当前值等于整型 0,行高等于 0,即隐藏该行,如下图所示:
3)隐藏 A 列。
2.6 效果预览
2.6.1 PC 端
保存模板,点击「分页预览」,效果如 1.1 节中所示。
2.6.2 移动端
App 端和 HTML5 端均支持,效果如下图所示:
3. 模板下载
已完成模板可参见:
%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Pagination\条件补足空白行-方法一.cpt
%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Pagination\条件补足空白行-方法二.cpt
点击下载模板: