Selection([Update: Boolean = True]): IEaxObjectSelection;
Selection[Update: boolean]: Prognoz.Platform.Interop.Express.IEaxObjectSelection;
Update. Признак того, что отметка будет изменена.
Свойство Selection возвращает отметку объекта.
Отметка объекта предназначена для получения отметки измерений, соответствующей выделению областей в объекте.
Возможные значения параметра Update:
True. Отметка будет изменена;
False. Отметка не будет изменена.
Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «EAX_SEL_MANAGER». Данный отчет должен содержать таблицу, в которой выделено несколько областей.
Добавьте ссылки на системные сборки: Dimensions, Express, Metabase.
Sub UserProc;
Var
mb: IMetabase;
Report: IEaxAnalyzer;
SelManager: IEaxObjectSelectionManager;
ObjSel: IEaxObjectSelection;
i, j: Integer;
SelSet: IDimSelectionSet;
Sel: IDimSelection;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем экспресс-отчет
Report := mb.ItemById("EAX_SEL_MANAGER").Bind As IEaxAnalyzer;
// Получаем объект для работы с отметкой, по которой строится таблица данных
SelManager := Report.Grid.SelectionManager;
// Получаем отметку в таблице
ObjSel := SelManager.Selection;
If ObjSel.Count > 0 Then
// Выводим отметку, соответствующую областям, выделенным в таблице
For i := 0 To ObjSel.Count - 1 Do
Debug.WriteLine("Набор отметок " + (i + 1).ToString);
Debug.Indent;
SelSet := ObjSel.Item(i);
For j := 0 To SelSet.Count - 1 Do
Sel := SelSet.Item(j);
Debug.WriteLine("Отметка измерения '" + Sel.Dimension.Name + "'");
Debug.Indent;
Debug.WriteLine(Sel.ToString);
Debug.Unindent;
End For;
Debug.Unindent;
Debug.WriteLine("");
End For;
// Выводим совмещенную отметку, соответствующую всем областям, выделенным в таблице
Debug.WriteLine("Совмещенный набор отметок");
Debug.Indent;
SelSet := ObjSel.Combined;
For j := 0 To SelSet.Count - 1 Do
Sel := SelSet.Item(j);
Debug.WriteLine("Отметка измерения '" + Sel.Dimension.Name + "'");
Debug.Indent;
Debug.WriteLine(Sel.ToString);
Debug.Unindent;
End For;
Debug.Unindent;
End If;
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведена отметка, соответствующая каждой выделенной области в таблице и отметка, соответствующая всем выделенным областям в таблице.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
Report: IEaxAnalyzer;
SelManager: IEaxObjectSelectionManager;
ObjSel: IEaxObjectSelection;
i, j: Integer;
SelSet: IDimSelectionSet;
Sel: IDimSelection;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем экспресс-отчет
Report := mb.ItemById["EAX_SEL_MANAGER"].Bind() As IEaxAnalyzer;
// Получаем объект для работы с отметкой, по которой строится таблица данных
SelManager := Report.Grid.SelectionManager;
// Получаем отметку в таблице
ObjSel := SelManager.Selection[True];
If ObjSel.Count > 0 Then
// Выводим отметку, соответствующую областям, выделенным в таблице
For i := 0 To ObjSel.Count - 1 Do
System.Diagnostics.Debug.WriteLine("Набор отметок " + (i + 1).ToString());
System.Diagnostics.Debug.Indent();
SelSet := ObjSel.Item[i];
For j := 0 To SelSet.Count - 1 Do
Sel := SelSet.Item[j];
System.Diagnostics.Debug.WriteLine("Отметка измерения '" + Sel.Dimension.Name + "'");
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine(Sel.ToString("", ",", False));
System.Diagnostics.Debug.Unindent();
End For;
System.Diagnostics.Debug.Unindent();
System.Diagnostics.Debug.WriteLine("");
End For;
// Выводим совмещенную отметку, соответствующую всем областям, выделенным в таблице
System.Diagnostics.Debug.WriteLine("Совмещенный набор отметок");
System.Diagnostics.Debug.Indent();
SelSet := ObjSel.Combined;
For j := 0 To SelSet.Count - 1 Do
Sel := SelSet.Item[j];
System.Diagnostics.Debug.WriteLine("Отметка измерения '" + Sel.Dimension.Name + "'");
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine(Sel.ToString("", ",", False));
System.Diagnostics.Debug.Unindent();
End For;
System.Diagnostics.Debug.Unindent();
End If;
End Sub;
См. также: