CurrentIndex: Integer;
CurrentIndex: System.Int32;
Свойство CurrentIndex определяет индекс текущего шага временной шкалы.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.
До выполнения примера временная шкала пузырькового дерева выглядит так, как показано на странице описания интерфейса IVZTimeLine. Увеличим длительность воспроизведения анимации дерева при переходе от одного шага шкалы к другому и задержку анимации на каждом шаге. Запретим возврат шкалы в начальное состояние, определим индекс текущего шага временной шкалы и его наименование:
Sub UserProc;
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
TimeLine: IVZTimeLine; // Временная шкала
Index: Integer; // Индекс текущего шага шкалы
StepName: String; // Наименование текущего шага шкалы
Begin
// Получим объект метабазы
Metabase := MetabaseClass.Active;
// Откроем экспресс-отчёт
EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
// Получим пузырьковое дерево
BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
// Получим временную шкалу
TimeLine := BubbleTree.TimeLine;
{ Установим длительность воспроизведения анимации визуализатора
при переходе от одного шага шкалы к другому }
TimeLine.StepDuration := 5;
// Установим длительность задержки анимации визуализатора
TimeLine.DelayDuration := 3;
// Информация о размещении шкалы в рабочей области визуализатора
Debug.WriteLine("Шкала
накладывается на рабочую область (true): " + TimeLine.IsOverlap.ToString);
// Запретим возврат временной шкалы в начальное состояние
TimeLine.ReturnToInitialState := False;
// Определим индекс текущего шага шкалы
Index := TimeLine.CurrentIndex;
Debug.WriteLine("Индекс текущего шага временной шкалы: " +
Index.ToString);
// Определим наименование текущего шага шкалы
StepName := TimeLine.StepsNames.Item(Index);
Debug.WriteLine("Наименование текущего шага шкалы: " + StepName);
// Сохраним сделанные изменения в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера были изменены настройки для временной шкалы, в консоль среды разработки была выведена следующая информация:
Шкала накладывается на рабочую область (true): False
Индекс текущего шага временной шкалы: 6
Наименование текущего шага шкалы: 1991
Запустим воспроизведение анимации пузырькового дерева при переключении шагов временной шкалы. Длительность перехода будет теперь равна 5 секундам, а задержки переключения шагов - 3 секундам. По окончании воспроизведения временная шкала не будет возвращена в начальное состояние:
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Express, Metabase и Visualizators из системной сборки Prognoz.Platform.Interop.
Результаты выполнения примера Fore.NET совпадают с примером Fore.
Public Shared Sub Main(Params: StartParams);
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
TimeLine: IVZTimeLine; // Временная шкала
Index: Integer; // Индекс текущего шага шкалы
StepName: String; // Наименование текущего шага шкалы
Begin
// Получим объект метабазы
Metabase := Params.Metabase;
// Откроем экспресс-отчёт
EaxAnalyzer := Metabase.ItemById["EXP"].Edit() As IEaxAnalyzer;
// Получим пузырьковое дерево
BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
// Получим временную шкалу
TimeLine := BubbleTree.TimeLine;
{ Установим длительность воспроизведения анимации дерева
при переходе от одного шага шкалы к другому }
TimeLine.StepDuration := 5;
// Установим длительность задержки анимации дерева
TimeLine.DelayDuration := 3;
// Информация о размещении шкалы в рабочей области визуализатора
System.Diagnostics.Debug.WriteLine("Шкала накладывается на рабочую область (true): " + TimeLine.IsOverlap.ToString());
// Запретим возврат временной шкалы в начальное состояние
TimeLine.ReturnToInitialState := False;
// Определим индекс текущего шага шкалы
Index := TimeLine.CurrentIndex;
System.Diagnostics.Debug.WriteLine("Индекс текущего шага временной шкалы: " +
Index.ToString());
// Определим наименование текущего шага шкалы
StepName := TimeLine.StepsNames.Item[Index] As String;
System.Diagnostics.Debug.WriteLine("Наименование текущего шага шкалы: " +
StepName);
// Сохраним сделанные изменения в экспресс-отчёте
(EaxAnalyzer As IMetabaseObject).Save();
End Sub;
См. также: