IVZDataScale.ConstructScaleElements

Синтаксис Fore

ConstructScaleElements(Values: IVZDataArray);

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

ConstructScaleElements(Values: Prognoz.Platform.Interop.Visualizators.VZDataArray);

Параметры

Values. Массив данных, отображаемых визуализатором. По этим данным рассчитывается шкала.

Описание

Метод ConstructScaleElements перерассчитывает шкалу визуализатора, используя массив данных и заданный режим расчета.

Комментарий

Метод актуален для использования, если включен автоматический расчет шагов шкалы (AutoCalculable=True).

Перед вычислением шкалы можно определить количество интервалов.

Пример Fore

Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXPRESS». В отчете для пузырькового дерева должна быть выбрана метрика «Цвет». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators.

Sub UserProc;
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    BubbleTree: IVZBubbleTree; // Пузырьковое дерево
    Scale: IVZDataScale; // Шкала цветов
    DataSource: IVZMultiplyDataSource; // Источник данных
    Values: IVZDataArray; // Массив данных
Begin
    // Получим объект метабазы
    Metabase := MetabaseClass.Active;
    // Получим объект экспресс-отчёта
    EaxAnalyzer := Metabase.ItemById("EXPRESS").Edit As IEaxAnalyzer;
    BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
    // Получим шкалу цветов пузырькового дерева
    Scale := BubbleTree.ColorVisual.ColorMapping.Scale;
    // Разрешим автоматическое вычисление шкалы
    Scale.AutoCalculable := True;      
    // Включим использование в шкале элементов "равно"
    Scale.EnableEquality := True;  
    // Определим режим расчета шкалы визуализатора
    Scale.Mode := VisualizatorScaleMode.ScaleLogarithmic;
    // Определим основание для логарифмической шкалы
    Scale.LogarithmBase := 4;
    // Получаем источник данных
    DataSource := BubbleTree.ColorVisual.ColorMapping.DataSource;
    // Получаем массив данных, на основе которых будет рассчитана шкала
    Values := New VZDataArray.Create;
    Values := DataSource.GetAllLevelDataEx("color",-1);
    // Перерассчитаем шкалу, если данные были получены 
    If Values <> Null Then
        Scale.ConstructScaleElements(Values);
    Else 
        Debug.WriteLine("Данных нет, расчет шкалы не выполнен");
    End If;
    // Сохраним изменения, сделанные в экспресс-отчёте 
    (EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера будет выполнен перерасчет шкалы визуализатора с заданными параметрами и данными.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Visualizators;

...

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    BubbleTree: IVZBubbleTree; // Пузырьковое дерево
    Scale: IVZDataScale; // Шкала цветов
    DataSource: IVZMultiplyDataSource; // Источник данных
    Values: VZDataArray; // Массив данных
Begin
    // Получим объект метабазы
    Metabase := Params.Metabase;
    // Получим объект экспресс-отчёта
    EaxAnalyzer := Metabase.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
    BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
    // Получим шкалу цветов пузырькового дерева
    Scale := BubbleTree.ColorVisual.ColorMapping.Scale;
    // Разрешим автоматическое вычисление шкалы
    Scale.AutoCalculable := True;      
    // Включим использование в шкале элементов "равно"
    Scale.EnableEquality := True;
    // Определим режим расчета шкалы визуализатора
    Scale.Mode := VisualizatorScaleMode.vsatScaleLogarithmic;
    // Определим основание для логарифмической шкалы
    Scale.LogarithmBase := 4;
    // Получаем источник данных
    DataSource := BubbleTree.ColorVisual.ColorMapping.DataSource;
    // Получаем массив данных, на основе которых будет рассчитана шкала
    Values := New VZDataArray.Create();
    Values := DataSource.GetAllLevelDataEx("color",-1);
    // Перерассчитаем шкалу, если данные были получены 
    If Values <> Null Then
        Scale.ConstructScaleElements(Values);
    Else 
        System.Diagnostics.Debug.WriteLine("Данных нет, расчет шкалы не выполнен");
    End If;
    // Сохраним изменения, сделанные в экспресс-отчёте 
    (EaxAnalyzer As IMetabaseObject).Save();
End Sub;

См. также:

IVZDataScale