多选下拉树实现多值查询

编辑
  • 文档创建者:zsh331
  • 浏览次数:3885次
  • 编辑次数:5次
  • 最近更新:Kevin-s 于 2019-06-03
  • 1. 描述

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

    如图:



    2. 思路

    我们可以通过帆软内置的 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。

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

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


    3. 示例

    3.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}' 

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


    3.2 模板设置

    将字段拖入对应的单元格中,模板设置如下:



    3.3 参数界面

    将参数“地区”添加到参数界面,控件选择下拉树控件,数据字典设置如下:

    属性设置中勾选多选,如下所示:


    4. 效果预览

    4.1 PC 端预览效果

    保存模板并预览,效果如下图所示:

    4.2 移动端预览效果

    1)App 预览


    2)H5 预览

    5. 已完成模板

    模板效果在线查看请点击:多选下拉树实现多值查询.cpt

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

    点击下载模板



    附件列表


    主题: 参数应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

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

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