class %DeepSee.Model.level
extends %DeepSee.Model.node, %DeepSee.Model.source
Meta-data for a hierarchy level within a dimension within a DeepSee cube.
property dependsOn
as %DeepSee.Datatype.string(MAXLEN=32000,XMLPROJECTION="attribute");
If defined, this is an MDX expression identifying another level within this cube
that this level depends on, e.g., "[Outlet].[H1].[City]"
This causes the following changes to this cube.
- An additional index is created based on the "master" level's fact and this level's fact.
- When the set of members for this level is produced it is filtered using this index.
relationship hierarchy
as %DeepSee.Model.hierarchy(XMLPROJECTION="none") [ Inverse = levels,Cardinality = one ];
Hierarchy that this level belongs to.
property list
as %Boolean(XMLPROJECTION="attribute") [ InitialExpression = 0 ];
If true, then the value for this level contains a list of items. Each
distinct item is treated as a member of this level.
By default the list consists of a $List of items. You can also use a character-delimited
list by setting the listDelimiter attribute.
A nullReplacement for a list property is applied when the
entire list is missing. Missing elements within a list are simply ignored.
property listDelimiter
as %DeepSee.Datatype.string(MAXLEN=1,XMLPROJECTION="attribute");
Optional. If the list attribute for this level is true, then
setting this will cause the list to be interpreted as a character delimited value using
this attribute as the delimiter character.
property memberList
as %DeepSee.Datatype.string(XMLPROJECTION="attribute");
Optional. If defined, this is a comma-delimited list of the members that
are to be displayed for this level in the given order.
This is deprecated in favor of the members collection.
property members
as list of %DeepSee.Model.member(XMLELEMENTREF=1,XMLPROJECTION="ELEMENT",XMLTYPECONSTRAINT="CHOICE");
Optional. Set of explicitly defined members for this level.
If defined, this is a list of the members that
are to be displayed for this level in the given order.
property nullReplacement
as %DeepSee.Datatype.string(XMLPROJECTION="attribute");
Optional. If defined, this is used as the display value for
any members of this level whose value is null (missing).
If not defined, then missing members will not be listed by queries.
This cannot be used for levels within time dimensions or for levels that
contain a list of values (see list).
property properties
as list of %DeepSee.Model.property(XMLELEMENTREF=1,XMLPROJECTION="ELEMENT",XMLTYPECONSTRAINT="CHOICE");
Set of properties defined for this level.
property rangeExpression
as %DeepSee.Datatype.string(MAXLEN=32000,XMLPROJECTION="attribute");
Optional. If defined, this contains a range expression that transforms incoming
values according to a set of range conditions.
A range condition is a string containing one or more range conditions.
Each condition has a test value and a replacement value of the form "test:replace;"
A test value can contain a single value or a range. A range is enclosed with
() (exclusive) or [] (inclusive).
For example:
"(,0]:Below Normal;(0,100):Normal;[100,):Above Normal;"
This cannot be used for levels within time dimensions or for levels that
contain a list of values (see list).
Range expressions are applied before null value substitution.
Values that do not match any range condition are converted to null.
property sort
as %DeepSee.Datatype.string(VALUELIST=",asc,desc,asc numeric,desc numeric",XMLPROJECTION="attribute");
If specified, then use this property to define the default sort order for members of the current level.
The value can be "asc" for ascending order, "desc" for descending order,
"asc numeric" for ascending numeric order, or "desc numeric" for descending numeric order.
For more precise control, you can specify sort order within the property definitions associated
with this level.
property useDisplayValue
as %Boolean(XMLPROJECTION="attribute") [ InitialExpression = 0 ];
If true, then use the display (external) value of the field (if applicable) in the source
table when fetching data for this level.
This is only applied for levels that specify a sourceProperty.
classmethod timeFunctionIsValid(%val)
as %Status
Override default validation to allow for additional time classes.