IOrmSimpleClass.Attrs

Синтаксис Fore

Attrs: IOrmSimpleAttrs;

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

Attrs: Prognoz.Platform.Interop.Orm.IOrmSimpleAttrs;

Описание

Свойство Attrs возвращает коллекцию атрибутов объекта.

Комментарии

Для получения атрибута из коллекции используйте свойство IOrmSimpleAttrs.Item.

Пример Fore

Для выполнения примера в репозитории предполагается наличие объекта простого класса с идентификатором «DICT». Добавьте ссылки на системные сборки «Dal», «Metabase», «Orm», «Rds».

Sub UserProc;
Var
    MB: IMetabase;
    RdsDict: IRdsDictionary;
    RdsDictInst: IRdsDictionaryInstance;
    OrmClass: IOrmSimpleClass;
    sAtts: IOrmSimpleAttrs;
    Attr: IOrmSimpleAttr;
    i: Integer;
    s: String;
Begin
    MB := MetabaseClass.Active;
    RdsDict := MB.ItemById("DICT").Bind As IRdsDictionary;
    RdsDictInst := RdsDict.Open(Null);
    OrmClass := RdsDict As IOrmSimpleClass;
    sAtts := OrmClass.Attrs;
    For i := 0 To sAtts.Count - 1 Do
        Attr := sAtts.Item(i);
        Debug.WriteLine("Атрибут:");
        Debug.Indent;
        Debug.WriteLine("- ключ: " + Attr.Key.ToString);
        Debug.WriteLine("- идентификатор: " + Attr.Id);
        Debug.WriteLine("- наименование: " + Attr.Name);
        Select Case Attr.DataType
            Case DbDataType.Blob: s := "массив двоичных, либо символьных данных";
            Case DbDataType.Boolean: s := "логические данные";
            Case DbDataType.Date: s := "дата без времени";
            Case DbDataType.DateTime: s := "дата и время";
            Case DbDataType.Float: s := "вещественные значения";
            Case DbDataType.Integer: s := "целочисленные значения";
            Case DbDataType.NoData: s := "нет данных";
            Case DbDataType.String: s := "символьные данные";
        End Select;
        Debug.WriteLine("- тип данных: " + s);
        Debug.Unindent;
    End For;
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Rds;

Public Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RdsDict: IRdsDictionary;
    RdsDictInst: IRdsDictionaryInstance;
    OrmClass: IOrmSimpleClass;
    sAtts: IOrmSimpleAttrs;
    Attr: IOrmSimpleAttr;
    i: Integer;
    s: String;
Begin
    MB := Params.Metabase;
    RdsDict := MB.ItemById["DICT"].Bind() As IRdsDictionary;
    RdsDictInst := RdsDict.Open(Null);
    OrmClass := RdsDict As IOrmSimpleClass;
    sAtts := OrmClass.Attrs();
    For i := 0 To sAtts.Count - 1 Do
        Attr := sAtts.Item[i];
        System.Diagnostics.Debug.WriteLine("Атрибут:");
        System.Diagnostics.Debug.Indent();
        System.Diagnostics.Debug.WriteLine("- ключ: " + Attr.Key.ToString());
        System.Diagnostics.Debug.WriteLine("- идентификатор: " + Attr.Id);
        System.Diagnostics.Debug.WriteLine("- наименование: " + Attr.Name);
        Select Case Attr.DataType
            Case DbDataType.ddtBlob: s := "массив двоичных, либо символьных данных";
            Case DbDataType.ddtBoolean: s := "логические данные";
            Case DbDataType.ddtDate: s := "дата без времени";
            Case DbDataType.ddtDateTime: s := "дата и время";
            Case DbDataType.ddtFloat: s := "вещественные значения";
            Case DbDataType.ddtInteger: s := "целочисленные значения";
            Case DbDataType.ddtNoData: s := "нет данных";
            Case DbDataType.ddtString: s := "символьные данные";
        End Select;
        System.Diagnostics.Debug.WriteLine("- тип данных: " + s);
        System.Diagnostics.Debug.Unindent();
    End For;
End Sub;

См. также:

IOrmSimpleClass