IMetabaseObjectControlInfo.Count

Синтаксис Fore

Count: Integer;

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

Count: Integer;

Описание

Свойство Count возвращает количество вложенных объектов, параметрами которых можно управлять.

Пример Fore

Для выполнения примера предполагается наличие в репозитории куба с идентификатором «STD_CUBE». Добавьте ссылку на системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    Obj, ControlObj: IMetabaseObjectDescriptor;
    ControlInfo: IMetabaseObjectControlInfo;
    Control: IMetabaseObjectControl;
    ParamControl: IMetabaseObjectParamControl;
    Param: IMetabaseObjectParam;
    i, j: Integer;
Begin
    MB := MetabaseClass.Active;
    Obj := Mb.ItemById("STD_CUBE");
    ControlInfo := Obj.Params.ControlInfo;
    For i := 0 To ControlInfo.Count - 1 Do
        Control := ControlInfo.Item(i);
        ControlObj := Control.ControlledObject;
        Debug.Write("Вложенный объект: " + ControlObj.Name + '(' + ControlObj.Id + ").");
        If Control.Count = 0 Then
            Debug.WriteLine(" Параметры отсутствуют.");
        Else
            Debug.WriteLine("");
            Debug.Indent;
            For j := 0 To Control.Count - 1 Do
                ParamControl := Control.Item(j);
                Param := ParamControl.ControlledParam;
                Debug.WriteLine("Параметр: " + Param.Name + '(' + Param.Id + ").");
            End For;
            Debug.Unindent;
        End If;
    End For;
End Sub UserProc;

При выполнении примера в консоль среды разработки будет выведена информация о вложенных объектах куба и их параметрах.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Obj, ControlObj: IMetabaseObjectDescriptor;
    ControlInfo: IMetabaseObjectControlInfo;
    Control: IMetabaseObjectControl;
    ParamControl: IMetabaseObjectParamControl;
    Param: IMetabaseObjectParam;
    i, j: Integer;
Begin
    MB := Params.Metabase;
    Obj := Mb.ItemById["STD_CUBE"];
    ControlInfo := Obj.Params.ControlInfo;
    For i := 0 To ControlInfo.Count - 1 Do
        Control := ControlInfo.Item[i];
        ControlObj := Control.ControlledObject;
        System.Diagnostics.Debug.Write("Вложенный объект: " + ControlObj.Name + '(' + ControlObj.Id + "). ");
        If Control.Count = 0 Then
            System.Diagnostics.Debug.WriteLine("Параметры отсутствуют.");
        Else
            System.Diagnostics.Debug.WriteLine("");
            System.Diagnostics.Debug.Indent();
            For j := 0 To Control.Count - 1 Do
                ParamControl := Control.Item[j];
                Param := ParamControl.ControlledParam;
                System.Diagnostics.Debug.WriteLine("Параметр: " + Param.Name + '(' + Param.Id + ").");
            End For;
            System.Diagnostics.Debug.Unindent();
        End If;
    End For;
End Sub;

См. также:

IMetabaseObjectControlInfo