IVZMapChartLayer.Bars

Синтаксис Fore

Bars: IVZBarsArray;

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

Bars: Prognoz.Platform.Interop.Visualizators.IVZBarsArray;

Описание

Свойство Bars возвращает массив столбиковых показателей на слое карты.

Комментарии

Для получения массива круговых показателей на слое карты используйте IVZMapChartLayer.Pies.

Пример Fore

Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «EXPRESS», содержащего карту. Измерение фактов имеет ключ «10124».

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

Sub UserProc;
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Map: IVZMapChart;
    Facts: IDimInstance;
    Slice: IEaxDataAreaSlice;
    Sel: IDimSelection;
    Layer: IVZMapChartLayer;
    BarsArray: IVZBarsArray;
    Bar: IVZMapChartBar;
    BarAxis: IVZMapChartBarAxis;
    Color: IGxColor;
    PenBase: IGxPenBase;
Begin
    // Получим репозиторий
    MB := MetabaseClass.Active;
    // Получим экспресс-отчет
    Express := MB.ItemById("EXPRESS").Edit As IEaxAnalyzer;
    // Получим карту
    Map := Express.MapChart.MapChart;
    // Зададим измерение фактов в качестве измерения метрик
    Facts := Express.Pivot.Dimensions.FindByKey(10124).DimInstance;
    Slice := Express.DataArea.Slices.Item(0);
    Slice.IndicatorsDimension := Facts;
    // Включим тип метрики «Столбиковый» и в отметку добавим все элементы
    Sel := Express.MapChart.IndicatorSelection(EaxMapChartIndicators.BarHeight);
    Sel.SelectAll;
    // Получим слой на карте
    Layer := Map.RootLayer.SubLayers.Item(0);
    // Получим коллекцию столбиковых показателей
    BarsArray := Layer.Bars;
    // Получим объект для работы со столбиковыми показателями
    Bar := BarsArray.Item(0);
    // Очистим коллекцию столбиковых показателей
    BarsArray.Clear;
    // Добавим ранее полученный объект для работы со столбиковыми показателями
    BarsArray.Add(Bar);
    // Создадим и установим ось Х для столбиковых показателей
    BarAxis := New VZMapChartBarAxis.Create;
    BarAxis.Visibility := MapChartBarAxisVisibility.IsDependent;
    Color := New GxColor.CreateRGB(1200120);
    PenBase := New GxPen.CreateSolid(Color, 3);
    BarAxis.Pen := PenBase;
    Bar.Axis := BarAxis;
    If Not Bar.HideZeroHeight Then
        Bar.HideZeroHeight := True;
    End If;
    // Обновим и сохраним отчет
    Express.RefreshAll;
    (Express As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера на карте экспресс-отчета появятся столбиковые показатели. Для столбиковых показателей будет включена ось X фиолетового цвета. Столбики нулевой высоты будут скрыты.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Visualizators;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Express: IEaxAnalyzer;
    Map: IVZMapChart;
    Facts: IDimInstance;
    Slice: IEaxDataAreaSlice;
    Sel: IDimSelection;
    Layer: IVZMapChartLayer;
    BarsArray: IVZBarsArray;
    Bar: VZMapChartBar;
    BarAxis: VZMapChartBarAxis = New VZMapChartBarAxisClass();
    Color: GxColor = New GxColorClass_2();
    PenBase: GxPen = New GxPenClass();
Begin
    // Получим репозиторий
    MB := Params.Metabase;
    // Получим экспресс-отчет
    Express := MB.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
    // Получим карту
    Map := Express.MapChart.MapChart;
    // Зададим измерение фактов в качестве измерения метрик
    Facts := Express.Pivot.Dimensions.FindByKey(10124).DimInstance;
    Slice := Express.DataArea.Slices.Item[0];
    Slice.IndicatorsDimension := Facts;
    // Включим тип метрики «Столбиковый» и в отметку добавим все элементы
    Sel := Express.MapChart.IndicatorSelection[EaxMapChartIndicators.emciBarHeight As Integer];
    Sel.SelectAll();
    // Получим слой на карте
    Layer := Map.RootLayer.SubLayers.Item[0];
    // Получим коллекцию столбиковых показателей
    BarsArray := Layer.Bars;
    // Получим объект для работы со столбиковыми показателями
    Bar := BarsArray.Item[0];
    // Очистим коллекцию столбиковых показателей
    BarsArray.Clear();
    // Добавим ранее полученный объект для работы со столбиковыми показателями
    BarsArray.Add(Bar);
    // Создадим и установим ось Х для столбиковых показателей
    BarAxis.Visibility := MapChartBarAxisVisibility.mcbavVisible;
    Color.CreateRGB(1200120);
    PenBase.CreateSolid(Color, 3);
    BarAxis.Pen := PenBase;
    Bar.Axis := BarAxis;
    If Not Bar.HideZeroHeight Then
        Bar.HideZeroHeight := True;
    End If;
    // Обновим и сохраним отчет
    Express.RefreshAll();
    (Express As IMetabaseObject).Save();
End Sub;

См. также:

IVZMapChartLayer