IPrxCalculatedPointDimensionShift.LevelTo

Синтаксис Fore

LevelTo: IDimLevelInstance;

Синтаксис Fore.NET

LevelTo: Prognoz.Platform.Interop.Dimensions.IDimLevelInstance;

Описание

Свойство LevelTo определяет уровень, на который осуществляется сдвиг.

Комментарии

Для определения уровня, по которому осуществляется сдвиг, используйте свойство IPrxCalculatedPointDimensionShift.Level.

Пример Fore

Для выполнения примера предполагается наличие в репозитории регламентного отчёта с идентификатором «DOCUMENT», содержащего текстовый лист. Источник данных регламентного отчёта содержит измерение с идентификатором «D_SEP».

Добавьте ссылки на системные сборки: Dimensions, Metabase, Report.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DataSource: IPrxDataSource;
    SliceDims: IPrxSliceDimensions;
    Points: IPrxCalculatedPoints;
    Point, ParentPoint: IPrxCalculatedPoint;
    PointShift: IPrxCalculatedShiftedPoint;
    PointDimShift: IPrxCalculatedPointDimensionShift;
    Dim: IDimInstance;
    DimLevels: IDimLevelsInstance;
    DimLevel: IDimLevelInstance;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("DOCUMENT").Edit;
    Report := MObj As IPrxReport;
    DataSource := Report.DataSources.Item(0);
    SliceDims := DataSource.Slices.Item(0).Dimensions;
    Dim := SliceDims.FindById("D_SEP").Dimension;
    Points := DataSource.Points;
    Points.Clear;
    // Вычисляемая точка:
    Point := Points.Add;
    Point.Name := "Point_1";
    Point.CalculateValue;
    // Сдвиг в вычисляемой точке:
    PointShift := Point As IPrxCalculatedShiftedPoint;
    ParentPoint := PointShift.ParentPoint;
    DimLevels:=Dim.Levels;
    DimLevel:=DimLevels.Item(DimLevels.Count-1);
    PointDimShift := PointShift.Shift(Dim);
    PointDimShift.LevelTo := DimLevel;
    Debug.WriteLine("Измерение, на которое осуществляется сдвиг: "
        + PointDimShift.Dimension.Name);
    Points.CalculateValues;
    (Report As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера:

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DataSource: IPrxDataSource;
    SliceDims: IPrxSliceDimensions;
    Points: IPrxCalculatedPoints;
    Point, ParentPoint: IPrxCalculatedPoint;
    PointShift: IPrxCalculatedShiftedPoint;
    PointDimShift: IPrxCalculatedPointDimensionShift;
    Dim: IDimInstance;
    DimLevels: IDimLevelsInstance;
    DimLevel: IDimLevelInstance;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["DOCUMENT"].Edit();
    Report := MObj As IPrxReport;
    DataSource := Report.DataSources.Item[0];
    SliceDims := DataSource.Slices.Item[0].Dimensions;
    Dim := SliceDims.FindById("D_SEP").Dimension;
    Points := DataSource.Points;
    Points.Clear();
    // Вычисляемая точка:
    Point := Points.Add();
    Point.Name := "Point_1";
    Point.CalculateValue(True);
    // Сдвиг в вычисляемой точке:
    PointShift := Point As IPrxCalculatedShiftedPoint;
    ParentPoint := PointShift.ParentPoint;
    DimLevels:=Dim.Levels;
    DimLevel:=DimLevels.Item[DimLevels.Count-1];
    PointDimShift := PointShift.Shift[Dim];
    PointDimShift.LevelTo := DimLevel;
    System.Diagnostics.Debug.WriteLine("Измерение, на которое осуществляется сдвиг: "
        + PointDimShift.Dimension.Name);
    Points.CalculateValues();
    (Report As IMetabaseObject).Save();
End Sub;

См. также:

IPrxCalculatedPointDimensionShift