ICalendarDimensionClass.Month

Fore Syntax

Month(Calendar: IDimInstance; El: Integer): Integer;

Fore.NET Syntax

Month(Calendar: Prognoz.Platform.Interop.Dimensions.IDimInstance; El: uinteger): uinteger;

Parameters

Calendar. Data of the calendar dictionary, by which calculation is executed.

El. Index of the element, relative to which calculation is executed.

Description

The Month method returns index of the element corresponding to the month, which includes the specified element.

Comments

For correct calculation the calendar dictionary must contain the Months level. If the level is missing, the method returns -1.

For example, if the calendar dictionary contains the Quarters, Months, Days levels and the calculation is executed for:

Fore Example

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 Month(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.Quarter Then
        Result := CalendarDimension.Month(DimInst, t);
    Else
        Result := -1;
    End If;
    // Return result
    Return Result;
End Function Month;

The result of using the relation in the formula of the calculated fact: the value for the element of the quarterly frequency will be taken from the first month of the quarter.

Fore.NET Example

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 Month(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.dclQuarter Then
        Result := calendDim.Month(DimInst, el) As integer;
    Else
        Result := -1;
    End If;
    // Return result
    Return Result;
End Function Month;

The result of using the relation in the formula of the calculated fact: the value for the element of the quarterly frequency will be taken from the first month of the quarter.

See also:

ICalendarDimensionClass