Item(Index: Integer): Variant;
Item[Index: System.Int32]: System.Object;
Index. Индекс элемента шкалы.
Свойство Item определяет кисть или число, соответствующие элементу шкалы визуализатора в зависимости от её типа.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXPRESS». В отчете для пузырькового дерева должна быть выбрана метрика «Цвет». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Drawing, Express, Metabase и Visualizators.
До выполнения примера цветовая шкала пузырькового дерева выглядит так, как показано на странице описания интерфейса IVZDataScale.
Sub UserProc;
Var
Metabase: IMetabase; // Репозиторий
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
EaxBubbleTree:IEaxBubbleTree;//Пузырьковое дерево
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
Scale: IVZDataScale; // Шкала цветов
i: Integer; // Счётчик цикла
Color: IGxColor; // Цвет шагов
Brush: IGxSolidBrush;// Кисть для элементов шкалы
Begin
// Получим объект репозитория
Metabase := MetabaseClass.Active;
// Получим объект экспресс-отчёта
EaxAnalyzer := Metabase.ItemById("EXPRESS").Edit As IEaxAnalyzer;
EaxBubbleTree := EaxAnalyzer.BubbleTree;
BubbleTree := EaxBubbleTree.BubbleTree;
// Получим шкалу пузырькового дерева
Scale := BubbleTree.ColorVisual.ColorMapping.Scale;
// Определим цвет для элементов шкалы
For i:=0 To Scale.ItemsCount - 1 Do
// Создадим красный цвет
Color := New GxColor.CreateRGB(255 - 50 * i, 0, 0);
// Создадим кисть
Brush := New GxSolidBrush.Create(Color);
// Установим кисть элементу шкалы
Scale.Item(i) := Brush;
End For;
// Выведем информацию о шкале
Debug.WriteLine("Идентификатор шкалы: " + Scale.ID);
Debug.WriteLine("Общее количество значений шкалы: " + Scale.ValuesCount.ToString);
Debug.WriteLine("Диапазон значений шкалы: " + Scale.Value(0).ToString + " - " + Scale.Value(3).ToString);
// Сохраним изменения, сделанные в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера для элементов шкалы пузырькового дерева были установлены разные оттенки красного цвета:
В консоль были выведены идентификатор шкалы и общее количество её значений:
Идентификатор шкалы: Scale220
Общее количество значений шкалы: 4
Диапазон значений шкалы: 6.5034786623558 - 21.5011791813519
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Visualizators;
...
Public Shared Sub Main(Params: StartParams);
Var
Metabase: IMetabase; // Репозиторий
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
EaxBubbleTree:IEaxBubbleTree;//Пузырьковое дерево
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
Scale: IVZDataScale; // Шкала цветов
i: Integer; // Счётчик цикла
Color: IGxColor; // Цвет шагов
Brush: IGxSolidBrush;// Кисть для элементов шкалы
Begin
// Получим объект репозитория
Metabase := Params.Metabase;
// Получим объект экспресс-отчёта
EaxAnalyzer := Metabase.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
EaxBubbleTree := EaxAnalyzer.BubbleTree;
BubbleTree := EaxBubbleTree.BubbleTree;
// Получим шкалу пузырькового дерева
Scale := BubbleTree.ColorVisual.ColorMapping.Scale;
// Определим цвет для элементов шкалы
For i:=0 To Scale.ItemsCount - 1 Do
// Создадим красный цвет
Color := New GxColor();
Color.CreateRGB(255 - 50 * i, 0, 0);
// Создадим кисть
Brush := New GxSolidBrush();
Brush.Color := Color As GxColor;
// Установим кисть элементу шкалы
Scale.Item[i] := Brush;
End For;
// Выведем информацию о шкале
System.Diagnostics.Debug.WriteLine("Идентификатор шкалы: " + Scale.ID);
System.Diagnostics.Debug.WriteLine("Общее количество значений шкалы: " + Scale.ValuesCount.ToString());
System.Diagnostics.Debug.WriteLine("Диапазон значений шкалы: " + Scale.Value[0].ToString() + " - " + Scale.Value[3].ToString());
// Сохраним изменения, сделанные в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save();
End Sub;
См. также: