维度表达式包含三部分的内容:维度名,已知维度成员,查询结果与已知维度成员的关系(即通过方法表示),或者某个维度成员名。
查询结果可按照维度成员排序的正序和倒序排列;
维度表达式的基本格式为 维度名{方法(已知维度成员,排序方式);某个维度成员名}
排序方式:
0:正序
1:倒序
维度表达式中可以出现多个方法或是维度成员,方法与方法或者维度成员之间用“;”分割;
维度表达式中包含四种类型的基本方法以及在基本方法基础上延伸的聚合方法,聚合方法可以更灵活的查询表达式的维度成员;
维度表达式中的英文不区分大小写。
名词解释:
该节点的所有后代:若当前节点为一级节点(或为二级节点或更低),该节点的所有后代 即当前节点下的所有低于当前节点等级的节点。
该节点的所有子代:若当前节点为一级节点(或为二级节点或更低),该节点的所有子代 即当前节点下的所有次级节点。
该节点的所有末级节点:若当前节点为一级节点(或为二级节点或更低),该节点的所有末级节点 即当前节点下的所有最底层节点。
Descendant:该节点的所有后代
IDescendant:该节点的所有后代(包括节点本身)
Children:该节点的所有子代
IChildren:该节点的所有子代(包括节点本身)
Base:该节点的所有末级节点
IBase:该节点的所有末级节点(包括节点本身)
Parents:该节点的所有父代
IParents:该节点的所有父代(包括节点本身)
Ancestors:该节点的所有祖先
IAncestors:该节点的所有祖先(包括节点本身)
Siblings:该节点的所有同级
ISiblings:该节点的所有同级(包括节点本身)
维度表达式包含四种类型的基本方法。
Descendant(维度成员名,排序方式)
IDescendant(维度成员名,排序方式)(包含节点本身)
示例:
获取 Entity 维度 #root 节点下所有后代节点的维度表达式为:
Entity{Descendant(#root,0)}
Children(维度成员名,排序方式)
IChildren(维度成员名,排序方式)(包含节点本身)
示例:
获取 Entity 维度 #root 节点下所有子代节点的维度表达式为:
Entity{Children(#root,0)}
Base(维度成员名,排序方式),已知维度成员本身为末级节点时返回本身
IBase(维度成员名,排序方式)(包含节点本身)
示例:
获取 Entity 维度 #root 节点下所有末级节点的维度表达式为:
Entity{Base(#root,0)}
Level(维度成员名,排序方式,当前层级开始层级,当前层级结束层级)
ILevel(维度成员名,排序方式,当前层级开始层级,当前层级结束层级)(包含节点本身)
示例:
获取 Entity 维度 TotalEntity 节点向下第一层级到第三层级之间的节点维度表达式:
Entity{Level(TotalEntity,0,1,3)}
获取 Entity 维度 TotalEntity 的所有末级节点,NoEntity,以及和 TotalEntiy 同级的 Company 节点下所有节点的维度表达式:
Entity{Base(TotalEntity,0);NoEntity;Descendant(Company,0)}
维度表达式包含两种类型的聚合方法。
删除方法:去除某个单独成员。
条件过滤:筛选过滤维度成员字段。
从 方法一 获取的列表数据中去除 方法二 或者单独某个维度成员,去除的 方法二 和维度成员可为多个 Remove(方法一,方法二,维度成员名…)。
示例:
获取 Entity 维度 #root 节点的所有不是末级节点的后代节点,TotalEntity 不包含在内:
Entity{Remove(IDescendant(#root,0),Base(#root,0),TotalEntity)}
从 方法一 中获取的列表数据中维度成员的字段属性需要满足某些具体的条件。
表达式为:AndFilter/OrFilter/NAndFilter/NOrFilter(方法1,Attr(属性名,属性值))
Attr(属性名,属性值) 中属性值是否需要单引号要根据当前属性数据库设置的类型来设置:
若 ud5 的类型为 varchar,则字段属性表达式为 Attr(ud5,'1')
若 ud5 的类型为 int,则字段属性表达式为 Attr(ud5,1)
条件过滤有四种情况:
满足方法查询结果并且满足字段属性值的设定,字段属性可设置多个。
示例:
获取 Entity 维度 #root 节点下的所有 ud5 等于 1 的后代节点:
Entity{AndFilter(Descendant(#root,0),Attr(ud5,'1'))}
满足方法查询结果并且符合字段属性值设定的至少一个条件,字段属性可设置多个。
示例:
获取 Entity 维度 #root 节点下的所有 ud5 等于 1 或者是末级节点的后代节点:
Entity{OrFilter(IDescendant(#root,0),Attr(ud5,'1'),Attr(is_base,1))}
满足方法查询结果不满足字段属性值的设定,字段属性可设置多个。
示例:
获取 Entity 维度 #root 节点下的所有 ud5 不等于 1 并且不是末级节点的后代节点:
Entity{NAndFilter(IDescendant(#root,0),Attr(ud5,'1'),Attr(is_base,1))}
满足方法查询结果并且不符合字段属性值设定的至少一个条件,字段属性可设置多个。
示例:
获取 Entity 维度 #root 节点下的所有 ud5 不等于 1 或者不是末级节点的后代节点:
Entity{NOrFilter(IDescendant(#root,0),Attr(ud5,'1'),Attr(is_base,1))}
当同一维度既在页面上又在行或列上时,若对行/列上的维度成员表达式配置函数 @Cur,使用视图中行/列上该维度成员将随页面上该维度下拉选择的成员变化而变化。
页面上 Entity 维度成员表达式=entity{A;B;C}
列1上 Entity 维度成员表达式=entity{IDescendant(@Cur,1)}
当页面上 Entity 选择 A 时,列1展示 IDescendant(A,1) 的成员。
页面上 Entity 维度成员表达式=year{2018;2019;2020}
列1上 Entity 维度成员表达式=year{@cur;@cur-1}
当页面上 Entity 选择 2019 年时,列1显示成员 2018 和 2019。 +1/-1为取 @Cur 成员的下一个/上一个同级成员。
回到顶部
咨询热线