每页序号重新开始

编辑
  • 文档创建者:axing
  • 浏览次数:2684次
  • 编辑次数:8次
  • 最近更新:Kevin-s 于 2019-06-02
  • 1. 问题描述

    直接使用=seq( )的方法,分页预览会使序号承接上一页的序号继续递增。如下,第一页显示了 55 行,第二页序号直接从 56 开始了。如下图所示:

    对报表进行分页预览时,如何让每一页的序号计数重新从 1 开始计算呢?效果如下图所示:



    2. 解决思路

    原有序号虽然是递增的,但是保证了每一行都是唯一性的。在原有序号的基础,判断当前序号在本页内的位置,即可重新得到从 1 开始的序号。

    3. 解决步骤

    1)创建数据集

    SELECT * FROM 订单明细

    2)设计报表:

    将字段拖到对应的单元格,A2 公式为:=seq(), A2 左父格设置为 B2,设置第一行重复标题行。

    3)在序号后面再插入一列序号,公式为 =if(COUNT({A2})=1,1,inarray(A2,{A2})), B2 左父格设置为 C2。

        公式解析:{A2} 可以获取当前页中 A2 单元格扩展出来的所有值,当扩展出来的值只有一个的时候,结果为 1,否则结果为当前 A2 单元格的值在 {A2} 数组中的位置

         当一页只有一行时,{A2} 获取到的是一个值,不会当成数组来处理,而 inarray 第二个参数必须是数组,所以需要判断

    4)将 C2 的左父格设置为无,然后隐藏 A 列,保存模板。

    4. 预览效果

    4.1 PC 端预览效果

    保存模板,选择分页预览,实现效果如描述中所示。

    4.2 移动端预览效果

    1)App 效果

    2)HTML5 效果


    5. 已完成模板

    已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\每页序号重新开始.cpt

    点击下载模板

    附件列表


    主题: 报表设计
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]