Less(Index: Integer, useInactiveItem: Boolean): Variant;
Less[Index: System.Int32, useInactiveItem: System.Boolean]: System.Object;
Index. Индекс элемента шкалы;
useInactiveItem. Признак использования неактивного элемента. Если свойство равно значению True, то будет учитываться неактивный элемент, иначе - не будет.
Свойство Less возвращает элемент шкалы визуализатора со значением, меньшим, чем значение элемента с указанным индексом.
Свойство возвращает кисть, описываемую интерфейсом IGxBrush, или числовое значение в зависимости от типа шкалы.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Drawing, Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.
До выполнения примера цветовая шкала пузырькового дерева выглядит так, как показано на странице описания интерфейса IVZDataScale. Установим количество интервалов шкалы, равное 4, разрешим их автоматическое вычисление, перерассчитаем шкалу, а также определим начальное и конечное значение первого интервала. Затем получим цвета элементов пузырькового дерева со значением, меньшим, равным и большим значения элемента с индексом 1:
Sub UserProc;
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
Scale: IVZDataScale; // Шкала цветов
Item: IGxSolidBrush; // Кисть для элементов шкалы
MinValue: Double; // Левая граница первого интервала
MaxValue: Double; // Правая граница первого интервала
Begin
// Получим объект метабазы
Metabase := MetabaseClass.Active;
// Получим объект экспресс-отчёта
EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
// Получим шкалу цветов пузырькового дерева
Scale := EaxAnalyzer.BubbleTree.BubbleTree.ColorVisual.ColorMapping.Scale;
// Разрешим автоматическое вычисление элементов шкалы
Scale.AutoCalculable := True;
// Установим количество интервалов шкалы
Scale.IntervalsCount := 4;
// Перерассчитаем шкалу
Scale.AutoSetupScaleItems;
// Получим значения, соответствующие границам первого интервала
Scale.GetValuesPair(0, MinValue, MaxValue);
Debug.WriteLine("Начальное значение первого интервала: " + MinValue.ToString);
Debug.WriteLine("Конечное значение: " + MaxValue.ToString);
// Получим элемент со значением, меньшим значения элемента с индексом 1
Item := Scale.Less(1, False) As IGxSolidBrush;
If Item <> Null Then
Debug.WriteLine("Цвет меньшего элемента: (" +
Item.Color.R.ToString + ", " + Item.Color.G.ToString + ", " +
Item.Color.B.ToString + ")");
End If;
// Получим элемент со значением, равным значению элемента с индексом 1
Item := Scale.Less(1, False) As IGxSolidBrush;
If Item <> Null Then
Debug.WriteLine("Цвет элемента: (" +
Item.Color.R.ToString + ", " + Item.Color.G.ToString + ", " +
Item.Color.B.ToString + ")");
End If;
// Получим элемент со значением, большим значения с индексом 1
Item := Scale.Greater(1, False) As IGxSolidBrush;
If Item <> Null Then
Debug.WriteLine("Цвет большего элемента: (" +
Item.Color.R.ToString + ", " + Item.Color.G.ToString + ", " +
Item.Color.B.ToString + ")");
End If;
// Сохраним изменения, сделанные в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера для шкалы пузырькового дерева было установлено количество интервалов, равное 4:

В окне консоли были выведены минимальное и максимальное значение первого интервала, а также цвета элементов пузырькового дерева со значением, меньшим, равным и большим значения элемента с индексом 1:
Начальное значение первого интервала: 14.5
Конечное значение: 20.5
Цвет меньшего элемента: (235, 175, 54)
Цвет элемента: (235, 175, 54)
Цвет большего элемента: (255, 217, 0)
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Drawing, Express, Metabase и Visualizators из системной сборки Prognoz.Platform.Interop.
До выполнения примера цветовая шкала пузырькового дерева выглядит так, как показано на странице описания интерфейса IVZDataScale. Установим количество интервалов шкалы, равное 4, разрешим их автоматическое вычисление, перерассчитаем шкалу, а также определим начальное и конечное значение первого интервала. Затем получим цвета элементов пузырькового дерева со значением, меньшим, равным и большим значения элемента с индексом 1:
Public Shared Sub Main(Params: StartParams);
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
Scale: IVZDataScale; // Шкала цветов
Item: IGxSolidBrush; // Кисть для элементов шкалы
MinValue: Double; // Левая граница первого интервала
MaxValue: Double; // Правая граница первого интервала
Begin
// Получим объект метабазы
Metabase := Params.Metabase;
// Получим объект экспресс-отчёта
EaxAnalyzer := Metabase.ItemById["EXP"].Edit() As IEaxAnalyzer;
// Получим шкалу цветов пузырькового дерева
Scale := EaxAnalyzer.BubbleTree.BubbleTree.ColorVisual.ColorMapping.Scale;
// Разрешим автоматическое вычисление элементов шкалы
Scale.AutoCalculable := True;
// Установим количество интервалов шкалы
Scale.IntervalsCount := 4;
// Перерассчитаем шкалу
Scale.AutoSetupScaleItems();
// Получим значения, соответствующие границам первого интервала
Scale.GetValuesPair(0, Var MinValue, Var MaxValue);
System.Diagnostics.Debug.WriteLine("Начальное значение первого интервала: " +
MinValue.ToString());
System.Diagnostics.Debug.WriteLine("Конечное значение: " + MaxValue.ToString());
// Получим элемент со значением, меньшим значения элемента с индексом 1
Item := Scale.Less[1, False] As IGxSolidBrush;
If Item <> Null Then
System.Diagnostics.Debug.WriteLine("Цвет меньшего элемента: (" +
Item.Color.R.ToString() + ", " + Item.Color.G.ToString() + ", " +
Item.Color.B.ToString() + ")");
End If;
// Получим элемент со значением, равным значению элемента с индексом 1
Item := Scale.Less[1, False] As IGxSolidBrush;
If Item <> Null Then
System.Diagnostics.Debug.WriteLine("Цвет элемента: (" +
Item.Color.R.ToString() + ", " + Item.Color.G.ToString() + ", " +
Item.Color.B.ToString() + ")");
End If;
// Получим элемент со значением, большим значения с индексом 1
Item := Scale.Greater[1, False] As IGxSolidBrush;
If Item <> Null Then
System.Diagnostics.Debug.WriteLine("Цвет большего элемента: (" +
Item.Color.R.ToString() + ", " + Item.Color.G.ToString() + ", " +
Item.Color.B.ToString() + ")");
End If;
// Сохраним изменения, сделанные в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save();
End Sub;
Результат выполнения примера аналогичен результату, полученному после выполнения примера для языка Fore.
См. также: