反馈已提交

网络繁忙

多选下拉树实现多值查询

  • 文档创建者:zsh331
  • 编辑次数:10次
  • 最近更新:Catqiu 于 2021-09-16
  • 1. 概述

    1.1 版本

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

    1.2 应用场景

    下拉树中分别有 地区,省份,城市 指标,如果想实现同时选择查询出多个城市的数据,如何实现呢?如下图所示:

    1.3 实现思路

    我们可以通过帆软内置的 REPLACE() 和 SUBSTITUTE() 函数来实现。

    1)REPLACE()

    REPLACE(text, texttoreplace, replacetext):根据指定字符串,用其他文本来代替原始文本中的内容。

    • text:需要被替换部分字符的文本或单元格引用。

    • texttoreplace:指定的字符串或正则表达式。

    • replacetext:需要替换部分旧文本的文本。 

    2)SUBSTITUTE()

    SUBSTITUTE(text,old_text,new_text,instance_num):用 new_text 替换文本串中的 old_text。

    • Text:需要被替换字符的文本,或含有文本的单元格引用。 

    • Old_text:需要被替换的部分文本。 

    • New_text:用于替换 old_text 的文本。 

    • Instance_num:指定用 new_text 来替换第几次出现的 old_text。

    注1:如果指定了 instance_num,则只有指定位置上的 old_text被替换,否则文字串中出现的所有 old_text 都被 new_text 替换。 

    注2:如果需要替换文本串中的指定文本,则使用 SUBSTITUTE 函数;如果需要替换文本串中指定位置上的任意文本,则使用 REPLACE 函数。

    2. 示例

    2.1 模板设计

    2.1.1 数据准备

    新建报表,添加数据集,数据查询语句如下:

    • ds1:select * FROM S订单 as 订单 where 货主地区 is not null ${if(len(地区)=0,"","and 货主城市 in ('"+SUBSTITUTE(地区,",","','")+"')")} 

    • ds2:select distinct 货主地区 FROM S订单 订单 where 货主地区 is not null

    • ds3:select distinct 货主省份 FROM S订单 where 货主地区 = '${layer1}'  and 货主省份 is not null

    • ds4:select distinct 货主城市 FROM S订单 where 货主省份 = '${layer2}' 

    注1:ds1 中的条件属性也可修改为: ${if(len(地区)=0,"","and 货主城市 in ('"+SUBSTITUTE(地区,",","','")+"')")}  

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

    1600780190979316.png

    2.1.2 模板设计

    新建普通报表,将字段拖入对应的单元格中,如下图所示:


    2.1.3 参数界面

    打开参数界面,添加标签控件、下拉树控件,下拉树控件命名为地区,勾选多选属性,设置数据字典,构建方式选择普通分层构建

    1)层次1:选择数据查询 ds2,设置实际值、显示值为货主地区,如下图所示:

    1600780774626342.png

    2)层次2:选择数据查询 ds3,设置实际值、显示值为货主省份,如下图所示:

    1600780962333781.png

    3)层次3:选择数据查询 ds4,设置实际值、显示值为货主城市,如下图所示:

    1600781030299951.png

    2.2 效果预览

    1)PC 端

    保存模板,点击分页预览,效果如下图所示:

    2)移动端

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


    3. 模板下载

    已完成的模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\多选下拉树实现多值查询.cpt

    点击下载模板:多选下拉树实现多值查询.cpt

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    在线QQ(将在2023.01.05关停):800049425

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭

    7*24h

    智 能客 服