关联过滤
所谓关联过滤是指两个或多个下拉框之间的关联关系,前一个下拉框选择的内容决定了后一个下拉框的下拉选择项。
比如:地区和城市两个下拉框,当地区下拉框选择了某一个地区后,城市下拉框自动的进行关联过滤,列出属于该地区的所有城市,过滤掉属于其他地区的城市。
举例:地区下拉框和城市下拉框的关联过滤。这里假设地区下拉框所在的单元格为A2,城市下拉框所在的单元格为B2。首先点击引用数据集,选择“demo_订单数据”数据集。 准备好数据集后,给A2单元格设置“下拉数据集”编辑风格,并设置显示列和数据列如下图所示。
给B2单元格设置“下拉数据集”编辑风格,并设置显示列和数据列。
然后切换到web特性tab页,设置关联过滤表达式和关联过滤单元格,实现A2与B2的联动。
关联过滤表达式:货主地区=${A2}.toString(),表示该下拉菜单中列举的货主城市对应的货主地区必须与A2单元格选择的地区名称一致。而地区名称是通过A2单元格设置的,所以将A2单元格设置为关联过滤单元格。
按照上述方法设置的关联过滤,在A2单元格内不能进行多选。如果要在关联的第一级进行多选的话,必须将B2中的关联过滤表达式写为:(','+A2.toString()+',').indexOf(','+货主地区+',') >= 0,这样在B2下拉菜单中就会列举A2中所选的多个地区对应的所有城市名称。
注意:
- 如果单元格名在报表计算后会发生变化,那么应该写成类似 ${A1} 的格式。过滤表达式中如果单元格与字符串列比较,应写成A1.toString(),与数值列比较则写成A1。
- 关联过滤第一级要进行多选的话,在关联的单元格内设置关联过滤表达式的格式为:(','+A1.toString()+',').indexOf(','+colName+',') >= 0。其中A1为关联过滤单元格的名称,colName为关联过滤单元格的数据列名称。