下拉树控件普通分层构建示例

  • 文档创建者:印然
  • 编辑次数:10次
  • 最近更新:Wendy123456 于 2020-09-16
  • 1. 概述

    1.1 应用场景

    下拉框参数具有多层树状结构的数据,效果如下图所示:

    效果展示.png

    1.2 实现思路

    通过分层构建下拉树控件在下拉树数据定义界面选择对应的数据集。其实就是 FR 中的动态 SQL,在这里需要将每个 SQL 定义为一个报表数据集。

    2. 示例

    2.1 准备数据

    数据集 ds1,查询出所有地区,SQL 语句为:SELECT 货主地区 FROM 订单 where 货主地区!=""

    DS1.png

    数据集 ds2,根据第一层 layer1 的值查询出省份,SQL 语句为:SELECT  货主省份 FROM 订单 where 货主省份!="" and 货主地区='${layer1}'

    DS2.png

    数据集 ds3,根据前两层 layer1、layer2 的值查询出城市,SQL 语句为:SELECT  货主城市 FROM 订单 where 货主城市!="" and 货主地区 = '${layer1}'and 货主省份='${layer2}'

    DS3.png

    注:这里是通过 layer1、layer2 来引用,以此类推。其中 layer1,layer2 等均是预定义好的,不可更改。

    2.2 设计报表

    1)参数面板拖入下拉数选框

    参数面板.png

    2)选择属性表>高级>数据字典,构建方式选择普通分层构建,选择每层对应的数据集,下拉树便完成了。操作方式如下图:

    1)第一层

    222

    2)第二层

    222

    3)第三层

    222

    下拉数三种构建方式说明:

    1)极速分层构建:https://help.finereport.com/doc-view-1990.html

    2)自动构建

    自动构建树能够根据数据自动构建出下拉树,无需一层一层定义数据,但是其必须使用树数据集来构建。

    3)普通分层构建

    不是所有的数据都能自动构建出下拉树,因此需要分层构建。

    • 层次 1:通过 数据字典 来定义下拉框的实际值与显示值。

    • 层次 2:根据层次1的数据进行过滤,需要定义成数据集,然后通过数据查询返回数据集定义的列。数据集定义成:SELECT 字段 FROM 表名 WHERE 层次1的字段 = '${layer1}'

    注:layer1 表示取层次 1 节点的值,若在层次 3 中调用,则是 SELECT 字段 FROM 表名 WHERE 层次2的字段 = '${layer2}'依次类推。

    2.3 效果查看

    1)PC端

    点击分页预览,效果如下图所示:

    效果展示.png

    2)移动端

    移动端.png

    3.模板下载

    已完成模板,可参考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\下拉树控件普通分层构建.cpt

    点击下载模板:下拉树控件普通分层构建.cpt

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!