-
辰哥 管理员
发表于2018-6-22 13:56
楼主
过滤条件和数据期条件设置位置这么多,到底谁起作用呢?辰哥今天就来揭晓答案~
说到数据期条件和过滤条件,大家都不陌生。共同点就是对报表数据起筛选作用。
那两者之间有什么区别呢?
1、从名字区分,数据期条件主要用来设置数据的数据期条件的,而过滤条件呢,主要用来设置其它的条件的。
2、从继承和重载这两个属性的关系上看也不相同。因为设置2者条件的位置有多处,比如报表属性,维表元,指标表元,但对数据的筛选作用却有所不同。
本期文章的重点就在于如何区分这几处位置的筛选作用。
过滤条件设置共有3个位置,不同的位置所表现的作用范围不同。
1. 报表过滤条件:
对整张报表模板都有效,如果报表模板有多个分析区,那么这个过滤条件作用于所有的分析区。
2. 维表元过滤条件:
维表元包括浮动维和固定维表元。此处我们以浮动表元为例。
选中维表元,在表元属性中设置可以设置条件,过滤条件的作用范围限于该浮动表元的分析区。
3. 指标表元过滤条件:
如果对某一表元的属性“指标”打钩,此时就可以对该指标设置过滤条件,过滤条件的作用范围仅限于指标本身。
注意:
上面这三个写过滤条件的地方,作用范围是由大到小的。
所以在写过滤条件的时候,有必要分析过滤的目标和范围,以免结果数据出错。
另,三处过滤条件的逻辑关系也是重点:
指标表元&维表元&报表
举个简单的例子:
某张报表模板设计了如下的过滤条件:
报表条件:条件1;维表元:条件2;指标表元:条件3;
那么最终指标表元的筛选结果为:条件1&条件2&条件3,即报表sql生成后为where条件为 and关系。
where 条件1 and 条件2 and 条件3
常规数据期条件设置
数据期条件也有3个设置位置,请注意查看“过滤条件”所在位置,数据期位置就在过滤条件位置附近。
数据期条件的逻辑作用关系与过滤条件不同,具备优先级。
指标表元>维表元>报表
举个简单的例子:
某张报表模板设计了如下的数据期条件:
报表条件:条件1;维表元:条件2;指标表元:条件3
那么最终指标表元的数据期条件为:条件3
数据期设置方法BI4.x版本数据期的设置方法有了更多的方法,界面如下:
1)全部:所有数据;
2)前XX期至今:从某个日期开始到系统日期;比如现在是2017年6月,从某个日期至2017年6月XX日;
3)常用:本期,上期,本季,本年,将常用的数据期过滤条件已设置好;
4)起XX 止XX:从某个日期起,至某个日期;
5)选择:下拉选择数据库里所有的日期;可单选,也可多选;
6)模板:可从自定义模板中,选取定义好的数据期模板;
7)自定义:可输入公式,根据报表参数动态过滤数据期。
举一个简单的例子:
【参数】报表期参数:@bbq,主题表数据期字段:xxb.bbq
【需求】从每年1月起止当月
【公式】xxb.bbq>=od(@bbq,'m=1') and xxb.bbq<=@bbq