<< Click to Display Table of Contents >> 使用过滤条件过滤数据 |
用户可使用过滤器来实现对数据的筛选。在展示数据的组件上均可实现对数据的过滤,需要先绑定数据才能设置过滤器,设置的过滤器可以复制到同源的组件上。
❖过滤器的实现步骤
1)选中组件,在右侧面板的设置页面点击过滤器,打开过滤器对话框,点击增加过滤条件的提示添加过滤条件。
2)设定过滤条件。
3)添加完一个过滤条件后,可以对该过滤条件进行操作,有移除、在下方插入过滤条件、在上方插入过滤条件、清空过滤条件,如下图所示。
【删除】点击删除可移除当前的过滤条件。
【在下方插入过滤条件】可以在当前过滤条件的下方增加过滤条件。
【在上方插入过滤条件】可在当前过滤条件的上方插入一个过滤条件。
4)两个过滤条件之间的关系包括与、或的关系。在关系行右键,在右键菜单中有删除、转化为或 / 转化为与、交换子条件。
【删除】删除该行的上下两个过滤条件。即删除拥有此过滤关系的过滤条件。
【转化为或 / 转化为与】两个同级别的筛选条件间关系的互换。
【节点向前缩进】节点向前一级缩进,当前节点的第一个子条件可以和当前节点上方的且与其同级的过滤条件进行组合。
【节点向后缩进】节点向前一级缩进,当前节点的第一个子条件可以和第二个子条件下的第一个子条件进行组合。
【交换子条件】交换同级别的筛选条件的位置。如下图所示,两个框中的条件是同级别的,其中下边红色边框是上边蓝色边框的子条件。
在交换子条件后,上图的筛选条件变为下图所示的情形。
❖过滤条件的设定
依据已绑定查询的数据段来进行过滤条件的设置,其中数据段包含该 query 中的所有数据段除了在仪表盘中创建的聚合表达式。
不同数据类型的数据段包含的筛选条件不同,见下表:
数据类型 |
支持的语句 |
---|---|
布尔 |
"空", "=" |
日期, 时间, 时间戳 |
"空","=", ">",">=", "<", "<=", "之间", "其中一个" |
长整型 |
"在圆形内","在矩形内","=", ">",">=", "<", "<=", "包含", "起始","之间","包含其中一个","其中一个","空" |
其他 |
"=", ">",">=", "<", "<=", "包含", "起始","之间","包含其中一个","其中一个","空" |
其中日期,时间,时间戳类型的数据会显示日历按钮。
“ 之间 ” 会弹出两个输入框,用于输入初始值和终止值。
“ 其中一个 ”、 “ 包含其中一个 ” 可添加多个值,通过 “ 添加 ” 和 “ 删除 ” 按钮对所添加的值进行编辑。
“ 在圆形内 ” 需要添加 3 个参数值并且必须按照顺序依次添加,需要添加的参数值为:经度值、纬度值、半径(米)。
“ 在矩形内 ” 需要添加 4 个参数值并且必须按照顺序依次添加,需要添加的参数值为:经度值、纬度值、宽(米)、高(米)。
只有长整型数据(比如:表示经度和纬度的位置列 pos)才有 “ 在圆形内 ” 和 “ 在矩形内 ” 的过滤条件。
过滤条件的值还支持一些系统参数, GUI 上只显示出 _USER_, _GROUP_, _ROLE_, _ROLES_,_BLANK_。其它的为高级参数,就不再 GUI 上显示了 , 使用时请参考内置参数列表。
➢例如:当被筛选的组件中含有空值,并且是空字符串而不是 null 时,过滤条件应当是 xxx 等于?{_BLANK_}。
更多系统参数见下表。
内置参数列表
参数名称 |
说明 |
---|---|
_USER_ |
返回当前的用户名称 |
_GROUP_ |
返回当前用户所在的组名 |
_ROLE_ |
返回当前用户所承担的角色 |
_ROLES_ |
返回当前用户所承担的角色(多个角色) |
_BLANK_ |
返回数据中的空值 |
_LAST_YEAR_ |
返回当前时间的上一年年份,值为整数,如今年是2013年,则返回值为2012 |
_THIS_YEAR_ |
返回今年的年份,值为整数 |
_NEXT_YEAR_ |
返回下一年的年份,值为整数 |
_LAST_QUARTER_ |
返回当前季度的上一季度值,值为整数 |
_THIS_QUARTER_ |
返回当前季度值,值为整数 |
_NEXT_QUARTER_ |
返回当前季度的下一季度值,值为整数 |
_LAST_MONTH_ |
返回当前月份的上一月份值,值为整数 |
_THIS_MONTH_ |
返回当前月份值,值为整数 |
_NEXT_MONTH_ |
返回当前月份的下一月份值,值为整数 |
_LAST_WEEK_ |
返回在一年中当前周的上一周值,值为整数,如今天是2013-01-18,是2013年中的第3周,则返回值为2 |
_THIS_WEEK_ |
返回当前日期是今年的第几周,值为整数,如今天是2013-01-18,是2013年中的第3周,则返回值为3 |
_NEXT_WEEK_ |
返回在一年中当前周的下一周值,值为整数,如今天是2013-01-18,是2013年中的第3周,则返回值为4 |
_LAST_DAY_ |
返回当前日期的前一天是几号,值为整数,如今天是2013-01-18,则返回值为17 |
_THIS_DAY_ |
返回当前日期是几号,值为整数,如今天是2013-01-18,则返回值为18 |
_NEXT_DAY_ |
返回当前日期的下一天是几号,值为整数,如今天是2013-01-18,则返回值为19 |
_LAST_YEAR_QUARTER_ |
返回当前季度的上一季度的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-01-01 00:00:00 |
_THIS_YEAR_QUARTER_ |
返回当前季度第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-01 00:00:00 |
_NEXT_YEAR_QUARTER_ |
返回当前季度的下一季度的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-07-01 00:00:00 |
_LAST_YEAR_MONTH_ |
返回当前月份的上一月份的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-03-01 00:00:00 |
_THIS_YEAR_MONTH_ |
返回当前月份的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-01 00:00:00 |
_NEXT_YEAR_MONTH_ |
返回当前月份的下一月份的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-05-01 00:00:00 |
_LAST_YEAR_WEEK_ |
返回当前周的上一周的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-07 00:00:00。注意星期是根据java提供的规范进行计算的, 把周日当做一周的起点 |
_THIS_YEAR_WEEK_ |
返回当前周的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-14 00:00:00 |
_NEXT_YEAR_WEEK_ |
返回当前周的下一周的第一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-21 00:00:00 |
_LAST_FULL_DAY_ |
返回当前日期的前一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-17 00:00:00 |
_THIS_FULL_DAY_ |
返回当前日期,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-18 00:00:00 |
_NEXT_FULL_DAY_ |
返回当前日期的后一天,返回值为时间戳类型,如今天是2013-04-18,则返回值为2013-04-19 00:00:00 |
_LAST_WEEKDAY_ |
返回当前日期的前一天是周几,返回值为整数,如今天是2013-04-18,则返回值为4。注意星期是根据java提供的规范进行计算的,把周日当做一周的起点 |
_THIS_WEEKDAY_ |
返回当前日期的是周几,返回值为整数,如今天是2013-04-18,则返回值为5 |
_NEXT_WEEKDAY_ |
返回当前日期的后一天是周几,返回值为整数,如今天是2013-04-18,则返回值为6 |
❖复制过滤器
在组件上右键选择过滤 - 复制过滤器,可以将组件上的过滤器复制到与其绑定相同数据源的其他组件上。
➢例如
在表格 1 上设置过滤条件:MARKET_SIZE 是 等于 [Major Market] 后,再在表格 1 上右键选择过滤 - 复制过滤器,在表格 2 上右键选择过滤 - 粘贴过滤器,则过滤器被复制到了表格 2 上了。
如果表格 2 上已有过滤器,则会提示:新的过滤条件将会代替原有过滤条件,是否继续?点击是,表格 2 的原有条件被替换了;点击否,则表格 2 的原有条件保留。
➢注意事项
1.在移除已经设置过滤器的组件后,相应的过滤器也会被删除,但清除所有绑定的数据后,过滤器不会消失,仍然工作。
2.倘若过滤条件中需要设定参数,参数的书写格式为 ?{param}, 问号必须是英文状态下输入的。