Attrs: IOrmSimpleAttrs;
Attrs: Prognoz.Platform.Interop.Orm.IOrmSimpleAttrs;
Свойство Attrs возвращает коллекцию атрибутов объекта.
Для получения атрибута из коллекции используйте свойство IOrmSimpleAttrs.Item.
Для выполнения примера в репозитории предполагается наличие объекта простого класса с идентификатором «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.
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;
См. также: