Показать содержание 

Express > Интерфейсы сборки Express > IEaxObjectSelection > IEaxObjectSelection.Matrix

IEaxObjectSelection.Matrix

Синтаксис Fore

Matrix: IMatrix;

Синтаксис Fore.NET

Matrix: Prognoz.Platform.Interop.Matrix.IMatrix;

Описание

Свойство Matrix возвращает матрицу данных, соответствующую областям, которые выделены в объекте.

Комментарии

Для получения отметки, соответствующей всем областям, выделенным в объекте, используйте свойство IEaxObjectSelection.Combined.

Пример Fore

Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «EAX_SEL_MANAGER». Данный отчет должен содержать таблицу, в которой выделено несколько областей.

Добавьте ссылки на системные сборки: Express, Matrix, Metabase.

Sub UserProc;
Var
    mb: IMetabase;
    Report: IEaxAnalyzer;
    SelManager: IEaxObjectSelectionManager;
    ObjSel: IEaxObjectSelection;
    Matrix: IMatrix;
    Iter: IMatrixIterator;
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
        // Выводим данные, соответствующие областям, выделенным в таблице
        Matrix := ObjSel.Matrix(ObjSel.Item(0));
        Iter := Matrix.CreateIterator;
        Iter.Move(IteratorDirection.First);
        While Iter.Valid Do
            Debug.WriteLine(Iter.Value);
            Iter.Move(IteratorDirection.Next);
        End While;
    End If;
End Sub UserProc;

В результате выполнения примера в окно консоли будут выведены данные, соответствующие областям, выделенным в таблице.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Matrix;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    Report: IEaxAnalyzer;
    SelManager: IEaxObjectSelectionManager;
    ObjSel: IEaxObjectSelection;
    Matrix: IMatrix;
    Iter: IMatrixIterator;
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
        // Выводим данные, соответствующие областям, выделенным в таблице
        Matrix := ObjSel.Matrix[ObjSel.Item[0]];
        Iter := Matrix.CreateIterator();
        Iter.Move(IteratorDirection.itdFirst);
        While Iter.Valid Do
            System.Diagnostics.Debug.WriteLine(Iter.Value);
            Iter.Move(IteratorDirection.itdNext);
        End While;
    End If;
End Sub;

См. также:

IEaxObjectSelection