IEaxDrillSettings.Mode

Синтаксис Fore

Mode: EaxDataDrillMode;

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

Mode: Prognoz.Platform.Interop.Express.EaxDataDrillMode;

Описание

Свойство Mode определяет способ изменения отметки в расшифровке элементов измерения.

Комментарии

По умолчанию свойство имеет значение EaxDataDrillMode.None.

Пример Fore

Для выполнения примера в репозитории необходимо наличие регламентного отчета с идентификатором «REG_MODE». Источником данных является куб, в котором содержится календарное измерение. Отчет содержит аналитическую область данных. Отчет содержит один лист.

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

Sub UserProc;
Var
    MB: IMetabase;
    Rep: IPrxReport;
    PivSlice: IEaxDataAreaPivotSlice;
    Pivot: IPivot;
    HeadSets: IDataAreaHeaderSettingsBase;
    Grid: IEaxGrid;
    DimSettings: IEaxGridDimensionSettings;
    PivotDims: IPivotDimension;
    DimModel: IDimensionModel;
    DimIndex: IDimIndex;
    Attributes: IDimAttributesInstance;
    Attribute: IDimAttribute;
    Drill: IEaxDrillSettings;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим регламентный отчет
    Rep := MB.ItemById("REG_MOVE").Edit As IPrxReport;
    // Получим срез данных в качестве области данных таблицы отчета
    PivSlice := Rep.DataArea.Slices.Item(0As IEaxDataAreaPivotSlice;
    // Получим таблицу данных
    Pivot := PivSlice.Pivot;
    // Получим календарное измерение
    PivotDims := Pivot.Dimensions.Item(1);
    // Получим структуру измерения
    DimModel := PivotDims.DimInstance.Dimension;
    // Получим структуру указанного индекса измерения
    DimIndex := DimModel.Indexes.Item(0);
    // Получим коллекцию атрибутов измерения
    Attributes := PivotDims.DimInstance.Attributes;
    // Получим структуру указанного атрибута
    Attribute := Attributes.Item(0).Attribute;
    // Получим настройки заголовка аналитической области данных
    HeadSets := PivotDims As IDataAreaHeaderSettingsBase;
    // Включим настройки расшифровки для указанного представления
    Grid := (PivSlice As IEaxDataAreaSlice).Views.Item(0As IEaxGrid;
    Grid.ViewSettings.HyperlinkAsText := False;
    DimSettings := Grid.ViewSettings.GetViewSettings(HeadSets) As IEaxGridDimensionSettings;
    If Not DimSettings.IsDrilled Then
        DimSettings.Drilled := TriState.OnOption;
    End If;
    // Получим настройки расшифровки
    Drill := DimSettings.Drill;
    // Укажем лист
    Drill.SheetKey := Rep.Sheets.Item(0).Key;
    // Укажем измерение
    Drill.Dimension := PivotDims;
    // Установим способ изменения отметки - замена
    Drill.Mode := EaxDataDrillMode.Replace;
    // Установим индекс для поиска элементов
    Drill.DimensionIndex := DimIndex;
    // Установим атрибут поиска в индексе
    Drill.DimensionAttribute := Attribute;
    Drill.DimensionAttributes := "BLOCK_TYPE";
    // При щелчке по гиперссылке будет осуществлен переход на указанный сайт
    // Ссылка откроется в новом окне браузера
    Drill.ActionType := TabHyperlinkActionType.OpenURL;
    Drill.Action := "www.example.com";
    Drill.Target := TabHyperlinkTarget.Top;
    // Выведем в окно консоли ключ среза данных и ключ измерения
    Debug.WriteLine("Ключ среза данных = " + Drill.SliceKey.ToString);
    Debug.WriteLine("Ключ измерения = " + Drill.DimensionKey.ToString);
    // Обновим отчет и сохраним изменения
    Rep.Recalc;
    (Rep As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера:

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

Public
 Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Rep: IPrxReport;
    PivSlice: IEaxDataAreaPivotSlice;
    Pivot: IPivot;
    HeadSets: IDataAreaHeaderSettingsBase;
    Grid: IEaxGrid;
    DimSettings: IEaxGridDimensionSettings;
    PivotDims: IPivotDimension;
    DimModel: IDimensionModel;
    DimIndex: IDimIndex;
    Attributes: IDimAttributesInstance;
    Attribute: IDimAttribute;
    Drill: IEaxDrillSettings;
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим регламентный отчет
    Rep := MB.ItemById["REG_MOVE"].Edit() As IPrxReport;
    // Получим срез данных в качестве области данных таблицы отчета
    PivSlice := Rep.DataArea.Slices.Item[0As IEaxDataAreaPivotSlice;
    // Получим таблицу данных
    Pivot := PivSlice.Pivot;
    // Получим календарное измерение
    PivotDims := Pivot.Dimensions.Item[1];
    // Получим структуру измерения
    DimModel := PivotDims.DimInstance.Dimension;
    // Получим структуру указанного индекса измерения
    DimIndex := DimModel.Indexes.Item[0];
    // Получим коллекцию атрибутов измерения
    Attributes := PivotDims.DimInstance.Attributes;
    // Получим структуру указанного атрибута
    Attribute := Attributes.Item[0].Attribute;
    // Получим настройки заголовка аналитической области данных
    HeadSets := PivotDims As IDataAreaHeaderSettingsBase;
    // Включим настройки расшифровки для указанного представления
    Grid := (PivSlice As IEaxDataAreaSlice).Views.Item[0As IEaxGrid;
    Grid.ViewSettings.HyperlinkAsText := False;
    DimSettings := Grid.ViewSettings.GetViewSettings[HeadSets] As IEaxGridDimensionSettings;
    If Not DimSettings.IsDrilled Then
        DimSettings.Drilled := TriState.tsOnOption;
    End If;
    // Получим настройки расшифровки
    Drill := DimSettings.Drill;
    // Укажем лист
    Drill.SheetKey := Rep.Sheets.Item[0].Key;
    // Укажем измерение
    Drill.Dimension := PivotDims;
    // Установим способ изменения отметки - замена
    Drill.Mode := EaxDataDrillMode.eddmReplace;
    // Установим индекс для поиска элементов
    Drill.DimensionIndex := DimIndex;
    // Установим атрибут поиска в индексе
    Drill.DimensionAttribute := Attribute;
    Drill.DimensionAttributes := "BLOCK_TYPE";
    // При щелчке по гиперссылке будет осуществлен переход на указанный сайт
    // Ссылка откроется в новом окне браузера
    Drill.ActionType := TabHyperlinkActionType.thatOpenURL;
    Drill.Action := "www.example.com";
    Drill.Target := TabHyperlinkTarget.thtTop;
    // Выведем в окно консоли ключ среза данных и ключ измерения
    System.Diagnostics.Debug.WriteLine("Ключ среза данных = " + Drill.SliceKey.ToString());
    System.Diagnostics.Debug.WriteLine("Ключ измерения = " + Drill.DimensionKey.ToString());
    // Обновим отчет и сохраним изменения
    Rep.Recalc();
    (Rep As IMetabaseObject).Save();
End Sub;

См. также:

IEaxDrillSettings