反馈已提交

网络繁忙

控件选项联动

  • 文档创建者:RosieY
  • 历史版本:4
  • 最近更新:Fairy.Zhang 于 2024-09-14
  • 1. 概述

    1.1 版本

    报表服务器版本
    功能变动
    11.0-

    1.2 应用场景

    当参数面板中有多个控件时,希望后一个控件的选项根据前一个控件选择的值变化,尤其使用在控件选项之间有层级关系的场景中。

    例如,省份选项需跟随地区所选值而变动,城市选项需跟随省份所选值而变动。如下图所示:

    动图1.gif

    1.3 实现思路

    此场景主要针对的是有选项的控件,如下拉框、下拉复选框、单选按钮、复选按钮等。

    此类控件的选项是通过绑定 数据字典 实现的,所以希望实现选项联动,需要设置一个动态的数据字典。

    数据字典的类型有 4 种:数据库表、数据查询、自定义、公式。如下图所示:

    其中,数据库表和自定义都是固定的,没有办法设置动态,所以要设置一个动态数据字典,只能通过数据查询或者公式实现。

    现介绍三种设置动态数据字典实现控件选项看联动的方法,第一种是数据查询类型的数据字典实现,第二种和第三种都是公式类型的数据字典实现。

    • 方法一:设置数据查询类型的数据字典,数据字典绑定一个动态的数据查询。

    • 方法二:设置 SQL 函数公式类型的数据字典,数据字典绑定一个 SQL 函数构成的动态公式。

    • 方法三:设置数据集函数公式类型的数据字典,数据字典绑定一个数据集函数构成的动态公式。

    2. 准备模板

    2.1 新建报表 

    新建一张普通报表,如下图所示:

    新建普通报表.png

    2.2 准备数据

    实现 控件筛选查询,有两种方式,可以选择通过数据集参数的方法实现,也可以选择通过模板参数的方法实现。

    此处因为之后的数据字典绑定时也会定义数据集参数,所以选择数据集参数的方法实现控件筛选查询。

    1)新建数据库查询 ds1 :SELECT * FROM 订单 where 货主地区='${area}' and 货主省份='${province}' and 货主城市='${city}'

    其中定义了三个数据集参数: areaprovincecity。如下图所示:

    准备数据1.jpg

    2.3 设计报表

    1)A1-I1 单元格输入文本。

    2)A2-I2 单元格拖入 ds1 数据集中的数据列,设计报表样式。如下图所示:

    设计报表样式1.jpg

    2.4 参数绑定控件

    定义好参数后,要实现参数查询就必须绑定控件。

    1)点击参数面板的编辑按钮,右侧可以看到定义好的三个参数,点击「全部添加」将其添加在参数面板中,并调整三个参数的位置使其按照areaprocvincecity 的顺序排列。如下图所示:

    编辑参数面板全部添加.jpg

    2)三个参数分别绑定下拉框控件。以参数 area 为例,点击控件的工具按钮,选择控件类型为「下拉框」。如下图所示:

    选择下拉框.jpg

    2.5 修改标签

    分别点击右侧的「Labelarea」 、「Labelprovince、「Labelcity ,修改控件值为:地区:、省份:、城市:。如下图所示:

    修改标签.jpg

    3. 方法一:数据查询类型的数据字典

    模板准备好后,可使用方法一设置数据查询类型的数据字典,使控件的选项可以联动。

    3.1 地区

    1)新建一个数据库查询「1地区」 :SELECT * FROM 订单 。如下图所示:

    地区数据库查询.jpg

    2)设置area控件的数据字典,类型设置为「数据查询」,数据集为「1地区」,实际值和显示值都为「货主地区」。如下图所示:

    地区数据字典.jpg

    3.2 省份

    1)新建一个数据库查询「省份」 :SELECT * FROM 订单 WHERE 货主地区='${area}',即province控件的选项必须是 area 下的省份,如下图所示:

    省份数据字典.jpg

    2)设置province控件的数据字典,类型设置为「数据查询」,数据集为「2省份」,实际值和显示值都为「货主省份」。如下图所示:

    省份数据字典.jpg

    3.3 城市

    1)新建一个数据库查询「3城市」 :SELECT * FROM 订单 WHERE 货主地区='${area}' and 货主省份='${province}',即city控件的选项必须是 area 下 province 下的城市,如下图所示:

    城市数据字典.jpg

    2)设置city控件的数据字典,类型设置为「数据查询」,数据集为「3城市」,实际值和显示值都为「货主城市」。如下图所示:

    城市数据字典.jpg


    4. 方法二:SQL函数公式类型的数据字典

    模板准备好后,可使用方法二设置 SQL 函数公式类型的数据字典,通过 SQL函数 直接取数据库数据,使控件的选项可以联动。

    注:不能通过数据查询实现时可以选择公式实现,尤其绑定的数据来源于内置数据集或者文件数据集时。

    4.1 地区

    设置area控件的数据字典,类型设置为「公式」,实际值为:sql("FRDemo","select distinct 货主地区 from 订单",1),显示值为:$$$。如下图所示:

    地区SQL函数公式.jpg

    4.2 省份

    设置province控件的数据字典,类型设置为「公式」,实际值为:sql("FRDemo","select distinct 货主省份 from 订单 where 货主地区 = '${area}' ",1),显示值为:$$$,即province控件的选项必须是 area 下的省份。如下图所示:

    省份SQL函数公式.jpg

    4.3 城市

    设置area控件的数据字典,类型设置为「公式」,实际值为:sql("FRDemo","select distinct 货主城市 from 订单 where 货主地区 = '${area}' and 货主省份 = '${province}'",1),显示值为:$$$,即city控件的选项必须是 area 下 province 下的城市。如下图所示:

    城市SQL函数公式.jpg

    5. 方法三:数据集函数公式类型的数据字典

    模板准备好后,可使用方法三设置数据集函数公式类型的数据字典,通过 数据集函数 取数据集中的数据,使控件的选项可以联动。

    注:不能通过数据查询实现时可以选择公式实现,尤其绑定的数据来源于内置数据集或者文件数据集时。

    5.1 新建数据查询

    新建一个数据库查询 ds2 :SELECT * FROM 订单。如下图所示:

    ds2.jpg

    5.2 地区

    设置area控件的数据字典,类型设置为「公式」,实际值为:ds2.select(货主地区),显示值为:$$$。如下图所示:

    地区数据集函数公式.jpg

    5.3 省份

    设置province控件的数据字典,类型设置为「公式」,实际值为:ds2.select(货主省份,货主地区=$area),显示值为:$$$province控件的选项必须是 area 下的省份如下图所示:

    省份数据集函数公式.jpg

    5.4 城市

    设置city控件的数据字典,类型设置为「公式」,实际值为:ds2.select(货主城市,货主地区=$area&&货主省份=$province),显示值为:$$$city控件的选项必须是 area 下 province 下的城市。如下图所示:

    城市数据集函数公式.jpg

    6.  效果预览

    6.1 PC端

    PC端预览,如下图所示:

    动图1.gif

    6.2 移动端

    移动端预览,以 App 为例,如下图所示:

    动图2.gif

    7. 下载模板

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持