反馈已提交

网络繁忙

超链时一个参数传递多个值

  • 文档创建者:Leo.Tsai
  • 历史版本:8
  • 最近更新:Suki陈 于 2023-02-07
  • 1. 概述

    1.1 应用场景

    超链传参时,如果一个参数有多个英文逗号隔开的值,怎么实现点击之后子表可以将这些值相关的数据一起显示出来呢?效果如下图所示:

    1630568855205732.gif

    1.2 实现思路

    主表正常设置超链传参,子表如果是数据集参数, SQL 语句要使用 in 来查询传入的多个值,子表如果是模板参数,要用 split() 公式设置过滤条件。

    本文示例的子表是数据集参数,模板参数的设置会在本文 2.1 节简单提及。

    2. 示例

    本文示例:主表超链传入的参数为10001,10002,点击超链后,子表显示订单号为10001订单号为10002的数据。

    2.1 设计子表

    1)打开示例模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\订单明细表.cpt

    或者点击此处直接下载示例模板:订单明细表.cpt

    2)修改 SQL 语句,利用 in 来查询传入的多个值,得出相应的数据。

    注:建议使用方案二的 SQL 语句,统一为需要查询的的参数加上引号,防止因数据类型不匹配而导致查询失败。

    方案一:当传入参数类型为整型时,在 in 列表中的值可不加引号,直接查询。

    SELECT * FROM 订单明细 WHERE 订单ID in (${订单号})

    方案二:当传入参数类型为字符串或日期时,在 in 列表中的值需要加上引号。
    SELECT * FROM 订单明细 
    WHERE 1=1
    ${if(len(订单号) == 0,"","and  订单ID in ('" + SUBSTITUTE(订单号,",","','") + "')")}

    公式说明如下:

    • ('" + SUBSTITUTE(订单号,",","','") + "')" 将传入参数中的英文逗号替换为','字,即为传入参数中的每个值单独加上引号。示例传入的参数值为10001,10002,最终替换为('10001','10002')

    • ${if(len(订单号) == 0,"","and  订单ID in ('" + SUBSTITUTE(订单号,",","','") + "')")} 表示定义一个数据集参数 订单号
      点击超链,当传入参数 订单号 不为空时,拼接上 and条件,即and  订单ID in ('" + SUBSTITUTE(订单号,",","','") + "')" ,使用传入的订单号进行查询。

    3)将该模板保存到 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\ 路径下,重命名为:参数传递多值子表.cpt

    注:这个示例的子表用的是数据集参数,如上设置即可,但是如果您用的是模板参数,需要按照下图设置过滤条件:

    这个过滤条件的操作符必须是「包含于」,公式为:=split($订单号,",")

    2.2 设计主表

    1)新建普通报表,新建内置数据集 ds1 ,其中订单ID字段里有 2 个英文逗号隔开的值,如下图所示:

    Snag_680b784c.png

    2)如下图设计表格,将数据集字段拖到对应单元格中。

    Snag_680e7d5e.png

    3)选中 A2 单元格,设置网络报表类型的超链,链接到上面的子表,设置参数订单号,其值为公式=$$$,如下图所示:

    1630570222113415.png

    2.3 效果预览

    2.3.1 PC 端

    保存主表,分页预览后超链效果如 1.1 节应用场景中所示。

    2.3.2 移动端

    App 与 HTML5 端效果相同,如下图所示:

    3. 模板下载

    完成模板参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\参数传递多值主表.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\参数传递多值子表.cpt

    点击下载模板:

    参数传递多值主表.cpt

    参数传递多值子表.cpt

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

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

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

    不再提示

    10s后关闭

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