ConstructScaleElements(Values: IVZDataArray);
ConstructScaleElements(Values: Prognoz.Platform.Interop.Visualizators.VZDataArray);
Values. Массив данных, отображаемых визуализатором. По этим данным рассчитывается шкала.
Метод ConstructScaleElements перерассчитывает шкалу визуализатора, используя массив данных и заданный режим расчета.
Метод актуален для использования, если включен автоматический расчет шагов шкалы (AutoCalculable=True).
Перед вычислением шкалы можно определить количество интервалов.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «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.
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;
См. также: