IRdsDictionaryElements.Attribute

Синтаксис Fore

Attribute(Element: Integer; AttributeKey: Integer): Variant;

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

Attribute[Element: uinteger; AttributeKey: uinteger]: object;

Параметры

Element. Ключ элемента, для которого необходимо получить значение атрибута;

AttributeKey. Ключ атрибута, значение которого требуется получить.

Описание

Свойство Attribute возвращает значение указанного атрибута для заданного элемента справочника НСИ.

Комментарии

По умолчанию доступны значения только системных атрибутов. Для получения значений системных и пользовательских атрибутов присвойте свойству IRdsDictionaryInstance.FetchAll значение True.

Пример Fore

Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «MDM_REPO». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «EXP_DICT».

Добавьте ссылки на системные сборки «Metabase», «Rds».

Sub UserProc;
Var
    MB: IMetabase;
    MdmKey: Integer;
    Dict: IRdsDictionary;
    DictInst: IRdsDictionaryInstance;
    Elements: IRdsDictionaryElements;
    Attrs: IRdsAttributes;
    i, El, AttrKey: Integer;
Begin
    MB := MetabaseClass.Active;
    MdmKey := MB.ItemById(
"MDM_REPO").Key;
    Dict := MB.ItemByIdNamespace(
"EXP_DICT", MdmKey).Bind As IRdsDictionary;
    Attrs := Dict.Attributes;
    AttrKey := Attrs.Name.Key; 
// ключ атрибута
    DictInst := Dict.Open(Null);
    Elements := DictInst.Elements;
    
For i := 0 To Elements.RootItem.ChildrenCount - 1 Do
        El := Elements.Child(Elements.Root, i);
        Debug.WriteLine(Elements.Attribute(El, AttrKey));
    
End For;
End Sub UserProc;

Результат выполнения примера: в окно консоли выведено значение атрибута «Наименование» для всех корневых элементов справочника.

Пример Fore.NET

Для выполнения примера в репозитории предполагается наличие репозитория НСИ с идентификатором «MDM_REPO». Данный репозиторий должен содержать табличный справочник НСИ с идентификатором «EXP_DICT».

Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MdmKey, AttrKey, El: uinteger;
    Dict: IRdsDictionary;
    DictInst: IRdsDictionaryInstance;
    Elements: IRdsDictionaryElements;
    Attrs: IRdsAttributes;
    i: Integer;
Begin
    MB := Params.Metabase;
    MdmKey := MB.ItemById["MDM_REPO"].Key;
    Dict := MB.ItemByIdNamespace["EXP_DICT", MdmKey].Bind() As IRdsDictionary;
    Attrs := Dict.Attributes;
    AttrKey := Attrs.Name.Key; // ключ атрибута
    DictInst := Dict.Open(Null);
    Elements := DictInst.Elements;
    For i := 0 To Elements.RootItem.ChildrenCount - 1 Do
        El := Elements.Child[Elements.Root, i];
        System.Diagnostics.Debug.WriteLine(Elements.Attribute[El, AttrKey]);
    End For;
End Sub;

Результат выполнения примера: в окно консоли выведено значение атрибута «Наименование» для всех корневых элементов справочника.

См. также:

IRdsDictionaryElements