IPrxDocumentExpressions.ItemById

Синтаксис Fore

ItemById(Id: Integer): IPrxDocumentExpression;

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

ItemById(Id: Integer): Prognoz.Platform.Interop.Report.PrxDocumentExpression;

Параметры

Id. Идентификатор вычисляемого поля.

Описание

Метод ItemById возвращает параметры вычисляемого поля по его идентификатору.

Комментарии

Идентификатор вычисляемого поля можно получить в свойстве IPrxDocumentExpression.Id. Идентификаторы генерируются автоматически при создании вычисляемых полей. Метод ItemById актуален для использования, если уже имеется какой-либо набор идентификаторов и не требуется перебирать всю коллекцию с помощью свойств Item-Count.

Пример Fore

Для выполнения примера предполагается наличие в репозитории регламентного отчета с идентификатором «Report». В отчёте создан текстовый лист с наименованием «Документ», на этом листе используются различные вычисляемые поля.

Sub UserProc;
Var
    MB: IMetabase;
    Report: IPrxReport;
    Doc: IPrxDocument;
    Expressions: IPrxDocumentExpressions;
    Expression: IPrxDocumentExpression;
    i: Integer;
    IdArray: IArrayList;
Begin
    MB := MetabaseClass.Active;
    Report := MB.ItemById("Report").Bind As IPrxReport;
    Doc := Report.Sheets.FindByName("Документ"As IPrxDocument;
    Expressions := Doc.DocumentExpressions;
    //...
    //Отбор идентификаторов вычисляемых полей по какому-либо признаку
    //...
    IdArray := New ArrayList.Create;
    For i := 0 To Expressions.Count - 1 Do
        Expression := Expressions.Item(i);
        If <Условие отбора вычисляемого поля> Then
            //Сохранение идентификатора в динамический массив
            IdArray.Add(Expression.Id);
        End If;
    End For;
    //...
    //Получение и работа с отобранными вычисляемыми полями по их идентификаторам
    //...
    For i := 0 To IdArray.Count - 1 Do
        Expression := Expressions.ItemById(IdArray.Item(i));
        //...
    End For;
End Sub UserProc;

Указанный пример в общем виде показывает как можно получить коллекцию вычисляемых полей, отобрать из них необходимые по какому-либо признаку и в дальнейшем работать с ними.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.ForeCollections;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Report: IPrxReport;
    Doc: IPrxDocument;
    Expressions: IPrxDocumentExpressions;
    Expression: IPrxDocumentExpression;
    i: Integer;
    IdArray: IArrayList = New ArrayListClass();
Begin
    MB := Params.Metabase;
    Report := MB.ItemById["Report"].Bind() As IPrxReport;
    Doc := Report.Sheets.FindByName("Документ"As IPrxDocument;
    Expressions := Doc.DocumentExpressions;
    //...
    //Отбор идентификаторов вычисляемых полей по какому-либо признаку
    //...
    For i := 0 To Expressions.Count - 1 Do
        Expression := Expressions.Item[i];
        If <Условие отбора вычисляемого поля> Then
            //Сохранение идентификатора в динамический массив
            IdArray.Add(Expression.Id);
        End If;
    End For;
    //...
    //Работа с отобранными вычисляемыми полями
    //...
    For i := 0 To IdArray.Count - 1 Do
        Expression := Expressions.ItemById(IdArray.Item[i] As Integer);
        //...
    End For;
End Sub;

См. также:

IPrxDocumentExpressions