历史版本3 :多选下拉树实现多值查询 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

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

如图:

222

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 模板设置

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

222

3.3 参数界面

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

222

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

222

4. 效果预览编辑

4.1 PC端预览效果
保存模板并预览,效果如下图所示:
222
4.2 移动端预览效果
1)APP预览
222
2)h5预览
222

5. 已完成模板编辑

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