NineMonths(Calendar: IDimInstance; El: Integer): Integer;
NineMonths(Calendar: Prognoz.Platform.Interop.Dimensions.IDimInstance; El: uinteger): uinteger;
Calendar. Data of the calendar dictionary, by which calculation is executed.
El. Index of the element, relative to which calculation is executed.
The NineMonths method returns the index of the element corresponding to the Nine Months period, which includes the specified element.
For correct calculation the calendar dictionary must contain the Nine Months level. If the Months level is missing, the method throws an exception.
For example, if the calendar dictionary contains the Years, Nine Months, Days levels and the calculation is executed for:
Element of the annual frequency, the NineMonths method returns the element corresponding to the first period of nine months in a year.
Element of the daily frequency, the NineMonth method returns the element corresponding to the nine months period, which includes the day.
The example is the function that is used to calculate the relation in a standard cube.
To execute the example, add links to the Cubes and Dimensions system assemblies.
Function NineMonths(T: Variant): Integer;
Var
Cube: ICubeInstance;
CubeDest: ICubeInstanceDestination;
DimInsts: ICubeInstanceDimensions;
DimInst: IDimInstance;
i: Integer;
Result: Integer;
Begin
// Get the current cube
Cube := CubeClass.CurrentCube;
CubeDest := Cube.Destinations.DefaultDestination;
// Get calendar dimension
DimInsts := CubeDest.Dimensions;
For i := 0 To DimInsts.Count - 1 Do
If (DimInsts.Item(i).Dimension Is ICalendarDimension) Then
DimInst := DimInsts.Item(i);
End If;
End For;
// Execute calculation
If CalendarDimension.Level(DimInst, t) = DimCalendarLevel.Year Then
Result := CalendarDimension.NineMonths(DimInst, t);
Else
Result := -1;
End If;
// Return result
Return Result;
End Function NineMonths;
The result of using the relation in the formula of the calculated fact: the value for the element of the annual frequency will be taken from the first nine months period.
The example is the function that is used to calculate the relation in a standard cube.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
…
Public Shared Function NineMonths(T: object): Integer;
Var
cClass: CubeClassClass;
Cube: ICubeInstance;
CubeDest: ICubeInstanceDestination;
DimInsts: ICubeInstanceDimensions;
DimInst: IDimInstance;
i: Integer;
calendDim: CalendarDimension;
el: uinteger;
Result: Integer;
Begin
// Get the current cube
cClass := New CubeClassClass.Create();
Cube := cClass.CurrentCube[Null];
CubeDest := Cube.Destinations.DefaultDestination;
// Get calendar dimension
DimInsts := CubeDest.Dimensions;
For i := 0 To DimInsts.Count - 1 Do
If (DimInsts.Item[i].Dimension Is ICalendarDimension) Then
DimInst := DimInsts.Item[i];
End If;
End For;
// Execute calculation
calendDim := New CalendarDimension.Create();
el := uinteger.Parse(t.ToString());
If calendDim.Level(DimInst, el) = DimCalendarLevel.dclYear Then
Result := calendDim.NineMonths(DimInst, el) As integer;
Else
Result := -1;
End If;
// Return result
Return Result;
End Function NineMonths;
The result of using the relation in the formula of the calculated fact: the value for the element of the annual frequency will be taken from the first nine months period.
See also: